@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
|
@@ -51,15 +51,20 @@ function BlockGroupToolbar() {
|
|
|
51
51
|
replaceBlocks
|
|
52
52
|
} = (0, _data.useDispatch)(_store.store);
|
|
53
53
|
const {
|
|
54
|
-
canRemove
|
|
54
|
+
canRemove,
|
|
55
|
+
variations
|
|
55
56
|
} = (0, _data.useSelect)(select => {
|
|
56
57
|
const {
|
|
57
58
|
canRemoveBlocks
|
|
58
59
|
} = select(_store.store);
|
|
60
|
+
const {
|
|
61
|
+
getBlockVariations
|
|
62
|
+
} = select(_blocks.store);
|
|
59
63
|
return {
|
|
60
|
-
canRemove: canRemoveBlocks(clientIds)
|
|
64
|
+
canRemove: canRemoveBlocks(clientIds),
|
|
65
|
+
variations: getBlockVariations(groupingBlockName, 'transform')
|
|
61
66
|
};
|
|
62
|
-
}, [clientIds]);
|
|
67
|
+
}, [clientIds, groupingBlockName]);
|
|
63
68
|
|
|
64
69
|
const onConvertToGroup = function () {
|
|
65
70
|
let layout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'group';
|
|
@@ -85,15 +90,27 @@ function BlockGroupToolbar() {
|
|
|
85
90
|
return null;
|
|
86
91
|
}
|
|
87
92
|
|
|
93
|
+
const canInsertRow = !!variations.find(_ref => {
|
|
94
|
+
let {
|
|
95
|
+
name
|
|
96
|
+
} = _ref;
|
|
97
|
+
return name === 'group-row';
|
|
98
|
+
});
|
|
99
|
+
const canInsertStack = !!variations.find(_ref2 => {
|
|
100
|
+
let {
|
|
101
|
+
name
|
|
102
|
+
} = _ref2;
|
|
103
|
+
return name === 'group-stack';
|
|
104
|
+
});
|
|
88
105
|
return (0, _element.createElement)(_components.ToolbarGroup, null, (0, _element.createElement)(_components.ToolbarButton, {
|
|
89
106
|
icon: _icons.group,
|
|
90
107
|
label: (0, _i18n._x)('Group', 'verb'),
|
|
91
108
|
onClick: onConvertToGroup
|
|
92
|
-
}), (0, _element.createElement)(_components.ToolbarButton, {
|
|
109
|
+
}), canInsertRow && (0, _element.createElement)(_components.ToolbarButton, {
|
|
93
110
|
icon: _icons.row,
|
|
94
111
|
label: (0, _i18n._x)('Row', 'single horizontal line'),
|
|
95
112
|
onClick: onConvertToRow
|
|
96
|
-
}), (0, _element.createElement)(_components.ToolbarButton, {
|
|
113
|
+
}), canInsertStack && (0, _element.createElement)(_components.ToolbarButton, {
|
|
97
114
|
icon: _icons.stack,
|
|
98
115
|
label: (0, _i18n._x)('Stack', 'verb'),
|
|
99
116
|
onClick: onConvertToStack
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/convert-to-group-buttons/toolbar.js"],"names":["layouts","group","undefined","row","type","flexWrap","stack","orientation","BlockGroupToolbar","blocksSelection","clientIds","groupingBlockName","isGroupable","replaceBlocks","blockEditorStore","canRemove","select","canRemoveBlocks","onConvertToGroup","layout","newBlocks","length","attributes","onConvertToRow","onConvertToStack"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AAbA;AACA;AACA;;AAOA;AACA;AACA;AAIA,MAAMA,OAAO,GAAG;AACfC,EAAAA,KAAK,EAAEC,SADQ;AAEfC,EAAAA,GAAG,EAAE;AAAEC,IAAAA,IAAI,EAAE,MAAR;AAAgBC,IAAAA,QAAQ,EAAE;AAA1B,GAFU;AAGfC,EAAAA,KAAK,EAAE;AAAEF,IAAAA,IAAI,EAAE,MAAR;AAAgBG,IAAAA,WAAW,EAAE;AAA7B;AAHQ,CAAhB;;AAMA,SAASC,iBAAT,GAA6B;AAC5B,QAAM;
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/convert-to-group-buttons/toolbar.js"],"names":["layouts","group","undefined","row","type","flexWrap","stack","orientation","BlockGroupToolbar","blocksSelection","clientIds","groupingBlockName","isGroupable","replaceBlocks","blockEditorStore","canRemove","variations","select","canRemoveBlocks","getBlockVariations","blocksStore","onConvertToGroup","layout","newBlocks","length","attributes","onConvertToRow","onConvertToStack","canInsertRow","find","name","canInsertStack"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { switchToBlockType, store as blocksStore } from '@wordpress/blocks';\nimport { ToolbarButton, ToolbarGroup } from '@wordpress/components';\nimport { group, row, stack } from '@wordpress/icons';\nimport { _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useConvertToGroupButtonProps } from '../convert-to-group-buttons';\nimport { store as blockEditorStore } from '../../store';\n\nconst layouts = {\n\tgroup: undefined,\n\trow: { type: 'flex', flexWrap: 'nowrap' },\n\tstack: { type: 'flex', orientation: 'vertical' },\n};\n\nfunction BlockGroupToolbar() {\n\tconst { blocksSelection, clientIds, groupingBlockName, isGroupable } =\n\t\tuseConvertToGroupButtonProps();\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\n\tconst { canRemove, variations } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canRemoveBlocks } = select( blockEditorStore );\n\t\t\tconst { getBlockVariations } = select( blocksStore );\n\n\t\t\treturn {\n\t\t\t\tcanRemove: canRemoveBlocks( clientIds ),\n\t\t\t\tvariations: getBlockVariations(\n\t\t\t\t\tgroupingBlockName,\n\t\t\t\t\t'transform'\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientIds, groupingBlockName ]\n\t);\n\n\tconst onConvertToGroup = ( layout = 'group' ) => {\n\t\tconst newBlocks = switchToBlockType(\n\t\t\tblocksSelection,\n\t\t\tgroupingBlockName\n\t\t);\n\n\t\tif ( newBlocks && newBlocks.length > 0 ) {\n\t\t\t// Because the block is not in the store yet we can't use\n\t\t\t// updateBlockAttributes so need to manually update attributes.\n\t\t\tnewBlocks[ 0 ].attributes.layout = layouts[ layout ];\n\t\t\treplaceBlocks( clientIds, newBlocks );\n\t\t}\n\t};\n\n\tconst onConvertToRow = () => onConvertToGroup( 'row' );\n\tconst onConvertToStack = () => onConvertToGroup( 'stack' );\n\n\t// Don't render the button if the current selection cannot be grouped.\n\t// A good example is selecting multiple button blocks within a Buttons block:\n\t// The group block is not a valid child of Buttons, so we should not show the button.\n\t// Any blocks that are locked against removal also cannot be grouped.\n\tif ( ! isGroupable || ! canRemove ) {\n\t\treturn null;\n\t}\n\n\tconst canInsertRow = !! variations.find(\n\t\t( { name } ) => name === 'group-row'\n\t);\n\tconst canInsertStack = !! variations.find(\n\t\t( { name } ) => name === 'group-stack'\n\t);\n\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ group }\n\t\t\t\tlabel={ _x( 'Group', 'verb' ) }\n\t\t\t\tonClick={ onConvertToGroup }\n\t\t\t/>\n\t\t\t{ canInsertRow && (\n\t\t\t\t<ToolbarButton\n\t\t\t\t\ticon={ row }\n\t\t\t\t\tlabel={ _x( 'Row', 'single horizontal line' ) }\n\t\t\t\t\tonClick={ onConvertToRow }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ canInsertStack && (\n\t\t\t\t<ToolbarButton\n\t\t\t\t\ticon={ stack }\n\t\t\t\t\tlabel={ _x( 'Stack', 'verb' ) }\n\t\t\t\t\tonClick={ onConvertToStack }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</ToolbarGroup>\n\t);\n}\n\nexport default BlockGroupToolbar;\n"]}
|
|
@@ -145,7 +145,7 @@ function useClipboardHandler() {
|
|
|
145
145
|
}
|
|
146
146
|
|
|
147
147
|
const serialized = (0, _blocks.serialize)(blocks);
|
|
148
|
-
event.clipboardData.setData('text/plain', serialized);
|
|
148
|
+
event.clipboardData.setData('text/plain', toPlainText(serialized));
|
|
149
149
|
event.clipboardData.setData('text/html', serialized);
|
|
150
150
|
}
|
|
151
151
|
}
|
|
@@ -201,6 +201,22 @@ function CopyHandler(_ref) {
|
|
|
201
201
|
ref: useClipboardHandler()
|
|
202
202
|
}, children);
|
|
203
203
|
}
|
|
204
|
+
/**
|
|
205
|
+
* Given a string of HTML representing serialized blocks, returns the plain
|
|
206
|
+
* text extracted after stripping the HTML of any tags and fixing line breaks.
|
|
207
|
+
*
|
|
208
|
+
* @param {string} html Serialized blocks.
|
|
209
|
+
* @return {string} The plain-text content with any html removed.
|
|
210
|
+
*/
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
function toPlainText(html) {
|
|
214
|
+
// Manually handle BR tags as line breaks prior to `stripHTML` call
|
|
215
|
+
html = html.replace(/<br>/g, '\n');
|
|
216
|
+
const plainText = (0, _dom.__unstableStripHTML)(html).trim(); // Merge any consecutive line breaks
|
|
217
|
+
|
|
218
|
+
return plainText.replace(/\n\n+/g, '\n\n');
|
|
219
|
+
}
|
|
204
220
|
/**
|
|
205
221
|
* @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/copy-handler/README.md
|
|
206
222
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/copy-handler/index.js"],"names":["useNotifyCopy","getBlockName","blockEditorStore","getBlockType","blocksStore","createSuccessNotice","noticesStore","eventType","selectedBlockClientIds","notice","length","clientId","title","type","useClipboardHandler","getBlocksByClientId","getSelectedBlockClientIds","hasMultiSelection","getSettings","__unstableIsFullySelected","__unstableIsSelectionCollapsed","__unstableIsSelectionMergeable","__unstableGetSelectedBlocksWithPartialSelection","flashBlock","removeBlocks","replaceBlocks","__unstableDeleteSelection","__unstableExpandSelection","notifyCopy","node","handler","event","target","ownerDocument","hasSelection","contains","activeElement","eventDefaultPrevented","defaultPrevented","preventDefault","isSelectionMergeable","shouldHandleWholeBlocks","expandSelectionIsNeeded","blocks","head","tail","inBetweenBlocks","slice","serialized","clipboardData","setData","__experimentalCanUserUseUnfilteredHTML","canUserUseUnfilteredHTML","plainText","html","HTML","mode","addEventListener","removeEventListener","CopyHandler","children"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport {\n\tserialize,\n\tpasteHandler,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport {\n\tdocumentHasSelection,\n\tdocumentHasUncollapsedSelection,\n} from '@wordpress/dom';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { getPasteEventData } from '../../utils/pasting';\nimport { store as blockEditorStore } from '../../store';\n\nexport function useNotifyCopy() {\n\tconst { getBlockName } = useSelect( blockEditorStore );\n\tconst { getBlockType } = useSelect( blocksStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\treturn useCallback( ( eventType, selectedBlockClientIds ) => {\n\t\tlet notice = '';\n\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\tconst clientId = selectedBlockClientIds[ 0 ];\n\t\t\tconst title = getBlockType( getBlockName( clientId ) )?.title;\n\t\t\tnotice =\n\t\t\t\teventType === 'copy'\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// Translators: Name of the block being copied, e.g. \"Paragraph\".\n\t\t\t\t\t\t\t__( 'Copied \"%s\" to clipboard.' ),\n\t\t\t\t\t\t\ttitle\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// Translators: Name of the block being cut, e.g. \"Paragraph\".\n\t\t\t\t\t\t\t__( 'Moved \"%s\" to clipboard.' ),\n\t\t\t\t\t\t\ttitle\n\t\t\t\t\t );\n\t\t} else {\n\t\t\tnotice =\n\t\t\t\teventType === 'copy'\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// Translators: %d: Number of blocks being copied.\n\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t'Copied %d block to clipboard.',\n\t\t\t\t\t\t\t\t'Copied %d blocks to clipboard.',\n\t\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// Translators: %d: Number of blocks being cut.\n\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t'Moved %d block to clipboard.',\n\t\t\t\t\t\t\t\t'Moved %d blocks to clipboard.',\n\t\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t );\n\t\t}\n\t\tcreateSuccessNotice( notice, {\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t}, [] );\n}\n\nexport function useClipboardHandler() {\n\tconst {\n\t\tgetBlocksByClientId,\n\t\tgetSelectedBlockClientIds,\n\t\thasMultiSelection,\n\t\tgetSettings,\n\t\t__unstableIsFullySelected,\n\t\t__unstableIsSelectionCollapsed,\n\t\t__unstableIsSelectionMergeable,\n\t\t__unstableGetSelectedBlocksWithPartialSelection,\n\t} = useSelect( blockEditorStore );\n\tconst {\n\t\tflashBlock,\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\t__unstableDeleteSelection,\n\t\t__unstableExpandSelection,\n\t} = useDispatch( blockEditorStore );\n\tconst notifyCopy = useNotifyCopy();\n\n\treturn useRefEffect( ( node ) => {\n\t\tfunction handler( event ) {\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\t\tif ( selectedBlockClientIds.length === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Always handle multiple selected blocks.\n\t\t\tif ( ! hasMultiSelection() ) {\n\t\t\t\tconst { target } = event;\n\t\t\t\tconst { ownerDocument } = target;\n\t\t\t\t// If copying, only consider actual text selection as selection.\n\t\t\t\t// Otherwise, any focus on an input field is considered.\n\t\t\t\tconst hasSelection =\n\t\t\t\t\tevent.type === 'copy' || event.type === 'cut'\n\t\t\t\t\t\t? documentHasUncollapsedSelection( ownerDocument )\n\t\t\t\t\t\t: documentHasSelection( ownerDocument );\n\n\t\t\t\t// Let native copy behaviour take over in input fields.\n\t\t\t\tif ( hasSelection ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( ! node.contains( event.target.ownerDocument.activeElement ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst eventDefaultPrevented = event.defaultPrevented;\n\t\t\tevent.preventDefault();\n\n\t\t\tconst isSelectionMergeable = __unstableIsSelectionMergeable();\n\t\t\tconst shouldHandleWholeBlocks =\n\t\t\t\t__unstableIsSelectionCollapsed() || __unstableIsFullySelected();\n\t\t\tconst expandSelectionIsNeeded =\n\t\t\t\t! shouldHandleWholeBlocks && ! isSelectionMergeable;\n\t\t\tif ( event.type === 'copy' || event.type === 'cut' ) {\n\t\t\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\t\t\tflashBlock( selectedBlockClientIds[ 0 ] );\n\t\t\t\t}\n\t\t\t\t// If we have a partial selection that is not mergeable, just\n\t\t\t\t// expand the selection to the whole blocks.\n\t\t\t\tif ( expandSelectionIsNeeded ) {\n\t\t\t\t\t__unstableExpandSelection();\n\t\t\t\t} else {\n\t\t\t\t\tnotifyCopy( event.type, selectedBlockClientIds );\n\t\t\t\t\tlet blocks;\n\t\t\t\t\t// Check if we have partial selection.\n\t\t\t\t\tif ( shouldHandleWholeBlocks ) {\n\t\t\t\t\t\tblocks = getBlocksByClientId( selectedBlockClientIds );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst [\n\t\t\t\t\t\t\thead,\n\t\t\t\t\t\t\ttail,\n\t\t\t\t\t\t] = __unstableGetSelectedBlocksWithPartialSelection();\n\t\t\t\t\t\tconst inBetweenBlocks = getBlocksByClientId(\n\t\t\t\t\t\t\tselectedBlockClientIds.slice(\n\t\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t\tselectedBlockClientIds.length - 1\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tblocks = [ head, ...inBetweenBlocks, tail ];\n\t\t\t\t\t}\n\t\t\t\t\tconst serialized = serialize( blocks );\n\n\t\t\t\t\tevent.clipboardData.setData( 'text/plain', serialized );\n\t\t\t\t\tevent.clipboardData.setData( 'text/html', serialized );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( event.type === 'cut' ) {\n\t\t\t\t// We need to also check if at the start we needed to\n\t\t\t\t// expand the selection, as in this point we might have\n\t\t\t\t// programmatically fully selected the blocks above.\n\t\t\t\tif ( shouldHandleWholeBlocks && ! expandSelectionIsNeeded ) {\n\t\t\t\t\tremoveBlocks( selectedBlockClientIds );\n\t\t\t\t} else {\n\t\t\t\t\t__unstableDeleteSelection();\n\t\t\t\t}\n\t\t\t} else if ( event.type === 'paste' ) {\n\t\t\t\tif ( eventDefaultPrevented ) {\n\t\t\t\t\t// This was likely already handled in rich-text/use-paste-handler.js.\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst {\n\t\t\t\t\t__experimentalCanUserUseUnfilteredHTML: canUserUseUnfilteredHTML,\n\t\t\t\t} = getSettings();\n\t\t\t\tconst { plainText, html } = getPasteEventData( event );\n\t\t\t\tconst blocks = pasteHandler( {\n\t\t\t\t\tHTML: html,\n\t\t\t\t\tplainText,\n\t\t\t\t\tmode: 'BLOCKS',\n\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t} );\n\n\t\t\t\treplaceBlocks(\n\t\t\t\t\tselectedBlockClientIds,\n\t\t\t\t\tblocks,\n\t\t\t\t\tblocks.length - 1,\n\t\t\t\t\t-1\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tnode.ownerDocument.addEventListener( 'copy', handler );\n\t\tnode.ownerDocument.addEventListener( 'cut', handler );\n\t\tnode.ownerDocument.addEventListener( 'paste', handler );\n\n\t\treturn () => {\n\t\t\tnode.ownerDocument.removeEventListener( 'copy', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'cut', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'paste', handler );\n\t\t};\n\t}, [] );\n}\n\nfunction CopyHandler( { children } ) {\n\treturn <div ref={ useClipboardHandler() }>{ children }</div>;\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/copy-handler/README.md\n */\nexport default CopyHandler;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/copy-handler/index.js"],"names":["useNotifyCopy","getBlockName","blockEditorStore","getBlockType","blocksStore","createSuccessNotice","noticesStore","eventType","selectedBlockClientIds","notice","length","clientId","title","type","useClipboardHandler","getBlocksByClientId","getSelectedBlockClientIds","hasMultiSelection","getSettings","__unstableIsFullySelected","__unstableIsSelectionCollapsed","__unstableIsSelectionMergeable","__unstableGetSelectedBlocksWithPartialSelection","flashBlock","removeBlocks","replaceBlocks","__unstableDeleteSelection","__unstableExpandSelection","notifyCopy","node","handler","event","target","ownerDocument","hasSelection","contains","activeElement","eventDefaultPrevented","defaultPrevented","preventDefault","isSelectionMergeable","shouldHandleWholeBlocks","expandSelectionIsNeeded","blocks","head","tail","inBetweenBlocks","slice","serialized","clipboardData","setData","toPlainText","__experimentalCanUserUseUnfilteredHTML","canUserUseUnfilteredHTML","plainText","html","HTML","mode","addEventListener","removeEventListener","CopyHandler","children","replace","trim"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport {\n\tserialize,\n\tpasteHandler,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport {\n\tdocumentHasSelection,\n\tdocumentHasUncollapsedSelection,\n\t__unstableStripHTML as stripHTML,\n} from '@wordpress/dom';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { getPasteEventData } from '../../utils/pasting';\nimport { store as blockEditorStore } from '../../store';\n\nexport function useNotifyCopy() {\n\tconst { getBlockName } = useSelect( blockEditorStore );\n\tconst { getBlockType } = useSelect( blocksStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\treturn useCallback( ( eventType, selectedBlockClientIds ) => {\n\t\tlet notice = '';\n\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\tconst clientId = selectedBlockClientIds[ 0 ];\n\t\t\tconst title = getBlockType( getBlockName( clientId ) )?.title;\n\t\t\tnotice =\n\t\t\t\teventType === 'copy'\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// Translators: Name of the block being copied, e.g. \"Paragraph\".\n\t\t\t\t\t\t\t__( 'Copied \"%s\" to clipboard.' ),\n\t\t\t\t\t\t\ttitle\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// Translators: Name of the block being cut, e.g. \"Paragraph\".\n\t\t\t\t\t\t\t__( 'Moved \"%s\" to clipboard.' ),\n\t\t\t\t\t\t\ttitle\n\t\t\t\t\t );\n\t\t} else {\n\t\t\tnotice =\n\t\t\t\teventType === 'copy'\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// Translators: %d: Number of blocks being copied.\n\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t'Copied %d block to clipboard.',\n\t\t\t\t\t\t\t\t'Copied %d blocks to clipboard.',\n\t\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// Translators: %d: Number of blocks being cut.\n\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t'Moved %d block to clipboard.',\n\t\t\t\t\t\t\t\t'Moved %d blocks to clipboard.',\n\t\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t );\n\t\t}\n\t\tcreateSuccessNotice( notice, {\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t}, [] );\n}\n\nexport function useClipboardHandler() {\n\tconst {\n\t\tgetBlocksByClientId,\n\t\tgetSelectedBlockClientIds,\n\t\thasMultiSelection,\n\t\tgetSettings,\n\t\t__unstableIsFullySelected,\n\t\t__unstableIsSelectionCollapsed,\n\t\t__unstableIsSelectionMergeable,\n\t\t__unstableGetSelectedBlocksWithPartialSelection,\n\t} = useSelect( blockEditorStore );\n\tconst {\n\t\tflashBlock,\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\t__unstableDeleteSelection,\n\t\t__unstableExpandSelection,\n\t} = useDispatch( blockEditorStore );\n\tconst notifyCopy = useNotifyCopy();\n\n\treturn useRefEffect( ( node ) => {\n\t\tfunction handler( event ) {\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\t\tif ( selectedBlockClientIds.length === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Always handle multiple selected blocks.\n\t\t\tif ( ! hasMultiSelection() ) {\n\t\t\t\tconst { target } = event;\n\t\t\t\tconst { ownerDocument } = target;\n\t\t\t\t// If copying, only consider actual text selection as selection.\n\t\t\t\t// Otherwise, any focus on an input field is considered.\n\t\t\t\tconst hasSelection =\n\t\t\t\t\tevent.type === 'copy' || event.type === 'cut'\n\t\t\t\t\t\t? documentHasUncollapsedSelection( ownerDocument )\n\t\t\t\t\t\t: documentHasSelection( ownerDocument );\n\n\t\t\t\t// Let native copy behaviour take over in input fields.\n\t\t\t\tif ( hasSelection ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( ! node.contains( event.target.ownerDocument.activeElement ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst eventDefaultPrevented = event.defaultPrevented;\n\t\t\tevent.preventDefault();\n\n\t\t\tconst isSelectionMergeable = __unstableIsSelectionMergeable();\n\t\t\tconst shouldHandleWholeBlocks =\n\t\t\t\t__unstableIsSelectionCollapsed() || __unstableIsFullySelected();\n\t\t\tconst expandSelectionIsNeeded =\n\t\t\t\t! shouldHandleWholeBlocks && ! isSelectionMergeable;\n\t\t\tif ( event.type === 'copy' || event.type === 'cut' ) {\n\t\t\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\t\t\tflashBlock( selectedBlockClientIds[ 0 ] );\n\t\t\t\t}\n\t\t\t\t// If we have a partial selection that is not mergeable, just\n\t\t\t\t// expand the selection to the whole blocks.\n\t\t\t\tif ( expandSelectionIsNeeded ) {\n\t\t\t\t\t__unstableExpandSelection();\n\t\t\t\t} else {\n\t\t\t\t\tnotifyCopy( event.type, selectedBlockClientIds );\n\t\t\t\t\tlet blocks;\n\t\t\t\t\t// Check if we have partial selection.\n\t\t\t\t\tif ( shouldHandleWholeBlocks ) {\n\t\t\t\t\t\tblocks = getBlocksByClientId( selectedBlockClientIds );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst [ head, tail ] =\n\t\t\t\t\t\t\t__unstableGetSelectedBlocksWithPartialSelection();\n\t\t\t\t\t\tconst inBetweenBlocks = getBlocksByClientId(\n\t\t\t\t\t\t\tselectedBlockClientIds.slice(\n\t\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t\tselectedBlockClientIds.length - 1\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tblocks = [ head, ...inBetweenBlocks, tail ];\n\t\t\t\t\t}\n\t\t\t\t\tconst serialized = serialize( blocks );\n\n\t\t\t\t\tevent.clipboardData.setData(\n\t\t\t\t\t\t'text/plain',\n\t\t\t\t\t\ttoPlainText( serialized )\n\t\t\t\t\t);\n\t\t\t\t\tevent.clipboardData.setData( 'text/html', serialized );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( event.type === 'cut' ) {\n\t\t\t\t// We need to also check if at the start we needed to\n\t\t\t\t// expand the selection, as in this point we might have\n\t\t\t\t// programmatically fully selected the blocks above.\n\t\t\t\tif ( shouldHandleWholeBlocks && ! expandSelectionIsNeeded ) {\n\t\t\t\t\tremoveBlocks( selectedBlockClientIds );\n\t\t\t\t} else {\n\t\t\t\t\t__unstableDeleteSelection();\n\t\t\t\t}\n\t\t\t} else if ( event.type === 'paste' ) {\n\t\t\t\tif ( eventDefaultPrevented ) {\n\t\t\t\t\t// This was likely already handled in rich-text/use-paste-handler.js.\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst {\n\t\t\t\t\t__experimentalCanUserUseUnfilteredHTML:\n\t\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t} = getSettings();\n\t\t\t\tconst { plainText, html } = getPasteEventData( event );\n\t\t\t\tconst blocks = pasteHandler( {\n\t\t\t\t\tHTML: html,\n\t\t\t\t\tplainText,\n\t\t\t\t\tmode: 'BLOCKS',\n\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t} );\n\n\t\t\t\treplaceBlocks(\n\t\t\t\t\tselectedBlockClientIds,\n\t\t\t\t\tblocks,\n\t\t\t\t\tblocks.length - 1,\n\t\t\t\t\t-1\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tnode.ownerDocument.addEventListener( 'copy', handler );\n\t\tnode.ownerDocument.addEventListener( 'cut', handler );\n\t\tnode.ownerDocument.addEventListener( 'paste', handler );\n\n\t\treturn () => {\n\t\t\tnode.ownerDocument.removeEventListener( 'copy', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'cut', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'paste', handler );\n\t\t};\n\t}, [] );\n}\n\nfunction CopyHandler( { children } ) {\n\treturn <div ref={ useClipboardHandler() }>{ children }</div>;\n}\n\n/**\n * Given a string of HTML representing serialized blocks, returns the plain\n * text extracted after stripping the HTML of any tags and fixing line breaks.\n *\n * @param {string} html Serialized blocks.\n * @return {string} The plain-text content with any html removed.\n */\nfunction toPlainText( html ) {\n\t// Manually handle BR tags as line breaks prior to `stripHTML` call\n\thtml = html.replace( /<br>/g, '\\n' );\n\n\tconst plainText = stripHTML( html ).trim();\n\n\t// Merge any consecutive line breaks\n\treturn plainText.replace( /\\n\\n+/g, '\\n\\n' );\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/copy-handler/README.md\n */\nexport default CopyHandler;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/default-block-appender/index.js"],"names":["ZWNBSP","DefaultBlockAppender","isLocked","onAppend","showPrompt","placeholder","rootClientId","value","event","ENTER","keyCode","SPACE","select","ownProps","getBlockCount","getSettings","getTemplateLock","blockEditorStore","isEmpty","bodyPlaceholder","dispatch","insertDefaultBlock","startTyping","undefined"],"mappings":";;;;;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AAlBA;AACA;AACA;;AAGA;AACA;AACA;;AAOA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACO,MAAMA,MAAM,GAAG,QAAf;;;AAEA,SAASC,oBAAT,OAMH;AAAA,MANkC;AACrCC,IAAAA,QADqC;AAErCC,IAAAA,QAFqC;AAGrCC,IAAAA,UAHqC;AAIrCC,IAAAA,WAJqC;AAKrCC,IAAAA;AALqC,GAMlC;;AACH,MAAKJ,QAAL,EAAgB;AACf,WAAO,IAAP;AACA;;AAED,QAAMK,KAAK,GACV,kCAAgBF,WAAhB,KAAiC,cAAI,0BAAJ,CADlC;AAGA,SACC;AACC,2BAAsBC,YAAY,IAAI,EADvC;AAEC,IAAA,SAAS,EAAG,yBAAY,qCAAZ,EAAmD;AAC9D,4BAAsBF;AADwC,KAAnD;AAFb,KAMC;AACC,IAAA,QAAQ,EAAC,GADV,CAEC;AACA;AAHD;AAIC,IAAA,IAAI,EAAC,QAJN;AAKC,kBAAa,cAAI,mBAAJ,CALd,CAMC;AAND;AAOC,IAAA,SAAS,EAAC,8CAPX;AAQC,IAAA,SAAS,EAAKI,KAAF,IAAa;AACxB,UAAKC,oBAAUD,KAAK,CAACE,OAAhB,IAA2BC,oBAAUH,KAAK,CAACE,OAAhD,EAA0D;AACzDP,QAAAA,QAAQ;AACR;AACD,KAZF;AAaC,IAAA,OAAO,EAAG,MAAMA,QAAQ,EAbzB;AAcC,IAAA,OAAO,EAAG,MAAM;AACf,UAAKC,UAAL,EAAkB;AACjBD,QAAAA,QAAQ;AACR;AACD;AAlBF,KAoBGC,UAAU,GAAGG,KAAH,GAAWP,MApBxB,CAND,EA4BC,4BAAC,iBAAD;AACC,IAAA,YAAY,EAAGM,YADhB;AAEC,IAAA,QAAQ,EAAC,cAFV;AAGC,IAAA,UAAU,MAHX;AAIC,IAAA,qBAAqB;AAJtB,IA5BD,CADD;AAqCA;;eAEc,sBACd,sBAAY,CAAEM,MAAF,EAAUC,QAAV,KAAwB;AACnC,QAAM;AAAEC,IAAAA,aAAF;AAAiBC,IAAAA,WAAjB;AAA8BC,IAAAA;AAA9B,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/default-block-appender/index.js"],"names":["ZWNBSP","DefaultBlockAppender","isLocked","onAppend","showPrompt","placeholder","rootClientId","value","event","ENTER","keyCode","SPACE","select","ownProps","getBlockCount","getSettings","getTemplateLock","blockEditorStore","isEmpty","bodyPlaceholder","dispatch","insertDefaultBlock","startTyping","undefined"],"mappings":";;;;;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AAlBA;AACA;AACA;;AAGA;AACA;AACA;;AAOA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACO,MAAMA,MAAM,GAAG,QAAf;;;AAEA,SAASC,oBAAT,OAMH;AAAA,MANkC;AACrCC,IAAAA,QADqC;AAErCC,IAAAA,QAFqC;AAGrCC,IAAAA,UAHqC;AAIrCC,IAAAA,WAJqC;AAKrCC,IAAAA;AALqC,GAMlC;;AACH,MAAKJ,QAAL,EAAgB;AACf,WAAO,IAAP;AACA;;AAED,QAAMK,KAAK,GACV,kCAAgBF,WAAhB,KAAiC,cAAI,0BAAJ,CADlC;AAGA,SACC;AACC,2BAAsBC,YAAY,IAAI,EADvC;AAEC,IAAA,SAAS,EAAG,yBAAY,qCAAZ,EAAmD;AAC9D,4BAAsBF;AADwC,KAAnD;AAFb,KAMC;AACC,IAAA,QAAQ,EAAC,GADV,CAEC;AACA;AAHD;AAIC,IAAA,IAAI,EAAC,QAJN;AAKC,kBAAa,cAAI,mBAAJ,CALd,CAMC;AAND;AAOC,IAAA,SAAS,EAAC,8CAPX;AAQC,IAAA,SAAS,EAAKI,KAAF,IAAa;AACxB,UAAKC,oBAAUD,KAAK,CAACE,OAAhB,IAA2BC,oBAAUH,KAAK,CAACE,OAAhD,EAA0D;AACzDP,QAAAA,QAAQ;AACR;AACD,KAZF;AAaC,IAAA,OAAO,EAAG,MAAMA,QAAQ,EAbzB;AAcC,IAAA,OAAO,EAAG,MAAM;AACf,UAAKC,UAAL,EAAkB;AACjBD,QAAAA,QAAQ;AACR;AACD;AAlBF,KAoBGC,UAAU,GAAGG,KAAH,GAAWP,MApBxB,CAND,EA4BC,4BAAC,iBAAD;AACC,IAAA,YAAY,EAAGM,YADhB;AAEC,IAAA,QAAQ,EAAC,cAFV;AAGC,IAAA,UAAU,MAHX;AAIC,IAAA,qBAAqB;AAJtB,IA5BD,CADD;AAqCA;;eAEc,sBACd,sBAAY,CAAEM,MAAF,EAAUC,QAAV,KAAwB;AACnC,QAAM;AAAEC,IAAAA,aAAF;AAAiBC,IAAAA,WAAjB;AAA8BC,IAAAA;AAA9B,MACLJ,MAAM,CAAEK,YAAF,CADP;AAGA,QAAMC,OAAO,GAAG,CAAEJ,aAAa,CAAED,QAAQ,CAACP,YAAX,CAA/B;AACA,QAAM;AAAEa,IAAAA;AAAF,MAAsBJ,WAAW,EAAvC;AAEA,SAAO;AACNX,IAAAA,UAAU,EAAEc,OADN;AAENhB,IAAAA,QAAQ,EAAE,CAAC,CAAEc,eAAe,CAAEH,QAAQ,CAACP,YAAX,CAFtB;AAGND,IAAAA,WAAW,EAAEc;AAHP,GAAP;AAKA,CAZD,CADc,EAcd,wBAAc,CAAEC,QAAF,EAAYP,QAAZ,KAA0B;AACvC,QAAM;AAAEQ,IAAAA,kBAAF;AAAsBC,IAAAA;AAAtB,MACLF,QAAQ,CAAEH,YAAF,CADT;AAGA,SAAO;AACNd,IAAAA,QAAQ,GAAG;AACV,YAAM;AAAEG,QAAAA;AAAF,UAAmBO,QAAzB;AAEAQ,MAAAA,kBAAkB,CAAEE,SAAF,EAAajB,YAAb,CAAlB;AACAgB,MAAAA,WAAW;AACX;;AANK,GAAP;AAQA,CAZD,CAdc,EA2BZrB,oBA3BY,C","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { compose } from '@wordpress/compose';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport Inserter from '../inserter';\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Zero width non-breaking space, used as padding for the paragraph when it is\n * empty.\n */\nexport const ZWNBSP = '\\ufeff';\n\nexport function DefaultBlockAppender( {\n\tisLocked,\n\tonAppend,\n\tshowPrompt,\n\tplaceholder,\n\trootClientId,\n} ) {\n\tif ( isLocked ) {\n\t\treturn null;\n\t}\n\n\tconst value =\n\t\tdecodeEntities( placeholder ) || __( 'Type / to choose a block' );\n\n\treturn (\n\t\t<div\n\t\t\tdata-root-client-id={ rootClientId || '' }\n\t\t\tclassName={ classnames( 'block-editor-default-block-appender', {\n\t\t\t\t'has-visible-prompt': showPrompt,\n\t\t\t} ) }\n\t\t>\n\t\t\t<p\n\t\t\t\ttabIndex=\"0\"\n\t\t\t\t// We want this element to be styled as a paragraph by themes.\n\t\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n\t\t\t\trole=\"button\"\n\t\t\t\taria-label={ __( 'Add default block' ) }\n\t\t\t\t// A wrapping container for this one already has the wp-block className.\n\t\t\t\tclassName=\"block-editor-default-block-appender__content\"\n\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\tif ( ENTER === event.keyCode || SPACE === event.keyCode ) {\n\t\t\t\t\t\tonAppend();\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\tonClick={ () => onAppend() }\n\t\t\t\tonFocus={ () => {\n\t\t\t\t\tif ( showPrompt ) {\n\t\t\t\t\t\tonAppend();\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ showPrompt ? value : ZWNBSP }\n\t\t\t</p>\n\t\t\t<Inserter\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tposition=\"bottom right\"\n\t\t\t\tisAppender\n\t\t\t\t__experimentalIsQuick\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nexport default compose(\n\twithSelect( ( select, ownProps ) => {\n\t\tconst { getBlockCount, getSettings, getTemplateLock } =\n\t\t\tselect( blockEditorStore );\n\n\t\tconst isEmpty = ! getBlockCount( ownProps.rootClientId );\n\t\tconst { bodyPlaceholder } = getSettings();\n\n\t\treturn {\n\t\t\tshowPrompt: isEmpty,\n\t\t\tisLocked: !! getTemplateLock( ownProps.rootClientId ),\n\t\t\tplaceholder: bodyPlaceholder,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps ) => {\n\t\tconst { insertDefaultBlock, startTyping } =\n\t\t\tdispatch( blockEditorStore );\n\n\t\treturn {\n\t\t\tonAppend() {\n\t\t\t\tconst { rootClientId } = ownProps;\n\n\t\t\t\tinsertDefaultBlock( undefined, rootClientId );\n\t\t\t\tstartTyping();\n\t\t\t},\n\t\t};\n\t} )\n)( DefaultBlockAppender );\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/default-block-appender/index.native.js"],"names":["DefaultBlockAppender","isLocked","isVisible","onAppend","placeholder","containerStyle","showSeparator","value","styles","blockHolder","select","ownProps","getBlockCount","getBlockName","isBlockValid","getTemplateLock","blockEditorStore","isEmpty","rootClientId","isLastBlockDefault","lastBlockClientId","isLastBlockValid","dispatch","insertDefaultBlock","startTyping","undefined"],"mappings":";;;;;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AApBA;AACA;AACA;;AAGA;AACA;AACA;;AAQA;AACA;AACA;AAKO,SAASA,oBAAT,OAOH;AAAA,MAPkC;AACrCC,IAAAA,QADqC;AAErCC,IAAAA,SAFqC;AAGrCC,IAAAA,QAHqC;AAIrCC,IAAAA,WAJqC;AAKrCC,IAAAA,cALqC;AAMrCC,IAAAA;AANqC,GAOlC;;AACH,MAAKL,QAAQ,IAAI,CAAEC,SAAnB,EAA+B;AAC9B,WAAO,IAAP;AACA;;AAED,QAAMK,KAAK,GACV,OAAOH,WAAP,KAAuB,QAAvB,GACG,kCAAgBA,WAAhB,CADH,GAEG,cAAI,gBAAJ,CAHJ;AAKA,SACC,4BAAC,qCAAD;AAA0B,IAAA,OAAO,EAAGD;AAApC,KACC,4BAAC,iBAAD;AACC,IAAA,KAAK,EAAG,CACPK,eAAOC,WADA,EAEPH,aAAa,IAAID,cAFV,CADT;AAKC,IAAA,aAAa,EAAC;AALf,KAOGC,aAAa,GACd,4BAAC,uBAAD,OADc,GAGd,4BAAC,qBAAD;AAAU,IAAA,WAAW,EAAGC,KAAxB;AAAgC,IAAA,QAAQ,EAAG,MAAM,CAAE;AAAnD,IAVF,CADD,CADD;AAiBA;;eAEc,sBACd,sBAAY,CAAEG,MAAF,EAAUC,QAAV,KAAwB;AACnC,QAAM;
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/default-block-appender/index.native.js"],"names":["DefaultBlockAppender","isLocked","isVisible","onAppend","placeholder","containerStyle","showSeparator","value","styles","blockHolder","select","ownProps","getBlockCount","getBlockName","isBlockValid","getTemplateLock","blockEditorStore","isEmpty","rootClientId","isLastBlockDefault","lastBlockClientId","isLastBlockValid","dispatch","insertDefaultBlock","startTyping","undefined"],"mappings":";;;;;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AApBA;AACA;AACA;;AAGA;AACA;AACA;;AAQA;AACA;AACA;AAKO,SAASA,oBAAT,OAOH;AAAA,MAPkC;AACrCC,IAAAA,QADqC;AAErCC,IAAAA,SAFqC;AAGrCC,IAAAA,QAHqC;AAIrCC,IAAAA,WAJqC;AAKrCC,IAAAA,cALqC;AAMrCC,IAAAA;AANqC,GAOlC;;AACH,MAAKL,QAAQ,IAAI,CAAEC,SAAnB,EAA+B;AAC9B,WAAO,IAAP;AACA;;AAED,QAAMK,KAAK,GACV,OAAOH,WAAP,KAAuB,QAAvB,GACG,kCAAgBA,WAAhB,CADH,GAEG,cAAI,gBAAJ,CAHJ;AAKA,SACC,4BAAC,qCAAD;AAA0B,IAAA,OAAO,EAAGD;AAApC,KACC,4BAAC,iBAAD;AACC,IAAA,KAAK,EAAG,CACPK,eAAOC,WADA,EAEPH,aAAa,IAAID,cAFV,CADT;AAKC,IAAA,aAAa,EAAC;AALf,KAOGC,aAAa,GACd,4BAAC,uBAAD,OADc,GAGd,4BAAC,qBAAD;AAAU,IAAA,WAAW,EAAGC,KAAxB;AAAgC,IAAA,QAAQ,EAAG,MAAM,CAAE;AAAnD,IAVF,CADD,CADD;AAiBA;;eAEc,sBACd,sBAAY,CAAEG,MAAF,EAAUC,QAAV,KAAwB;AACnC,QAAM;AAAEC,IAAAA,aAAF;AAAiBC,IAAAA,YAAjB;AAA+BC,IAAAA,YAA/B;AAA6CC,IAAAA;AAA7C,MACLL,MAAM,CAAEM,YAAF,CADP;AAGA,QAAMC,OAAO,GAAG,CAAEL,aAAa,CAAED,QAAQ,CAACO,YAAX,CAA/B;AACA,QAAMC,kBAAkB,GACvBN,YAAY,CAAEF,QAAQ,CAACS,iBAAX,CAAZ,KACA,kCAFD;AAGA,QAAMC,gBAAgB,GAAGP,YAAY,CAAEH,QAAQ,CAACS,iBAAX,CAArC;AAEA,SAAO;AACNlB,IAAAA,SAAS,EAAEe,OAAO,IAAI,CAAEE,kBAAb,IAAmC,CAAEE,gBAD1C;AAENpB,IAAAA,QAAQ,EAAE,CAAC,CAAEc,eAAe,CAAEJ,QAAQ,CAACO,YAAX;AAFtB,GAAP;AAIA,CAdD,CADc,EAgBd,wBAAc,CAAEI,QAAF,EAAYX,QAAZ,KAA0B;AACvC,QAAM;AAAEY,IAAAA,kBAAF;AAAsBC,IAAAA;AAAtB,MACLF,QAAQ,CAAEN,YAAF,CADT;AAGA,SAAO;AACNb,IAAAA,QAAQ,GAAG;AACV,YAAM;AAAEe,QAAAA;AAAF,UAAmBP,QAAzB;AAEAY,MAAAA,kBAAkB,CAAEE,SAAF,EAAaP,YAAb,CAAlB;AACAM,MAAAA,WAAW;AACX;;AANK,GAAP;AAQA,CAZD,CAhBc,EA6BZxB,oBA7BY,C","sourcesContent":["/**\n * External dependencies\n */\nimport { TouchableWithoutFeedback, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { RichText } from '@wordpress/block-editor';\nimport { compose } from '@wordpress/compose';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { getDefaultBlockName } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport BlockInsertionPoint from '../block-list/insertion-point';\nimport styles from './style.scss';\nimport { store as blockEditorStore } from '../../store';\n\nexport function DefaultBlockAppender( {\n\tisLocked,\n\tisVisible,\n\tonAppend,\n\tplaceholder,\n\tcontainerStyle,\n\tshowSeparator,\n} ) {\n\tif ( isLocked || ! isVisible ) {\n\t\treturn null;\n\t}\n\n\tconst value =\n\t\ttypeof placeholder === 'string'\n\t\t\t? decodeEntities( placeholder )\n\t\t\t: __( 'Start writing…' );\n\n\treturn (\n\t\t<TouchableWithoutFeedback onPress={ onAppend }>\n\t\t\t<View\n\t\t\t\tstyle={ [\n\t\t\t\t\tstyles.blockHolder,\n\t\t\t\t\tshowSeparator && containerStyle,\n\t\t\t\t] }\n\t\t\t\tpointerEvents=\"box-only\"\n\t\t\t>\n\t\t\t\t{ showSeparator ? (\n\t\t\t\t\t<BlockInsertionPoint />\n\t\t\t\t) : (\n\t\t\t\t\t<RichText placeholder={ value } onChange={ () => {} } />\n\t\t\t\t) }\n\t\t\t</View>\n\t\t</TouchableWithoutFeedback>\n\t);\n}\n\nexport default compose(\n\twithSelect( ( select, ownProps ) => {\n\t\tconst { getBlockCount, getBlockName, isBlockValid, getTemplateLock } =\n\t\t\tselect( blockEditorStore );\n\n\t\tconst isEmpty = ! getBlockCount( ownProps.rootClientId );\n\t\tconst isLastBlockDefault =\n\t\t\tgetBlockName( ownProps.lastBlockClientId ) ===\n\t\t\tgetDefaultBlockName();\n\t\tconst isLastBlockValid = isBlockValid( ownProps.lastBlockClientId );\n\n\t\treturn {\n\t\t\tisVisible: isEmpty || ! isLastBlockDefault || ! isLastBlockValid,\n\t\t\tisLocked: !! getTemplateLock( ownProps.rootClientId ),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps ) => {\n\t\tconst { insertDefaultBlock, startTyping } =\n\t\t\tdispatch( blockEditorStore );\n\n\t\treturn {\n\t\t\tonAppend() {\n\t\t\t\tconst { rootClientId } = ownProps;\n\n\t\t\t\tinsertDefaultBlock( undefined, rootClientId );\n\t\t\t\tstartTyping();\n\t\t\t},\n\t\t};\n\t} )\n)( DefaultBlockAppender );\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/default-style-picker/index.js"],"names":["DefaultStylePicker","blockName","preferredStyle","onUpdatePreferredStyleVariations","styles","select","settings","blockEditorStore","getSettings","preferredStyleVariations","__experimentalPreferredStyleVariations","value","onChange","blocksStore","getBlockStyles","selectOptions","label","map","name","defaultStyleName","selectOnChange","blockStyle"],"mappings":";;;;;;;AAIA;;AADA;;AAEA;;AACA;;AACA;;AAKA;;AACA;;AAbA;AACA;AACA;;AAOA;AACA;AACA;AAIe,SAASA,kBAAT,OAA6C;AAAA,MAAhB;AAAEC,IAAAA;AAAF,GAAgB;AAC3D,QAAM;
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/default-style-picker/index.js"],"names":["DefaultStylePicker","blockName","preferredStyle","onUpdatePreferredStyleVariations","styles","select","settings","blockEditorStore","getSettings","preferredStyleVariations","__experimentalPreferredStyleVariations","value","onChange","blocksStore","getBlockStyles","selectOptions","label","map","name","defaultStyleName","selectOnChange","blockStyle"],"mappings":";;;;;;;AAIA;;AADA;;AAEA;;AACA;;AACA;;AAKA;;AACA;;AAbA;AACA;AACA;;AAOA;AACA;AACA;AAIe,SAASA,kBAAT,OAA6C;AAAA,MAAhB;AAAEC,IAAAA;AAAF,GAAgB;AAC3D,QAAM;AAAEC,IAAAA,cAAF;AAAkBC,IAAAA,gCAAlB;AAAoDC,IAAAA;AAApD,MACL,qBACGC,MAAF,IAAc;AAAA;;AACb,UAAMC,QAAQ,GAAGD,MAAM,CAAEE,YAAF,CAAN,CAA2BC,WAA3B,EAAjB;AACA,UAAMC,wBAAwB,GAC7BH,QAAQ,CAACI,sCADV;AAEA,WAAO;AACNR,MAAAA,cAAc,EACbO,wBADa,aACbA,wBADa,gDACbA,wBAAwB,CAAEE,KADb,0DACb,sBAAmCV,SAAnC,CAFK;AAGNE,MAAAA,gCAAgC,4BAC/BM,wBAD+B,aAC/BA,wBAD+B,uBAC/BA,wBAAwB,CAAEG,QADK,2EACO,IAJjC;AAKNR,MAAAA,MAAM,EAAEC,MAAM,CAAEQ,aAAF,CAAN,CAAsBC,cAAtB,CAAsCb,SAAtC;AALF,KAAP;AAOA,GAZF,EAaC,CAAEA,SAAF,CAbD,CADD;AAgBA,QAAMc,aAAa,GAAG,sBACrB,MAAM,CACL;AAAEC,IAAAA,KAAK,EAAE,cAAI,SAAJ,CAAT;AAA0BL,IAAAA,KAAK,EAAE;AAAjC,GADK,EAEL,GAAGP,MAAM,CAACa,GAAP,CAAY;AAAA,QAAE;AAAED,MAAAA,KAAF;AAASE,MAAAA;AAAT,KAAF;AAAA,WAAyB;AAAEF,MAAAA,KAAF;AAASL,MAAAA,KAAK,EAAEO;AAAhB,KAAzB;AAAA,GAAZ,CAFE,CADe,EAKrB,CAAEd,MAAF,CALqB,CAAtB;AAOA,QAAMe,gBAAgB,GAAG,sBACxB;AAAA;;AAAA,+BAAM,4BAAiBf,MAAjB,CAAN,qDAAM,iBAA2Bc,IAAjC;AAAA,GADwB,EAExB,CAAEd,MAAF,CAFwB,CAAzB;AAIA,QAAMgB,cAAc,GAAG,0BACpBC,UAAF,IAAkB;AACjBlB,IAAAA,gCAAgC,CAAEF,SAAF,EAAaoB,UAAb,CAAhC;AACA,GAHqB,EAItB,CAAEpB,SAAF,EAAaE,gCAAb,CAJsB,CAAvB,CA5B2D,CAmC3D;AACA;;AACA,MAAK,CAAED,cAAF,IAAoBA,cAAc,KAAKiB,gBAA5C,EAA+D;AAC9D,WAAO,IAAP;AACA;;AAED,SACChB,gCAAgC,IAC/B;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,4BAAC,yBAAD;AACC,IAAA,OAAO,EAAGY,aADX;AAEC,IAAA,KAAK,EAAGb,cAAc,IAAI,EAF3B;AAGC,IAAA,KAAK,EAAG,cAAI,eAAJ,CAHT;AAIC,IAAA,QAAQ,EAAGkB;AAJZ,IADD,CAFF;AAYA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { useMemo, useCallback } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { SelectControl } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { getDefaultStyle } from '../block-styles/utils';\n\nexport default function DefaultStylePicker( { blockName } ) {\n\tconst { preferredStyle, onUpdatePreferredStyleVariations, styles } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\t\t\tconst preferredStyleVariations =\n\t\t\t\t\tsettings.__experimentalPreferredStyleVariations;\n\t\t\t\treturn {\n\t\t\t\t\tpreferredStyle:\n\t\t\t\t\t\tpreferredStyleVariations?.value?.[ blockName ],\n\t\t\t\t\tonUpdatePreferredStyleVariations:\n\t\t\t\t\t\tpreferredStyleVariations?.onChange ?? null,\n\t\t\t\t\tstyles: select( blocksStore ).getBlockStyles( blockName ),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ blockName ]\n\t\t);\n\tconst selectOptions = useMemo(\n\t\t() => [\n\t\t\t{ label: __( 'Not set' ), value: '' },\n\t\t\t...styles.map( ( { label, name } ) => ( { label, value: name } ) ),\n\t\t],\n\t\t[ styles ]\n\t);\n\tconst defaultStyleName = useMemo(\n\t\t() => getDefaultStyle( styles )?.name,\n\t\t[ styles ]\n\t);\n\tconst selectOnChange = useCallback(\n\t\t( blockStyle ) => {\n\t\t\tonUpdatePreferredStyleVariations( blockName, blockStyle );\n\t\t},\n\t\t[ blockName, onUpdatePreferredStyleVariations ]\n\t);\n\n\t// Until the functionality is migrated to global styles,\n\t// only show the default style picker if a non-default style has already been selected.\n\tif ( ! preferredStyle || preferredStyle === defaultStyleName ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\tonUpdatePreferredStyleVariations && (\n\t\t\t<div className=\"default-style-picker__default-switcher\">\n\t\t\t\t<SelectControl\n\t\t\t\t\toptions={ selectOptions }\n\t\t\t\t\tvalue={ preferredStyle || '' }\n\t\t\t\t\tlabel={ __( 'Default Style' ) }\n\t\t\t\t\tonChange={ selectOnChange }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t)\n\t);\n}\n"]}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DuotoneFilter = DuotoneFilter;
|
|
7
|
+
exports.DuotoneStylesheet = DuotoneStylesheet;
|
|
8
|
+
exports.DuotoneUnsetStylesheet = DuotoneUnsetStylesheet;
|
|
9
|
+
exports.PresetDuotoneFilter = PresetDuotoneFilter;
|
|
10
|
+
|
|
11
|
+
var _element = require("@wordpress/element");
|
|
12
|
+
|
|
13
|
+
var _components = require("@wordpress/components");
|
|
14
|
+
|
|
15
|
+
var _index = require("./index");
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* WordPress dependencies
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Internal dependencies
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* SVG and stylesheet needed for rendering the duotone filter.
|
|
27
|
+
*
|
|
28
|
+
* @param {Object} props Duotone props.
|
|
29
|
+
* @param {string} props.selector Selector to apply the filter to.
|
|
30
|
+
* @param {string} props.id Unique id for this duotone filter.
|
|
31
|
+
*
|
|
32
|
+
* @return {WPElement} Duotone element.
|
|
33
|
+
*/
|
|
34
|
+
function DuotoneStylesheet(_ref) {
|
|
35
|
+
let {
|
|
36
|
+
selector,
|
|
37
|
+
id
|
|
38
|
+
} = _ref;
|
|
39
|
+
const css = `
|
|
40
|
+
${selector} {
|
|
41
|
+
filter: url( #${id} );
|
|
42
|
+
}
|
|
43
|
+
`;
|
|
44
|
+
return (0, _element.createElement)("style", null, css);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Stylesheet for disabling a global styles duotone filter.
|
|
48
|
+
*
|
|
49
|
+
* @param {Object} props Duotone props.
|
|
50
|
+
* @param {string} props.selector Selector to disable the filter for.
|
|
51
|
+
*
|
|
52
|
+
* @return {WPElement} Filter none style element.
|
|
53
|
+
*/
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
function DuotoneUnsetStylesheet(_ref2) {
|
|
57
|
+
let {
|
|
58
|
+
selector
|
|
59
|
+
} = _ref2;
|
|
60
|
+
const css = `
|
|
61
|
+
${selector} {
|
|
62
|
+
filter: none;
|
|
63
|
+
}
|
|
64
|
+
`;
|
|
65
|
+
return (0, _element.createElement)("style", null, css);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* The SVG part of the duotone filter.
|
|
69
|
+
*
|
|
70
|
+
* @param {Object} props Duotone props.
|
|
71
|
+
* @param {string} props.id Unique id for this duotone filter.
|
|
72
|
+
* @param {string[]} props.colors Color strings from dark to light.
|
|
73
|
+
*
|
|
74
|
+
* @return {WPElement} Duotone SVG.
|
|
75
|
+
*/
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
function DuotoneFilter(_ref3) {
|
|
79
|
+
let {
|
|
80
|
+
id,
|
|
81
|
+
colors
|
|
82
|
+
} = _ref3;
|
|
83
|
+
const values = (0, _index.__unstableGetValuesFromColors)(colors);
|
|
84
|
+
return (0, _element.createElement)(_components.SVG, {
|
|
85
|
+
xmlnsXlink: "http://www.w3.org/1999/xlink",
|
|
86
|
+
viewBox: "0 0 0 0",
|
|
87
|
+
width: "0",
|
|
88
|
+
height: "0",
|
|
89
|
+
focusable: "false",
|
|
90
|
+
role: "none",
|
|
91
|
+
style: {
|
|
92
|
+
visibility: 'hidden',
|
|
93
|
+
position: 'absolute',
|
|
94
|
+
left: '-9999px',
|
|
95
|
+
overflow: 'hidden'
|
|
96
|
+
}
|
|
97
|
+
}, (0, _element.createElement)("defs", null, (0, _element.createElement)("filter", {
|
|
98
|
+
id: id
|
|
99
|
+
}, (0, _element.createElement)("feColorMatrix", {
|
|
100
|
+
// Use sRGB instead of linearRGB so transparency looks correct.
|
|
101
|
+
colorInterpolationFilters: "sRGB",
|
|
102
|
+
type: "matrix" // Use perceptual brightness to convert to grayscale.
|
|
103
|
+
,
|
|
104
|
+
values: " .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 "
|
|
105
|
+
}), (0, _element.createElement)("feComponentTransfer", {
|
|
106
|
+
// Use sRGB instead of linearRGB to be consistent with how CSS gradients work.
|
|
107
|
+
colorInterpolationFilters: "sRGB"
|
|
108
|
+
}, (0, _element.createElement)("feFuncR", {
|
|
109
|
+
type: "table",
|
|
110
|
+
tableValues: values.r.join(' ')
|
|
111
|
+
}), (0, _element.createElement)("feFuncG", {
|
|
112
|
+
type: "table",
|
|
113
|
+
tableValues: values.g.join(' ')
|
|
114
|
+
}), (0, _element.createElement)("feFuncB", {
|
|
115
|
+
type: "table",
|
|
116
|
+
tableValues: values.b.join(' ')
|
|
117
|
+
}), (0, _element.createElement)("feFuncA", {
|
|
118
|
+
type: "table",
|
|
119
|
+
tableValues: values.a.join(' ')
|
|
120
|
+
})), (0, _element.createElement)("feComposite", {
|
|
121
|
+
// Re-mask the image with the original transparency since the feColorMatrix above loses that information.
|
|
122
|
+
in2: "SourceGraphic",
|
|
123
|
+
operator: "in"
|
|
124
|
+
}))));
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* SVG from a duotone preset
|
|
128
|
+
*
|
|
129
|
+
* @param {Object} props Duotone props.
|
|
130
|
+
* @param {Object} props.preset Duotone preset settings.
|
|
131
|
+
*
|
|
132
|
+
* @return {WPElement} Duotone element.
|
|
133
|
+
*/
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
function PresetDuotoneFilter(_ref4) {
|
|
137
|
+
let {
|
|
138
|
+
preset
|
|
139
|
+
} = _ref4;
|
|
140
|
+
return (0, _element.createElement)(DuotoneFilter, {
|
|
141
|
+
id: `wp-duotone-${preset.slug}`,
|
|
142
|
+
colors: preset.colors
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=components.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/duotone/components.js"],"names":["DuotoneStylesheet","selector","id","css","DuotoneUnsetStylesheet","DuotoneFilter","colors","values","visibility","position","left","overflow","r","join","g","b","a","PresetDuotoneFilter","preset","slug"],"mappings":";;;;;;;;;;;;AAGA;;AAKA;;AARA;AACA;AACA;;AAGA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,iBAAT,OAA+C;AAAA,MAAnB;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAAmB;AACrD,QAAMC,GAAG,GAAI;AACd,EAAGF,QAAU;AACb,iBAAkBC,EAAI;AACtB;AACA,CAJC;AAKA,SAAO,2CAASC,GAAT,CAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASC,sBAAT,QAAgD;AAAA,MAAf;AAAEH,IAAAA;AAAF,GAAe;AACtD,QAAME,GAAG,GAAI;AACd,EAAGF,QAAU;AACb;AACA;AACA,CAJC;AAKA,SAAO,2CAASE,GAAT,CAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASE,aAAT,QAAyC;AAAA,MAAjB;AAAEH,IAAAA,EAAF;AAAMI,IAAAA;AAAN,GAAiB;AAC/C,QAAMC,MAAM,GAAG,0CAAqBD,MAArB,CAAf;AACA,SACC,4BAAC,eAAD;AACC,IAAA,UAAU,EAAC,8BADZ;AAEC,IAAA,OAAO,EAAC,SAFT;AAGC,IAAA,KAAK,EAAC,GAHP;AAIC,IAAA,MAAM,EAAC,GAJR;AAKC,IAAA,SAAS,EAAC,OALX;AAMC,IAAA,IAAI,EAAC,MANN;AAOC,IAAA,KAAK,EAAG;AACPE,MAAAA,UAAU,EAAE,QADL;AAEPC,MAAAA,QAAQ,EAAE,UAFH;AAGPC,MAAAA,IAAI,EAAE,SAHC;AAIPC,MAAAA,QAAQ,EAAE;AAJH;AAPT,KAcC,0CACC;AAAQ,IAAA,EAAE,EAAGT;AAAb,KACC;AACC;AACA,IAAA,yBAAyB,EAAC,MAF3B;AAGC,IAAA,IAAI,EAAC,QAHN,CAIC;AAJD;AAKC,IAAA,MAAM,EAAC;AALR,IADD,EAaC;AACC;AACA,IAAA,yBAAyB,EAAC;AAF3B,KAIC;AACC,IAAA,IAAI,EAAC,OADN;AAEC,IAAA,WAAW,EAAGK,MAAM,CAACK,CAAP,CAASC,IAAT,CAAe,GAAf;AAFf,IAJD,EAQC;AACC,IAAA,IAAI,EAAC,OADN;AAEC,IAAA,WAAW,EAAGN,MAAM,CAACO,CAAP,CAASD,IAAT,CAAe,GAAf;AAFf,IARD,EAYC;AACC,IAAA,IAAI,EAAC,OADN;AAEC,IAAA,WAAW,EAAGN,MAAM,CAACQ,CAAP,CAASF,IAAT,CAAe,GAAf;AAFf,IAZD,EAgBC;AACC,IAAA,IAAI,EAAC,OADN;AAEC,IAAA,WAAW,EAAGN,MAAM,CAACS,CAAP,CAASH,IAAT,CAAe,GAAf;AAFf,IAhBD,CAbD,EAkCC;AACC;AACA,IAAA,GAAG,EAAC,eAFL;AAGC,IAAA,QAAQ,EAAC;AAHV,IAlCD,CADD,CAdD,CADD;AA2DA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASI,mBAAT,QAA2C;AAAA,MAAb;AAAEC,IAAAA;AAAF,GAAa;AACjD,SACC,4BAAC,aAAD;AACC,IAAA,EAAE,EAAI,cAAcA,MAAM,CAACC,IAAM,EADlC;AAEC,IAAA,MAAM,EAAGD,MAAM,CAACZ;AAFjB,IADD;AAMA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { SVG } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { __unstableGetValuesFromColors as getValuesFromColors } from './index';\n\n/**\n * SVG and stylesheet needed for rendering the duotone filter.\n *\n * @param {Object} props Duotone props.\n * @param {string} props.selector Selector to apply the filter to.\n * @param {string} props.id Unique id for this duotone filter.\n *\n * @return {WPElement} Duotone element.\n */\nexport function DuotoneStylesheet( { selector, id } ) {\n\tconst css = `\n${ selector } {\n\tfilter: url( #${ id } );\n}\n`;\n\treturn <style>{ css }</style>;\n}\n\n/**\n * Stylesheet for disabling a global styles duotone filter.\n *\n * @param {Object} props Duotone props.\n * @param {string} props.selector Selector to disable the filter for.\n *\n * @return {WPElement} Filter none style element.\n */\nexport function DuotoneUnsetStylesheet( { selector } ) {\n\tconst css = `\n${ selector } {\n\tfilter: none;\n}\n`;\n\treturn <style>{ css }</style>;\n}\n\n/**\n * The SVG part of the duotone filter.\n *\n * @param {Object} props Duotone props.\n * @param {string} props.id Unique id for this duotone filter.\n * @param {string[]} props.colors Color strings from dark to light.\n *\n * @return {WPElement} Duotone SVG.\n */\nexport function DuotoneFilter( { id, colors } ) {\n\tconst values = getValuesFromColors( colors );\n\treturn (\n\t\t<SVG\n\t\t\txmlnsXlink=\"http://www.w3.org/1999/xlink\"\n\t\t\tviewBox=\"0 0 0 0\"\n\t\t\twidth=\"0\"\n\t\t\theight=\"0\"\n\t\t\tfocusable=\"false\"\n\t\t\trole=\"none\"\n\t\t\tstyle={ {\n\t\t\t\tvisibility: 'hidden',\n\t\t\t\tposition: 'absolute',\n\t\t\t\tleft: '-9999px',\n\t\t\t\toverflow: 'hidden',\n\t\t\t} }\n\t\t>\n\t\t\t<defs>\n\t\t\t\t<filter id={ id }>\n\t\t\t\t\t<feColorMatrix\n\t\t\t\t\t\t// Use sRGB instead of linearRGB so transparency looks correct.\n\t\t\t\t\t\tcolorInterpolationFilters=\"sRGB\"\n\t\t\t\t\t\ttype=\"matrix\"\n\t\t\t\t\t\t// Use perceptual brightness to convert to grayscale.\n\t\t\t\t\t\tvalues=\"\n\t\t\t\t\t\t\t.299 .587 .114 0 0\n\t\t\t\t\t\t\t.299 .587 .114 0 0\n\t\t\t\t\t\t\t.299 .587 .114 0 0\n\t\t\t\t\t\t\t.299 .587 .114 0 0\n\t\t\t\t\t\t\"\n\t\t\t\t\t/>\n\t\t\t\t\t<feComponentTransfer\n\t\t\t\t\t\t// Use sRGB instead of linearRGB to be consistent with how CSS gradients work.\n\t\t\t\t\t\tcolorInterpolationFilters=\"sRGB\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<feFuncR\n\t\t\t\t\t\t\ttype=\"table\"\n\t\t\t\t\t\t\ttableValues={ values.r.join( ' ' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<feFuncG\n\t\t\t\t\t\t\ttype=\"table\"\n\t\t\t\t\t\t\ttableValues={ values.g.join( ' ' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<feFuncB\n\t\t\t\t\t\t\ttype=\"table\"\n\t\t\t\t\t\t\ttableValues={ values.b.join( ' ' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<feFuncA\n\t\t\t\t\t\t\ttype=\"table\"\n\t\t\t\t\t\t\ttableValues={ values.a.join( ' ' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</feComponentTransfer>\n\t\t\t\t\t<feComposite\n\t\t\t\t\t\t// Re-mask the image with the original transparency since the feColorMatrix above loses that information.\n\t\t\t\t\t\tin2=\"SourceGraphic\"\n\t\t\t\t\t\toperator=\"in\"\n\t\t\t\t\t/>\n\t\t\t\t</filter>\n\t\t\t</defs>\n\t\t</SVG>\n\t);\n}\n\n/**\n * SVG from a duotone preset\n *\n * @param {Object} props Duotone props.\n * @param {Object} props.preset Duotone preset settings.\n *\n * @return {WPElement} Duotone element.\n */\nexport function PresetDuotoneFilter( { preset } ) {\n\treturn (\n\t\t<DuotoneFilter\n\t\t\tid={ `wp-duotone-${ preset.slug }` }\n\t\t\tcolors={ preset.colors }\n\t\t/>\n\t);\n}\n"]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "__unstableDuotoneFilter", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _components.DuotoneFilter;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "__unstableDuotoneStylesheet", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _components.DuotoneStylesheet;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "__unstableDuotoneUnsetStylesheet", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _components.DuotoneUnsetStylesheet;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "__unstableGetValuesFromColors", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _utils.getValuesFromColors;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "__unstablePresetDuotoneFilter", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _components.PresetDuotoneFilter;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
var _utils = require("./utils");
|
|
38
|
+
|
|
39
|
+
var _components = require("./components");
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/duotone/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA","sourcesContent":["export { getValuesFromColors as __unstableGetValuesFromColors } from './utils';\nexport {\n\tDuotoneFilter as __unstableDuotoneFilter,\n\tPresetDuotoneFilter as __unstablePresetDuotoneFilter,\n\tDuotoneStylesheet as __unstableDuotoneStylesheet,\n\tDuotoneUnsetStylesheet as __unstableDuotoneUnsetStylesheet,\n} from './components';\n"]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getValuesFromColors = getValuesFromColors;
|
|
7
|
+
|
|
8
|
+
var _colord = require("colord");
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* External dependencies
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Convert a list of colors to an object of R, G, and B values.
|
|
16
|
+
*
|
|
17
|
+
* @param {string[]} colors Array of RBG color strings.
|
|
18
|
+
*
|
|
19
|
+
* @return {Object} R, G, and B values.
|
|
20
|
+
*/
|
|
21
|
+
function getValuesFromColors() {
|
|
22
|
+
let colors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
23
|
+
const values = {
|
|
24
|
+
r: [],
|
|
25
|
+
g: [],
|
|
26
|
+
b: [],
|
|
27
|
+
a: []
|
|
28
|
+
};
|
|
29
|
+
colors.forEach(color => {
|
|
30
|
+
const rgbColor = (0, _colord.colord)(color).toRgb();
|
|
31
|
+
values.r.push(rgbColor.r / 255);
|
|
32
|
+
values.g.push(rgbColor.g / 255);
|
|
33
|
+
values.b.push(rgbColor.b / 255);
|
|
34
|
+
values.a.push(rgbColor.a);
|
|
35
|
+
});
|
|
36
|
+
return values;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/duotone/utils.js"],"names":["getValuesFromColors","colors","values","r","g","b","a","forEach","color","rgbColor","toRgb","push"],"mappings":";;;;;;;AAGA;;AAHA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,mBAAT,GAA4C;AAAA,MAAdC,MAAc,uEAAL,EAAK;AAClD,QAAMC,MAAM,GAAG;AAAEC,IAAAA,CAAC,EAAE,EAAL;AAASC,IAAAA,CAAC,EAAE,EAAZ;AAAgBC,IAAAA,CAAC,EAAE,EAAnB;AAAuBC,IAAAA,CAAC,EAAE;AAA1B,GAAf;AAEAL,EAAAA,MAAM,CAACM,OAAP,CAAkBC,KAAF,IAAa;AAC5B,UAAMC,QAAQ,GAAG,oBAAQD,KAAR,EAAgBE,KAAhB,EAAjB;AACAR,IAAAA,MAAM,CAACC,CAAP,CAASQ,IAAT,CAAeF,QAAQ,CAACN,CAAT,GAAa,GAA5B;AACAD,IAAAA,MAAM,CAACE,CAAP,CAASO,IAAT,CAAeF,QAAQ,CAACL,CAAT,GAAa,GAA5B;AACAF,IAAAA,MAAM,CAACG,CAAP,CAASM,IAAT,CAAeF,QAAQ,CAACJ,CAAT,GAAa,GAA5B;AACAH,IAAAA,MAAM,CAACI,CAAP,CAASK,IAAT,CAAeF,QAAQ,CAACH,CAAxB;AACA,GAND;AAQA,SAAOJ,MAAP;AACA","sourcesContent":["/**\n * External dependencies\n */\nimport { colord } from 'colord';\n\n/**\n * Convert a list of colors to an object of R, G, and B values.\n *\n * @param {string[]} colors Array of RBG color strings.\n *\n * @return {Object} R, G, and B values.\n */\nexport function getValuesFromColors( colors = [] ) {\n\tconst values = { r: [], g: [], b: [], a: [] };\n\n\tcolors.forEach( ( color ) => {\n\t\tconst rgbColor = colord( color ).toRgb();\n\t\tvalues.r.push( rgbColor.r / 255 );\n\t\tvalues.g.push( rgbColor.g / 255 );\n\t\tvalues.b.push( rgbColor.b / 255 );\n\t\tvalues.a.push( rgbColor.a );\n\t} );\n\n\treturn values;\n}\n"]}
|
|
@@ -27,6 +27,22 @@ function DuotoneControl(_ref) {
|
|
|
27
27
|
value,
|
|
28
28
|
onChange
|
|
29
29
|
} = _ref;
|
|
30
|
+
let toolbarIcon;
|
|
31
|
+
|
|
32
|
+
if (value === 'unset') {
|
|
33
|
+
toolbarIcon = (0, _element.createElement)(_components.ColorIndicator, {
|
|
34
|
+
className: "block-editor-duotone-control__unset-indicator"
|
|
35
|
+
});
|
|
36
|
+
} else if (value) {
|
|
37
|
+
toolbarIcon = (0, _element.createElement)(_components.DuotoneSwatch, {
|
|
38
|
+
values: value
|
|
39
|
+
});
|
|
40
|
+
} else {
|
|
41
|
+
toolbarIcon = (0, _element.createElement)(_icons.Icon, {
|
|
42
|
+
icon: _icons.filter
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
|
|
30
46
|
return (0, _element.createElement)(_components.Dropdown, {
|
|
31
47
|
popoverProps: {
|
|
32
48
|
className: 'block-editor-duotone-control__popover',
|
|
@@ -53,11 +69,7 @@ function DuotoneControl(_ref) {
|
|
|
53
69
|
"aria-expanded": isOpen,
|
|
54
70
|
onKeyDown: openOnArrowDown,
|
|
55
71
|
label: (0, _i18n.__)('Apply duotone filter'),
|
|
56
|
-
icon:
|
|
57
|
-
values: value
|
|
58
|
-
}) : (0, _element.createElement)(_icons.Icon, {
|
|
59
|
-
icon: _icons.filter
|
|
60
|
-
})
|
|
72
|
+
icon: toolbarIcon
|
|
61
73
|
});
|
|
62
74
|
},
|
|
63
75
|
renderContent: () => (0, _element.createElement)(_components.MenuGroup, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/duotone-control/index.js"],"names":["DuotoneControl","colorPalette","duotonePalette","disableCustomColors","disableCustomDuotone","value","onChange","className","headerTitle","isAlternate","isOpen","onToggle","openOnArrowDown","event","keyCode","DOWN","preventDefault"
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/duotone-control/index.js"],"names":["DuotoneControl","colorPalette","duotonePalette","disableCustomColors","disableCustomDuotone","value","onChange","toolbarIcon","filter","className","headerTitle","isAlternate","isOpen","onToggle","openOnArrowDown","event","keyCode","DOWN","preventDefault"],"mappings":";;;;;;;;;AAGA;;AAQA;;AACA;;AACA;;AAbA;AACA;AACA;AAaA,SAASA,cAAT,OAOI;AAAA,MAPqB;AACxBC,IAAAA,YADwB;AAExBC,IAAAA,cAFwB;AAGxBC,IAAAA,mBAHwB;AAIxBC,IAAAA,oBAJwB;AAKxBC,IAAAA,KALwB;AAMxBC,IAAAA;AANwB,GAOrB;AACH,MAAIC,WAAJ;;AACA,MAAKF,KAAK,KAAK,OAAf,EAAyB;AACxBE,IAAAA,WAAW,GACV,4BAAC,0BAAD;AAAgB,MAAA,SAAS,EAAC;AAA1B,MADD;AAGA,GAJD,MAIO,IAAKF,KAAL,EAAa;AACnBE,IAAAA,WAAW,GAAG,4BAAC,yBAAD;AAAe,MAAA,MAAM,EAAGF;AAAxB,MAAd;AACA,GAFM,MAEA;AACNE,IAAAA,WAAW,GAAG,4BAAC,WAAD;AAAM,MAAA,IAAI,EAAGC;AAAb,MAAd;AACA;;AACD,SACC,4BAAC,oBAAD;AACC,IAAA,YAAY,EAAG;AACdC,MAAAA,SAAS,EAAE,uCADG;AAEdC,MAAAA,WAAW,EAAE,cAAI,SAAJ,CAFC;AAGdC,MAAAA,WAAW,EAAE;AAHC,KADhB;AAMC,IAAA,YAAY,EAAG,SAA4B;AAAA,UAA1B;AAAEC,QAAAA,MAAF;AAAUC,QAAAA;AAAV,OAA0B;;AAC1C,YAAMC,eAAe,GAAKC,KAAF,IAAa;AACpC,YAAK,CAAEH,MAAF,IAAYG,KAAK,CAACC,OAAN,KAAkBC,cAAnC,EAA0C;AACzCF,UAAAA,KAAK,CAACG,cAAN;AACAL,UAAAA,QAAQ;AACR;AACD,OALD;;AAMA,aACC,4BAAC,yBAAD;AACC,QAAA,WAAW,MADZ;AAEC,QAAA,OAAO,EAAGA,QAFX;AAGC,yBAAc,MAHf;AAIC,yBAAgBD,MAJjB;AAKC,QAAA,SAAS,EAAGE,eALb;AAMC,QAAA,KAAK,EAAG,cAAI,sBAAJ,CANT;AAOC,QAAA,IAAI,EAAGP;AAPR,QADD;AAWA,KAxBF;AAyBC,IAAA,aAAa,EAAG,MACf,4BAAC,qBAAD;AAAW,MAAA,KAAK,EAAG,cAAI,SAAJ;AAAnB,OACC;AAAK,MAAA,SAAS,EAAC;AAAf,OACG,cACD,oEADC,CADH,CADD,EAMC,4BAAC,yBAAD;AACC,MAAA,YAAY,EAAGN,YADhB;AAEC,MAAA,cAAc,EAAGC,cAFlB;AAGC,MAAA,mBAAmB,EAAGC,mBAHvB;AAIC,MAAA,oBAAoB,EAAGC,oBAJxB;AAKC,MAAA,KAAK,EAAGC,KALT;AAMC,MAAA,QAAQ,EAAGC;AANZ,MAND;AA1BF,IADD;AA6CA;;eAEcN,c","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tColorIndicator,\n\tDropdown,\n\tDuotonePicker,\n\tDuotoneSwatch,\n\tMenuGroup,\n\tToolbarButton,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { DOWN } from '@wordpress/keycodes';\nimport { Icon, filter } from '@wordpress/icons';\n\nfunction DuotoneControl( {\n\tcolorPalette,\n\tduotonePalette,\n\tdisableCustomColors,\n\tdisableCustomDuotone,\n\tvalue,\n\tonChange,\n} ) {\n\tlet toolbarIcon;\n\tif ( value === 'unset' ) {\n\t\ttoolbarIcon = (\n\t\t\t<ColorIndicator className=\"block-editor-duotone-control__unset-indicator\" />\n\t\t);\n\t} else if ( value ) {\n\t\ttoolbarIcon = <DuotoneSwatch values={ value } />;\n\t} else {\n\t\ttoolbarIcon = <Icon icon={ filter } />;\n\t}\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ {\n\t\t\t\tclassName: 'block-editor-duotone-control__popover',\n\t\t\t\theaderTitle: __( 'Duotone' ),\n\t\t\t\tisAlternate: true,\n\t\t\t} }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\tconst openOnArrowDown = ( event ) => {\n\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tonToggle();\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\treturn (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\tonKeyDown={ openOnArrowDown }\n\t\t\t\t\t\tlabel={ __( 'Apply duotone filter' ) }\n\t\t\t\t\t\ticon={ toolbarIcon }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => (\n\t\t\t\t<MenuGroup label={ __( 'Duotone' ) }>\n\t\t\t\t\t<div className=\"block-editor-duotone-control__description\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Create a two-tone color effect without losing your original image.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t\t<DuotonePicker\n\t\t\t\t\t\tcolorPalette={ colorPalette }\n\t\t\t\t\t\tduotonePalette={ duotonePalette }\n\t\t\t\t\t\tdisableCustomColors={ disableCustomColors }\n\t\t\t\t\t\tdisableCustomDuotone={ disableCustomDuotone }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nexport default DuotoneControl;\n"]}
|