@wordpress/block-editor 12.25.0 → 12.26.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 +9 -3
- package/README.md +6 -0
- package/build/components/block-actions/index.js +4 -2
- package/build/components/block-actions/index.js.map +1 -1
- package/build/components/block-alignment-control/ui.js +2 -2
- package/build/components/block-alignment-control/ui.js.map +1 -1
- package/build/components/block-card/index.js +2 -2
- package/build/components/block-card/index.js.map +1 -1
- package/build/components/block-compare/index.js +2 -2
- package/build/components/block-compare/index.js.map +1 -1
- package/build/components/block-edit/edit.js +2 -2
- package/build/components/block-edit/edit.js.map +1 -1
- package/build/components/block-icon/index.js +2 -2
- package/build/components/block-icon/index.js.map +1 -1
- package/build/components/block-inspector/index.js +1 -1
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block.js +4 -4
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +2 -2
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/index.js +2 -2
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +5 -2
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-scroll-into-view.js +44 -0
- package/build/components/block-list/use-block-props/use-scroll-into-view.js.map +1 -0
- package/build/components/block-list-appender/index.js +2 -2
- package/build/components/block-list-appender/index.js.map +1 -1
- package/build/components/block-mover/button.js +2 -2
- package/build/components/block-mover/button.js.map +1 -1
- package/build/components/block-mover/index.js +2 -2
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-patterns-list/index.js +26 -5
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-popover/cover.js +9 -6
- package/build/components/block-popover/cover.js.map +1 -1
- package/build/components/block-popover/inbetween.js +2 -2
- package/build/components/block-popover/inbetween.js.map +1 -1
- package/build/components/block-popover/index.js +22 -4
- package/build/components/block-popover/index.js.map +1 -1
- package/build/components/block-preview/index.js +2 -2
- package/build/components/block-preview/index.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +8 -5
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +10 -7
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-styles/index.js +2 -2
- package/build/components/block-styles/index.js.map +1 -1
- package/build/components/block-toolbar/index.js +3 -3
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +2 -2
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/block-toolbar-breadcrumb.js +4 -4
- package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
- package/build/components/block-tools/block-toolbar-popover.js +2 -2
- package/build/components/block-tools/block-toolbar-popover.js.map +1 -1
- package/build/components/block-tools/empty-block-inserter.js +2 -2
- package/build/components/block-tools/empty-block-inserter.js.map +1 -1
- package/build/components/block-tools/index.js +20 -1
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +4 -4
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserters.js +66 -22
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build/components/block-variation-picker/index.js +2 -2
- package/build/components/block-variation-picker/index.js.map +1 -1
- package/build/components/button-block-appender/index.js +2 -2
- package/build/components/button-block-appender/index.js.map +1 -1
- package/build/components/child-layout-control/index.js +2 -2
- package/build/components/child-layout-control/index.js.map +1 -1
- package/build/components/colors-gradients/control.js +3 -3
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/colors-gradients/dropdown.js +2 -2
- package/build/components/colors-gradients/dropdown.js.map +1 -1
- package/build/components/colors-gradients/panel-color-gradient-settings.js +2 -2
- package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
- package/build/components/convert-to-group-buttons/index.js +6 -0
- package/build/components/convert-to-group-buttons/index.js.map +1 -1
- package/build/components/default-block-appender/index.js +2 -2
- package/build/components/default-block-appender/index.js.map +1 -1
- package/build/components/dimensions-tool/aspect-ratio-tool.js +30 -36
- package/build/components/dimensions-tool/aspect-ratio-tool.js.map +1 -1
- package/build/components/global-styles/background-panel.js +3 -3
- package/build/components/global-styles/background-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.js +3 -3
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +4 -4
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +2 -2
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/shadow-panel-components.js +4 -4
- package/build/components/global-styles/shadow-panel-components.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +1 -1
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/grid-visualizer/grid-item-resizer.js +141 -24
- package/build/components/grid-visualizer/grid-item-resizer.js.map +1 -1
- package/build/components/grid-visualizer/grid-visualizer.js +11 -5
- package/build/components/grid-visualizer/grid-visualizer.js.map +1 -1
- package/build/components/iframe/index.js +69 -30
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-editor/aspect-ratio-dropdown.js +53 -36
- package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
- package/build/components/image-editor/cropper.js +2 -2
- package/build/components/image-editor/cropper.js.map +1 -1
- package/build/components/image-editor/index.js +1 -1
- package/build/components/image-editor/index.js.map +1 -1
- package/build/components/index.js +8 -0
- package/build/components/index.js.map +1 -1
- package/build/components/inner-blocks/button-block-appender.js +2 -2
- package/build/components/inner-blocks/button-block-appender.js.map +1 -1
- package/build/components/inner-blocks/index.js +22 -21
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/pattern-list.js +1 -1
- package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/index.js +9 -0
- package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +1 -1
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
- package/build/components/inserter/block-types-tab.js +5 -3
- package/build/components/inserter/block-types-tab.js.map +1 -1
- package/build/components/inserter/hooks/use-insertion-point.js +11 -2
- package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build/components/inserter/hooks/use-patterns-state.js +12 -5
- package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build/components/inserter/index.js +2 -2
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/library.js +8 -2
- package/build/components/inserter/library.js.map +1 -1
- package/build/components/inserter/media-tab/media-preview.js +2 -2
- package/build/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build/components/inserter/menu.js +72 -56
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +2 -2
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter/tabs.js +17 -5
- package/build/components/inserter/tabs.js.map +1 -1
- package/build/components/inserter-list-item/index.js +3 -3
- package/build/components/inserter-list-item/index.js.map +1 -1
- package/build/components/keyboard-shortcuts/index.js +9 -0
- package/build/components/keyboard-shortcuts/index.js.map +1 -1
- package/build/components/link-control/index.js +2 -2
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/link-preview.js +3 -3
- package/build/components/link-control/link-preview.js.map +1 -1
- package/build/components/link-control/search-results.js +2 -2
- package/build/components/link-control/search-results.js.map +1 -1
- package/build/components/list-view/block-contents.js +2 -2
- package/build/components/list-view/block-contents.js.map +1 -1
- package/build/components/list-view/block-select-button.js +11 -3
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +35 -12
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/drop-indicator.js +3 -3
- package/build/components/list-view/drop-indicator.js.map +1 -1
- package/build/components/list-view/index.js +2 -2
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/list-view/leaf.js +2 -2
- package/build/components/list-view/leaf.js.map +1 -1
- package/build/components/media-placeholder/index.js +4 -4
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/media-replace-flow/index.js +2 -2
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/plain-text/index.js +2 -2
- package/build/components/plain-text/index.js.map +1 -1
- package/build/components/provider/use-block-sync.js +18 -0
- package/build/components/provider/use-block-sync.js.map +1 -1
- package/build/components/responsive-block-control/index.js +2 -2
- package/build/components/responsive-block-control/index.js.map +1 -1
- package/build/components/rich-text/event-listeners/enter.js +33 -42
- package/build/components/rich-text/event-listeners/enter.js.map +1 -1
- package/build/components/rich-text/event-listeners/paste-handler.js +22 -42
- package/build/components/rich-text/event-listeners/paste-handler.js.map +1 -1
- package/build/components/rich-text/format-toolbar/index.js +2 -2
- package/build/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build/components/rich-text/index.js +9 -2
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +2 -2
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/multiline.js +30 -2
- package/build/components/rich-text/multiline.js.map +1 -1
- package/build/components/segmented-text-control/index.js +2 -2
- package/build/components/segmented-text-control/index.js.map +1 -1
- package/build/components/text-alignment-control/index.js +2 -2
- package/build/components/text-alignment-control/index.js.map +1 -1
- package/build/components/text-decoration-control/index.js +2 -2
- package/build/components/text-decoration-control/index.js.map +1 -1
- package/build/components/text-transform-control/index.js +2 -2
- package/build/components/text-transform-control/index.js.map +1 -1
- package/build/components/url-input/index.js +4 -4
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/url-popover/link-editor.js +2 -2
- package/build/components/url-popover/link-editor.js.map +1 -1
- package/build/components/url-popover/link-viewer-url.js +2 -2
- package/build/components/url-popover/link-viewer-url.js.map +1 -1
- package/build/components/url-popover/link-viewer.js +2 -2
- package/build/components/url-popover/link-viewer.js.map +1 -1
- package/build/components/warning/index.js +2 -2
- package/build/components/warning/index.js.map +1 -1
- package/build/components/writing-flow/index.js +2 -2
- package/build/components/writing-flow/index.js.map +1 -1
- package/build/components/writing-flow/use-clipboard-handler.js +77 -30
- package/build/components/writing-flow/use-clipboard-handler.js.map +1 -1
- package/build/components/writing-flow/use-input.js +44 -2
- package/build/components/writing-flow/use-input.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +6 -1
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/components/writing-mode-control/index.js +2 -2
- package/build/components/writing-mode-control/index.js.map +1 -1
- package/build/hooks/align.js +2 -2
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/background.js +1 -1
- package/build/hooks/background.js.map +1 -1
- package/build/hooks/border.js +3 -3
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color.js +3 -3
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/content-lock-ui.js +5 -28
- package/build/hooks/content-lock-ui.js.map +1 -1
- package/build/hooks/custom-class-name.js +2 -2
- package/build/hooks/custom-class-name.js.map +1 -1
- package/build/hooks/custom-class-name.native.js +2 -2
- package/build/hooks/custom-class-name.native.js.map +1 -1
- package/build/hooks/dimensions.js +2 -2
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/layout-child.js +16 -8
- package/build/hooks/layout-child.js.map +1 -1
- package/build/hooks/layout.js +2 -2
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/position.js +2 -2
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/text-align.js +3 -3
- package/build/hooks/text-align.js.map +1 -1
- package/build/hooks/use-bindings-attributes.js +39 -13
- package/build/hooks/use-bindings-attributes.js.map +1 -1
- package/build/hooks/use-color-props.js +2 -2
- package/build/hooks/use-color-props.js.map +1 -1
- package/build/hooks/use-typography-props.js +2 -2
- package/build/hooks/use-typography-props.js.map +1 -1
- package/build/hooks/utils.js +2 -2
- package/build/hooks/utils.js.map +1 -1
- package/build/layouts/grid.js +7 -6
- package/build/layouts/grid.js.map +1 -1
- package/build/private-apis.js +4 -1
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +134 -40
- package/build/store/actions.js.map +1 -1
- package/build/store/private-actions.js +26 -1
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-keys.js +2 -1
- package/build/store/private-keys.js.map +1 -1
- package/build/store/private-selectors.js +6 -0
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/selectors.js +4 -1
- package/build/store/selectors.js.map +1 -1
- package/build/utils/selection.js +8 -0
- package/build/utils/selection.js.map +1 -1
- package/build/utils/transform-styles/index.js +12 -7
- package/build/utils/transform-styles/index.js.map +1 -1
- package/build-module/components/block-actions/index.js +4 -2
- package/build-module/components/block-actions/index.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.js +2 -2
- package/build-module/components/block-alignment-control/ui.js.map +1 -1
- package/build-module/components/block-card/index.js +2 -2
- package/build-module/components/block-card/index.js.map +1 -1
- package/build-module/components/block-compare/index.js +2 -2
- package/build-module/components/block-compare/index.js.map +1 -1
- package/build-module/components/block-edit/edit.js +2 -2
- package/build-module/components/block-edit/edit.js.map +1 -1
- package/build-module/components/block-icon/index.js +2 -2
- package/build-module/components/block-icon/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +1 -1
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block.js +4 -4
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +2 -2
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/index.js +2 -2
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +5 -2
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-scroll-into-view.js +37 -0
- package/build-module/components/block-list/use-block-props/use-scroll-into-view.js.map +1 -0
- package/build-module/components/block-list-appender/index.js +2 -2
- package/build-module/components/block-list-appender/index.js.map +1 -1
- package/build-module/components/block-mover/button.js +2 -2
- package/build-module/components/block-mover/button.js.map +1 -1
- package/build-module/components/block-mover/index.js +2 -2
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js +27 -6
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-popover/cover.js +9 -5
- package/build-module/components/block-popover/cover.js.map +1 -1
- package/build-module/components/block-popover/inbetween.js +2 -2
- package/build-module/components/block-popover/inbetween.js.map +1 -1
- package/build-module/components/block-popover/index.js +21 -3
- package/build-module/components/block-popover/index.js.map +1 -1
- package/build-module/components/block-preview/index.js +2 -2
- package/build-module/components/block-preview/index.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +8 -5
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +10 -7
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-styles/index.js +2 -2
- package/build-module/components/block-styles/index.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +3 -3
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +2 -2
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js +4 -4
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
- package/build-module/components/block-tools/block-toolbar-popover.js +2 -2
- package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -1
- package/build-module/components/block-tools/empty-block-inserter.js +2 -2
- package/build-module/components/block-tools/empty-block-inserter.js.map +1 -1
- package/build-module/components/block-tools/index.js +20 -1
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +4 -4
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-mode-inserters.js +67 -23
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build-module/components/block-variation-picker/index.js +2 -2
- package/build-module/components/block-variation-picker/index.js.map +1 -1
- package/build-module/components/button-block-appender/index.js +2 -2
- package/build-module/components/button-block-appender/index.js.map +1 -1
- package/build-module/components/child-layout-control/index.js +2 -2
- package/build-module/components/child-layout-control/index.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +3 -3
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/colors-gradients/dropdown.js +2 -2
- package/build-module/components/colors-gradients/dropdown.js.map +1 -1
- package/build-module/components/colors-gradients/panel-color-gradient-settings.js +2 -2
- package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/index.js +7 -1
- package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
- package/build-module/components/default-block-appender/index.js +2 -2
- package/build-module/components/default-block-appender/index.js.map +1 -1
- package/build-module/components/dimensions-tool/aspect-ratio-tool.js +30 -36
- package/build-module/components/dimensions-tool/aspect-ratio-tool.js.map +1 -1
- package/build-module/components/global-styles/background-panel.js +3 -3
- package/build-module/components/global-styles/background-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +3 -3
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +4 -4
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +2 -2
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/shadow-panel-components.js +4 -4
- package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/grid-visualizer/grid-item-resizer.js +141 -24
- package/build-module/components/grid-visualizer/grid-item-resizer.js.map +1 -1
- package/build-module/components/grid-visualizer/grid-visualizer.js +12 -6
- package/build-module/components/grid-visualizer/grid-visualizer.js.map +1 -1
- package/build-module/components/iframe/index.js +70 -31
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-editor/aspect-ratio-dropdown.js +52 -36
- package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
- package/build-module/components/image-editor/cropper.js +2 -2
- package/build-module/components/image-editor/cropper.js.map +1 -1
- package/build-module/components/image-editor/index.js +1 -1
- package/build-module/components/image-editor/index.js.map +1 -1
- package/build-module/components/index.js +1 -0
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/inner-blocks/button-block-appender.js +2 -2
- package/build-module/components/inner-blocks/button-block-appender.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +22 -21
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +1 -1
- package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/index.js +10 -1
- package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +1 -1
- package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.js +6 -4
- package/build-module/components/inserter/block-types-tab.js.map +1 -1
- package/build-module/components/inserter/hooks/use-insertion-point.js +11 -2
- package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build-module/components/inserter/hooks/use-patterns-state.js +12 -5
- package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build-module/components/inserter/index.js +2 -2
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/library.js +8 -2
- package/build-module/components/inserter/library.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-preview.js +2 -2
- package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build-module/components/inserter/menu.js +72 -56
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +2 -2
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter/tabs.js +18 -6
- package/build-module/components/inserter/tabs.js.map +1 -1
- package/build-module/components/inserter-list-item/index.js +3 -3
- package/build-module/components/inserter-list-item/index.js.map +1 -1
- package/build-module/components/keyboard-shortcuts/index.js +9 -0
- package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
- package/build-module/components/link-control/index.js +2 -2
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/link-preview.js +3 -3
- package/build-module/components/link-control/link-preview.js.map +1 -1
- package/build-module/components/link-control/search-results.js +2 -2
- package/build-module/components/link-control/search-results.js.map +1 -1
- package/build-module/components/list-view/block-contents.js +2 -2
- package/build-module/components/list-view/block-contents.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +11 -3
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +36 -13
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/drop-indicator.js +3 -3
- package/build-module/components/list-view/drop-indicator.js.map +1 -1
- package/build-module/components/list-view/index.js +2 -2
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/list-view/leaf.js +2 -2
- package/build-module/components/list-view/leaf.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +4 -4
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +2 -2
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/plain-text/index.js +2 -2
- package/build-module/components/plain-text/index.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +19 -1
- package/build-module/components/provider/use-block-sync.js.map +1 -1
- package/build-module/components/responsive-block-control/index.js +2 -2
- package/build-module/components/responsive-block-control/index.js.map +1 -1
- package/build-module/components/rich-text/event-listeners/enter.js +33 -43
- package/build-module/components/rich-text/event-listeners/enter.js.map +1 -1
- package/build-module/components/rich-text/event-listeners/paste-handler.js +23 -43
- package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar/index.js +2 -2
- package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +9 -2
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +2 -2
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/multiline.js +31 -3
- package/build-module/components/rich-text/multiline.js.map +1 -1
- package/build-module/components/segmented-text-control/index.js +2 -2
- package/build-module/components/segmented-text-control/index.js.map +1 -1
- package/build-module/components/text-alignment-control/index.js +2 -2
- package/build-module/components/text-alignment-control/index.js.map +1 -1
- package/build-module/components/text-decoration-control/index.js +2 -2
- package/build-module/components/text-decoration-control/index.js.map +1 -1
- package/build-module/components/text-transform-control/index.js +2 -2
- package/build-module/components/text-transform-control/index.js.map +1 -1
- package/build-module/components/url-input/index.js +4 -4
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/url-popover/link-editor.js +2 -2
- package/build-module/components/url-popover/link-editor.js.map +1 -1
- package/build-module/components/url-popover/link-viewer-url.js +2 -2
- package/build-module/components/url-popover/link-viewer-url.js.map +1 -1
- package/build-module/components/url-popover/link-viewer.js +2 -2
- package/build-module/components/url-popover/link-viewer.js.map +1 -1
- package/build-module/components/warning/index.js +2 -2
- package/build-module/components/warning/index.js.map +1 -1
- package/build-module/components/writing-flow/index.js +2 -2
- package/build-module/components/writing-flow/index.js.map +1 -1
- package/build-module/components/writing-flow/use-clipboard-handler.js +78 -31
- package/build-module/components/writing-flow/use-clipboard-handler.js.map +1 -1
- package/build-module/components/writing-flow/use-input.js +45 -3
- package/build-module/components/writing-flow/use-input.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +6 -1
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/components/writing-mode-control/index.js +2 -2
- package/build-module/components/writing-mode-control/index.js.map +1 -1
- package/build-module/hooks/align.js +2 -2
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/background.js +1 -1
- package/build-module/hooks/background.js.map +1 -1
- package/build-module/hooks/border.js +3 -3
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color.js +3 -3
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/content-lock-ui.js +5 -28
- package/build-module/hooks/content-lock-ui.js.map +1 -1
- package/build-module/hooks/custom-class-name.js +2 -2
- package/build-module/hooks/custom-class-name.js.map +1 -1
- package/build-module/hooks/custom-class-name.native.js +2 -2
- package/build-module/hooks/custom-class-name.native.js.map +1 -1
- package/build-module/hooks/dimensions.js +2 -2
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/layout-child.js +16 -8
- package/build-module/hooks/layout-child.js.map +1 -1
- package/build-module/hooks/layout.js +2 -2
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/position.js +2 -2
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/text-align.js +3 -3
- package/build-module/hooks/text-align.js.map +1 -1
- package/build-module/hooks/use-bindings-attributes.js +39 -13
- package/build-module/hooks/use-bindings-attributes.js.map +1 -1
- package/build-module/hooks/use-color-props.js +2 -2
- package/build-module/hooks/use-color-props.js.map +1 -1
- package/build-module/hooks/use-typography-props.js +2 -2
- package/build-module/hooks/use-typography-props.js.map +1 -1
- package/build-module/hooks/utils.js +2 -2
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/layouts/grid.js +7 -6
- package/build-module/layouts/grid.js.map +1 -1
- package/build-module/private-apis.js +5 -2
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +136 -42
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/private-actions.js +24 -0
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-keys.js +1 -0
- package/build-module/store/private-keys.js.map +1 -1
- package/build-module/store/private-selectors.js +5 -0
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/selectors.js +4 -1
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/selection.js +7 -0
- package/build-module/utils/selection.js.map +1 -1
- package/build-module/utils/transform-styles/index.js +12 -7
- package/build-module/utils/transform-styles/index.js.map +1 -1
- package/build-style/content-rtl.css +89 -96
- package/build-style/content.css +89 -96
- package/build-style/style-rtl.css +14 -4
- package/build-style/style.css +14 -4
- package/build-types/components/block-context/index.d.ts +1 -1
- package/build-types/components/block-context/index.d.ts.map +1 -1
- package/package.json +32 -32
- package/src/components/block-actions/index.js +5 -1
- package/src/components/block-alignment-control/ui.js +2 -2
- package/src/components/block-card/index.js +2 -2
- package/src/components/block-compare/index.js +2 -2
- package/src/components/block-content-overlay/content.scss +4 -37
- package/src/components/block-draggable/test/helpers.native.js +8 -8
- package/src/components/block-edit/edit.js +2 -2
- package/src/components/block-icon/index.js +2 -2
- package/src/components/block-inspector/index.js +2 -1
- package/src/components/block-list/block.js +4 -4
- package/src/components/block-list/block.native.js +2 -2
- package/src/components/block-list/content.scss +46 -73
- package/src/components/block-list/index.js +2 -2
- package/src/components/block-list/use-block-props/index.js +4 -2
- package/src/components/block-list/use-block-props/use-scroll-into-view.js +38 -0
- package/src/components/block-list-appender/index.js +2 -2
- package/src/components/block-mover/button.js +2 -2
- package/src/components/block-mover/index.js +2 -2
- package/src/components/block-patterns-list/index.js +29 -4
- package/src/components/block-popover/README.md +1 -1
- package/src/components/block-popover/cover.js +22 -7
- package/src/components/block-popover/inbetween.js +2 -2
- package/src/components/block-popover/index.js +24 -6
- package/src/components/block-preview/index.js +2 -2
- package/src/components/block-settings-menu/block-settings-dropdown.js +14 -6
- package/src/components/block-settings-menu-controls/index.js +25 -16
- package/src/components/block-styles/index.js +2 -2
- package/src/components/block-toolbar/index.js +3 -3
- package/src/components/block-tools/block-selection-button.js +2 -2
- package/src/components/block-tools/block-toolbar-breadcrumb.js +5 -5
- package/src/components/block-tools/block-toolbar-popover.js +4 -7
- package/src/components/block-tools/empty-block-inserter.js +2 -2
- package/src/components/block-tools/index.js +24 -3
- package/src/components/block-tools/insertion-point.js +4 -4
- package/src/components/block-tools/style.scss +8 -0
- package/src/components/block-tools/zoom-out-mode-inserters.js +73 -21
- package/src/components/block-variation-picker/index.js +2 -2
- package/src/components/button-block-appender/index.js +2 -2
- package/src/components/child-layout-control/index.js +14 -2
- package/src/components/colors-gradients/control.js +3 -3
- package/src/components/colors-gradients/dropdown.js +2 -2
- package/src/components/colors-gradients/panel-color-gradient-settings.js +2 -2
- package/src/components/colors-gradients/test/control.js +3 -3
- package/src/components/convert-to-group-buttons/index.js +10 -1
- package/src/components/default-block-appender/index.js +2 -2
- package/src/components/dimensions-tool/aspect-ratio-tool.js +40 -67
- package/src/components/dimensions-tool/test/index.js +10 -0
- package/src/components/editable-text/README.md +0 -4
- package/src/components/global-styles/background-panel.js +3 -3
- package/src/components/global-styles/color-panel.js +3 -3
- package/src/components/global-styles/dimensions-panel.js +4 -4
- package/src/components/global-styles/filters-panel.js +2 -2
- package/src/components/global-styles/shadow-panel-components.js +6 -9
- package/src/components/global-styles/test/get-global-styles-changes.js +0 -2
- package/src/components/global-styles/test/use-global-styles-output.js +5 -5
- package/src/components/global-styles/use-global-styles-output.js +1 -1
- package/src/components/grid-visualizer/grid-item-resizer.js +169 -40
- package/src/components/grid-visualizer/grid-visualizer.js +19 -6
- package/src/components/iframe/content.scss +63 -0
- package/src/components/iframe/index.js +119 -39
- package/src/components/image-editor/aspect-ratio-dropdown.js +91 -59
- package/src/components/image-editor/cropper.js +2 -2
- package/src/components/image-editor/index.js +1 -1
- package/src/components/image-editor/test/index.js +22 -0
- package/src/components/index.js +1 -0
- package/src/components/inner-blocks/button-block-appender.js +2 -2
- package/src/components/inner-blocks/index.js +19 -17
- package/src/components/inserter/block-patterns-explorer/pattern-list.js +2 -1
- package/src/components/inserter/block-patterns-tab/index.js +17 -1
- package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +2 -1
- package/src/components/inserter/block-types-tab.js +7 -9
- package/src/components/inserter/hooks/use-insertion-point.js +15 -1
- package/src/components/inserter/hooks/use-patterns-state.js +18 -5
- package/src/components/inserter/index.js +4 -5
- package/src/components/inserter/library.js +6 -0
- package/src/components/inserter/media-tab/media-preview.js +2 -2
- package/src/components/inserter/menu.js +113 -107
- package/src/components/inserter/quick-inserter.js +2 -2
- package/src/components/inserter/style.scss +6 -8
- package/src/components/inserter/tabs.js +29 -15
- package/src/components/inserter-list-item/index.js +3 -3
- package/src/components/keyboard-shortcuts/index.js +12 -0
- package/src/components/line-height-control/test/index.js +16 -14
- package/src/components/link-control/index.js +2 -2
- package/src/components/link-control/link-preview.js +3 -3
- package/src/components/link-control/search-results.js +2 -2
- package/src/components/list-view/block-contents.js +2 -2
- package/src/components/list-view/block-select-button.js +14 -3
- package/src/components/list-view/block.js +54 -30
- package/src/components/list-view/drop-indicator.js +3 -3
- package/src/components/list-view/index.js +2 -2
- package/src/components/list-view/leaf.js +2 -5
- package/src/components/media-placeholder/index.js +4 -4
- package/src/components/media-replace-flow/index.js +2 -2
- package/src/components/plain-text/index.js +2 -2
- package/src/components/provider/use-block-sync.js +27 -1
- package/src/components/responsive-block-control/index.js +2 -2
- package/src/components/rich-text/README.md +0 -8
- package/src/components/rich-text/event-listeners/enter.js +28 -48
- package/src/components/rich-text/event-listeners/paste-handler.js +21 -58
- package/src/components/rich-text/format-toolbar/index.js +2 -2
- package/src/components/rich-text/index.js +10 -3
- package/src/components/rich-text/index.native.js +2 -2
- package/src/components/rich-text/multiline.js +31 -3
- package/src/components/segmented-text-control/index.js +2 -2
- package/src/components/text-alignment-control/index.js +2 -2
- package/src/components/text-decoration-control/index.js +2 -2
- package/src/components/text-transform-control/index.js +2 -2
- package/src/components/url-input/index.js +4 -4
- package/src/components/url-popover/link-editor.js +2 -2
- package/src/components/url-popover/link-viewer-url.js +2 -2
- package/src/components/url-popover/link-viewer.js +2 -2
- package/src/components/warning/index.js +2 -2
- package/src/components/writing-flow/index.js +2 -2
- package/src/components/writing-flow/use-clipboard-handler.js +107 -47
- package/src/components/writing-flow/use-input.js +75 -1
- package/src/components/writing-flow/use-tab-nav.js +10 -1
- package/src/components/writing-mode-control/index.js +2 -5
- package/src/content.scss +1 -0
- package/src/hooks/align.js +2 -2
- package/src/hooks/background.js +1 -1
- package/src/hooks/border.js +3 -3
- package/src/hooks/color.js +12 -19
- package/src/hooks/color.scss +1 -0
- package/src/hooks/content-lock-ui.js +16 -33
- package/src/hooks/custom-class-name.js +2 -2
- package/src/hooks/custom-class-name.native.js +2 -2
- package/src/hooks/dimensions.js +2 -2
- package/src/hooks/layout-child.js +34 -20
- package/src/hooks/layout.js +2 -2
- package/src/hooks/position.js +2 -2
- package/src/hooks/text-align.js +3 -3
- package/src/hooks/use-bindings-attributes.js +48 -16
- package/src/hooks/use-color-props.js +2 -2
- package/src/hooks/use-typography-props.js +2 -2
- package/src/hooks/utils.js +2 -2
- package/src/layouts/grid.js +3 -7
- package/src/private-apis.js +4 -0
- package/src/store/actions.js +225 -70
- package/src/store/private-actions.js +24 -0
- package/src/store/private-keys.js +1 -0
- package/src/store/private-selectors.js +15 -0
- package/src/store/selectors.js +4 -2
- package/src/utils/selection.js +8 -0
- package/src/utils/test/__snapshots__/transform-styles.js.snap +6 -0
- package/src/utils/test/transform-styles.js +14 -0
- package/src/utils/transform-styles/index.js +12 -9
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/rich-text/split-value.js +0 -81
- package/build/components/rich-text/split-value.js.map +0 -1
- package/build-module/components/rich-text/split-value.js +0 -75
- package/build-module/components/rich-text/split-value.js.map +0 -1
- package/src/components/rich-text/split-value.js +0 -64
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["classnames","Platform","useRef","useCallback","forwardRef","useDispatch","useSelect","pasteHandler","children","childrenSource","getBlockTransforms","findTransform","isUnmodifiedDefaultBlock","useInstanceId","useMergeRefs","__unstableCreateElement","isEmpty","insert","remove","create","split","toHTMLString","slice","isURL","Autocomplete","useBlockEditContext","RemoveBrowserShortcuts","filePasteHandler","FormatToolbarContainer","store","blockEditorStore","addActiveFormats","getAllowedFormats","createLinkInParagraph","EmbedHandlerPicker","Content","RichText","withDeprecations","classes","RichTextWrapper","tagName","start","reversed","value","originalValue","onChange","originalOnChange","isSelected","originalIsSelected","inlineToolbar","wrapperClassName","autocompleters","onReplace","placeholder","allowedFormats","withoutInteractiveFormatting","onRemove","onMerge","onSplit","__unstableOnSplitAtEnd","onSplitAtEnd","__unstableOnSplitMiddle","onSplitMiddle","__unstableOnSplitAtDoubleLineEnd","onSplitAtDoubleLineEnd","identifier","preserveWhiteSpace","__unstablePastePlainText","pastePlainText","__unstableEmbedURLOnPaste","__unstableDisableFormats","disableFormats","disableLineBreaks","unstableOnFocus","__unstableAllowPrefixTransformations","__unstableMobileNoFocusOnMount","deleteEnter","placeholderTextColor","textAlign","selectionColor","tagsToEliminate","disableEditingMenu","fontSize","fontFamily","fontWeight","fontStyle","minWidth","maxWidth","onBlur","disableSuggestions","disableAutocorrection","containerWidth","onEnter","onCustomEnter","props","providedRef","instanceId","fallbackRef","clientId","blockIsSelected","embedHandlerPickerRef","selector","select","getSelectionStart","getSelectionEnd","getSettings","didAutomaticChange","getBlock","isMultiSelecting","hasMultiSelection","getSelectedBlockClientId","selectionStart","selectionEnd","__experimentalUndo","undo","undefined","attributeKey","extraProps","OS","block","shouldBlurOnUnmount","offset","disabled","__unstableMarkLastChangeAsPersistent","enterFormattedText","exitFormattedText","selectionChange","__unstableMarkAutomaticChange","clearSelectedBlock","adjustedAllowedFormats","hasFormats","length","adjustedValue","adjustedOnChange","Array","isArray","toHTML","newValue","fromDOM","document","childNodes","onSelectionChange","selectionChangeStart","selectionChangeEnd","clearCurrentSelectionOnUnmount","onDelete","isReverse","splitValue","record","pastedBlocks","blocks","before","after","hasPastedBlocks","lastPastedBlockIndex","isAfterOriginal","push","indexToSelect","initialPosition","shiftKey","canSplit","transforms","filter","type","transformation","item","regExp","test","text","transform","content","splitStart","end","splitEnd","canSplitAtEnd","onPaste","html","plainText","isInternal","files","activeFormats","pastedValue","HTML","mode","window","console","log","isPastedURL","trim","presentEmbedHandlerPicker","current","presentPicker","createEmbed","createLink","valueToInsert","canPasteEmbed","name","source","inputRule","valueToFormat","startPosition","characterBefore","trimmedTextBefore","prefixTransforms","prefix","mergedRef","createElement","nativeEditorRef","__unstableIsSelected","__unstableInputRule","__unstableOnEnterFormattedText","__unstableOnExitFormattedText","__unstableOnCreateUndoLevel","__unstableDidAutomaticChange","__unstableUndo","id","style","nestedIsSelected","onFocus","editableProps","editableTagName","TagName","Fragment","inline","anchorRef","completers","contentRef","listBoxId","activeId","onKeyDown","className","event","ref","PrivateRichText","defaultProps","format","Raw","RichTextShortcut","RichTextToolbarButton","__unstableRichTextInputEvent"],"sources":["@wordpress/block-editor/src/components/rich-text/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Platform, useRef, useCallback, forwardRef } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tpasteHandler,\n\tchildren as childrenSource,\n\tgetBlockTransforms,\n\tfindTransform,\n\tisUnmodifiedDefaultBlock,\n} from '@wordpress/blocks';\nimport { useInstanceId, useMergeRefs } from '@wordpress/compose';\nimport {\n\t__unstableCreateElement,\n\tisEmpty,\n\tinsert,\n\tremove,\n\tcreate,\n\tsplit,\n\ttoHTMLString,\n\tslice,\n} from '@wordpress/rich-text';\nimport { isURL } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport Autocomplete from '../autocomplete';\nimport { useBlockEditContext } from '../block-edit';\nimport { RemoveBrowserShortcuts } from './remove-browser-shortcuts';\nimport { filePasteHandler } from './file-paste-handler';\nimport FormatToolbarContainer from './format-toolbar-container';\nimport { store as blockEditorStore } from '../../store';\nimport {\n\taddActiveFormats,\n\tgetAllowedFormats,\n\tcreateLinkInParagraph,\n} from './utils';\nimport EmbedHandlerPicker from './embed-handler-picker';\nimport { Content } from './content';\nimport RichText from './native';\nimport { withDeprecations } from './with-deprecations';\n\nconst classes = 'block-editor-rich-text__editable';\n\nexport function RichTextWrapper(\n\t{\n\t\tchildren,\n\t\ttagName,\n\t\tstart,\n\t\treversed,\n\t\tvalue: originalValue,\n\t\tonChange: originalOnChange,\n\t\tisSelected: originalIsSelected,\n\t\tinlineToolbar,\n\t\twrapperClassName,\n\t\tautocompleters,\n\t\tonReplace,\n\t\tplaceholder,\n\t\tallowedFormats,\n\t\twithoutInteractiveFormatting,\n\t\tonRemove,\n\t\tonMerge,\n\t\tonSplit,\n\t\t__unstableOnSplitAtEnd: onSplitAtEnd,\n\t\t__unstableOnSplitMiddle: onSplitMiddle,\n\t\t__unstableOnSplitAtDoubleLineEnd: onSplitAtDoubleLineEnd,\n\t\tidentifier,\n\t\tpreserveWhiteSpace,\n\t\t__unstablePastePlainText: pastePlainText,\n\t\t__unstableEmbedURLOnPaste,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tdisableLineBreaks,\n\t\tunstableOnFocus,\n\t\t__unstableAllowPrefixTransformations,\n\t\t// Native props.\n\t\t__unstableMobileNoFocusOnMount,\n\t\tdeleteEnter,\n\t\tplaceholderTextColor,\n\t\ttextAlign,\n\t\tselectionColor,\n\t\ttagsToEliminate,\n\t\tdisableEditingMenu,\n\t\tfontSize,\n\t\tfontFamily,\n\t\tfontWeight,\n\t\tfontStyle,\n\t\tminWidth,\n\t\tmaxWidth,\n\t\tonBlur,\n\t\tdisableSuggestions,\n\t\tdisableAutocorrection,\n\t\tcontainerWidth,\n\t\tonEnter: onCustomEnter,\n\t\t...props\n\t},\n\tprovidedRef\n) {\n\tconst instanceId = useInstanceId( RichTextWrapper );\n\n\tidentifier = identifier || instanceId;\n\n\tconst fallbackRef = useRef();\n\tconst { clientId, isSelected: blockIsSelected } = useBlockEditContext();\n\tconst embedHandlerPickerRef = useRef();\n\tconst selector = ( select ) => {\n\t\tconst {\n\t\t\tgetSelectionStart,\n\t\t\tgetSelectionEnd,\n\t\t\tgetSettings,\n\t\t\tdidAutomaticChange,\n\t\t\tgetBlock,\n\t\t\tisMultiSelecting,\n\t\t\thasMultiSelection,\n\t\t\tgetSelectedBlockClientId,\n\t\t} = select( blockEditorStore );\n\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\t\tconst { __experimentalUndo: undo } = getSettings();\n\n\t\tlet isSelected;\n\n\t\tif ( originalIsSelected === undefined ) {\n\t\t\tisSelected =\n\t\t\t\tselectionStart.clientId === clientId &&\n\t\t\t\tselectionStart.attributeKey === identifier;\n\t\t} else if ( originalIsSelected ) {\n\t\t\tisSelected = selectionStart.clientId === clientId;\n\t\t}\n\n\t\tlet extraProps = {};\n\t\tif ( Platform.OS === 'native' ) {\n\t\t\t// If the block of this RichText is unmodified then it's a candidate for replacing when adding a new block.\n\t\t\t// In order to fix https://github.com/wordpress-mobile/gutenberg-mobile/issues/1126, let's blur on unmount in that case.\n\t\t\t// This apparently assumes functionality the BlockHlder actually.\n\t\t\tconst block = clientId && getBlock( clientId );\n\t\t\tconst shouldBlurOnUnmount =\n\t\t\t\tblock && isSelected && isUnmodifiedDefaultBlock( block );\n\t\t\textraProps = {\n\t\t\t\tshouldBlurOnUnmount,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tselectionStart: isSelected ? selectionStart.offset : undefined,\n\t\t\tselectionEnd: isSelected ? selectionEnd.offset : undefined,\n\t\t\tisSelected,\n\t\t\tdidAutomaticChange: didAutomaticChange(),\n\t\t\tdisabled: isMultiSelecting() || hasMultiSelection(),\n\t\t\tundo,\n\t\t\tgetSelectedBlockClientId,\n\t\t\t...extraProps,\n\t\t};\n\t};\n\t// This selector must run on every render so the right selection state is\n\t// retrieved from the store on merge.\n\t// To do: fix this somehow.\n\tconst {\n\t\tselectionStart,\n\t\tselectionEnd,\n\t\tisSelected,\n\t\tgetSelectedBlockClientId,\n\t\tdidAutomaticChange,\n\t\tdisabled,\n\t\tundo,\n\t\tshouldBlurOnUnmount,\n\t} = useSelect( selector );\n\tconst {\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tenterFormattedText,\n\t\texitFormattedText,\n\t\tselectionChange,\n\t\t__unstableMarkAutomaticChange,\n\t\tclearSelectedBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst adjustedAllowedFormats = getAllowedFormats( {\n\t\tallowedFormats,\n\t\tdisableFormats,\n\t} );\n\tconst hasFormats =\n\t\t! adjustedAllowedFormats || adjustedAllowedFormats.length > 0;\n\tlet adjustedValue = originalValue;\n\tlet adjustedOnChange = originalOnChange;\n\n\t// Handle deprecated format.\n\tif ( Array.isArray( originalValue ) ) {\n\t\tadjustedValue = childrenSource.toHTML( originalValue );\n\t\tadjustedOnChange = ( newValue ) =>\n\t\t\toriginalOnChange(\n\t\t\t\tchildrenSource.fromDOM(\n\t\t\t\t\t__unstableCreateElement( document, newValue ).childNodes\n\t\t\t\t)\n\t\t\t);\n\t}\n\n\tconst onSelectionChange = useCallback(\n\t\t( selectionChangeStart, selectionChangeEnd ) => {\n\t\t\tselectionChange(\n\t\t\t\tclientId,\n\t\t\t\tidentifier,\n\t\t\t\tselectionChangeStart,\n\t\t\t\tselectionChangeEnd\n\t\t\t);\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[ clientId, identifier ]\n\t);\n\n\tconst clearCurrentSelectionOnUnmount = useCallback( () => {\n\t\tif ( getSelectedBlockClientId() === clientId ) {\n\t\t\tclearSelectedBlock();\n\t\t}\n\t}, [ clearSelectedBlock, clientId, getSelectedBlockClientId ] );\n\n\tconst onDelete = useCallback(\n\t\t( { value, isReverse } ) => {\n\t\t\tif ( onMerge ) {\n\t\t\t\tonMerge( ! isReverse );\n\t\t\t}\n\n\t\t\t// Only handle remove on Backspace. This serves dual-purpose of being\n\t\t\t// an intentional user interaction distinguishing between Backspace and\n\t\t\t// Delete to remove the empty field, but also to avoid merge & remove\n\t\t\t// causing destruction of two fields (merge, then removed merged).\n\t\t\telse if ( onRemove && isEmpty( value ) && isReverse ) {\n\t\t\t\tonRemove( ! isReverse );\n\t\t\t}\n\t\t},\n\t\t[ onMerge, onRemove ]\n\t);\n\n\t/**\n\t * Signals to the RichText owner that the block can be replaced with two\n\t * blocks as a result of splitting the block by pressing enter, or with\n\t * blocks as a result of splitting the block by pasting block content in the\n\t * instance.\n\t *\n\t * @param {Object} record The rich text value to split.\n\t * @param {Array} pastedBlocks The pasted blocks to insert, if any.\n\t */\n\tconst splitValue = useCallback(\n\t\t( record, pastedBlocks = [] ) => {\n\t\t\tif ( ! onReplace || ! onSplit ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst blocks = [];\n\t\t\tconst [ before, after ] = split( record );\n\t\t\tconst hasPastedBlocks = pastedBlocks.length > 0;\n\t\t\tlet lastPastedBlockIndex = -1;\n\n\t\t\t// Consider the after value to be the original it is not empty and\n\t\t\t// the before value *is* empty.\n\t\t\tconst isAfterOriginal = isEmpty( before ) && ! isEmpty( after );\n\n\t\t\t// Create a block with the content before the caret if there's no pasted\n\t\t\t// blocks, or if there are pasted blocks and the value is not empty.\n\t\t\t// We do not want a leading empty block on paste, but we do if split\n\t\t\t// with e.g. the enter key.\n\t\t\tif ( ! hasPastedBlocks || ! isEmpty( before ) ) {\n\t\t\t\tblocks.push(\n\t\t\t\t\tonSplit(\n\t\t\t\t\t\ttoHTMLString( { value: before } ),\n\t\t\t\t\t\t! isAfterOriginal\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tlastPastedBlockIndex += 1;\n\t\t\t}\n\n\t\t\tif ( hasPastedBlocks ) {\n\t\t\t\tblocks.push( ...pastedBlocks );\n\t\t\t\tlastPastedBlockIndex += pastedBlocks.length;\n\t\t\t} else if ( onSplitMiddle ) {\n\t\t\t\tblocks.push( onSplitMiddle() );\n\t\t\t}\n\n\t\t\t// If there's pasted blocks, append a block with non empty content\n\t\t\t// after the caret. Otherwise, do append an empty block if there\n\t\t\t// is no `onSplitMiddle` prop, but if there is and the content is\n\t\t\t// empty, the middle block is enough to set focus in.\n\t\t\tif (\n\t\t\t\thasPastedBlocks\n\t\t\t\t\t? ! isEmpty( after )\n\t\t\t\t\t: ! onSplitMiddle || ! isEmpty( after )\n\t\t\t) {\n\t\t\t\tblocks.push(\n\t\t\t\t\tonSplit( toHTMLString( { value: after } ), isAfterOriginal )\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// If there are pasted blocks, set the selection to the last one.\n\t\t\t// Otherwise, set the selection to the second block.\n\t\t\tconst indexToSelect = hasPastedBlocks ? lastPastedBlockIndex : 1;\n\n\t\t\t// If there are pasted blocks, move the caret to the end of the selected block\n\t\t\t// Otherwise, retain the default value.\n\t\t\tconst initialPosition = hasPastedBlocks ? -1 : 0;\n\n\t\t\tonReplace( blocks, indexToSelect, initialPosition );\n\t\t},\n\t\t[ onReplace, onSplit, onSplitMiddle ]\n\t);\n\n\tconst onEnter = useCallback(\n\t\t( { value, onChange, shiftKey } ) => {\n\t\t\tconst canSplit = onReplace && onSplit;\n\n\t\t\tif ( onReplace ) {\n\t\t\t\tconst transforms = getBlockTransforms( 'from' ).filter(\n\t\t\t\t\t( { type } ) => type === 'enter'\n\t\t\t\t);\n\t\t\t\tconst transformation = findTransform( transforms, ( item ) => {\n\t\t\t\t\treturn item.regExp.test( value.text );\n\t\t\t\t} );\n\n\t\t\t\tif ( transformation ) {\n\t\t\t\t\tonReplace( [\n\t\t\t\t\t\ttransformation.transform( { content: value.text } ),\n\t\t\t\t\t] );\n\t\t\t\t\t__unstableMarkAutomaticChange();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( onCustomEnter ) {\n\t\t\t\tonCustomEnter();\n\t\t\t}\n\n\t\t\tconst { text, start: splitStart, end: splitEnd } = value;\n\t\t\tconst canSplitAtEnd =\n\t\t\t\tonSplitAtEnd &&\n\t\t\t\tsplitStart === splitEnd &&\n\t\t\t\tsplitEnd === text.length;\n\n\t\t\tif ( shiftKey ) {\n\t\t\t\tif ( ! disableLineBreaks ) {\n\t\t\t\t\tonChange( insert( value, '\\n' ) );\n\t\t\t\t}\n\t\t\t} else if ( canSplit ) {\n\t\t\t\tsplitValue( value );\n\t\t\t} else if ( canSplitAtEnd ) {\n\t\t\t\tonSplitAtEnd();\n\t\t\t} else if (\n\t\t\t\t// For some blocks it's desirable to split at the end of the\n\t\t\t\t// block when there are two line breaks at the end of the\n\t\t\t\t// block, so triple Enter exits the block.\n\t\t\t\tonSplitAtDoubleLineEnd &&\n\t\t\t\tsplitStart === splitEnd &&\n\t\t\t\tsplitEnd === text.length &&\n\t\t\t\ttext.slice( -2 ) === '\\n\\n'\n\t\t\t) {\n\t\t\t\tvalue.start = value.end - 2;\n\t\t\t\tonChange( remove( value ) );\n\t\t\t\tonSplitAtDoubleLineEnd();\n\t\t\t} else if ( ! disableLineBreaks ) {\n\t\t\t\tonChange( insert( value, '\\n' ) );\n\t\t\t}\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[\n\t\t\tonReplace,\n\t\t\tonSplit,\n\t\t\t__unstableMarkAutomaticChange,\n\t\t\tsplitValue,\n\t\t\tonSplitAtEnd,\n\t\t]\n\t);\n\n\tconst onPaste = useCallback(\n\t\t( {\n\t\t\tvalue,\n\t\t\tonChange,\n\t\t\thtml,\n\t\t\tplainText,\n\t\t\tisInternal,\n\t\t\tfiles,\n\t\t\tactiveFormats,\n\t\t} ) => {\n\t\t\t// If the data comes from a rich text instance, we can directly use it\n\t\t\t// without filtering the data. The filters are only meant for externally\n\t\t\t// pasted content and remove inline styles.\n\t\t\tif ( isInternal ) {\n\t\t\t\tconst pastedValue = create( {\n\t\t\t\t\thtml,\n\t\t\t\t\tpreserveWhiteSpace,\n\t\t\t\t} );\n\t\t\t\taddActiveFormats( pastedValue, activeFormats );\n\t\t\t\tonChange( insert( value, pastedValue ) );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( pastePlainText ) {\n\t\t\t\tonChange( insert( value, create( { text: plainText } ) ) );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Only process file if no HTML is present.\n\t\t\t// Note: a pasted file may have the URL as plain text.\n\t\t\tif ( files && files.length && ! html ) {\n\t\t\t\tconst content = pasteHandler( {\n\t\t\t\t\tHTML: filePasteHandler( files ),\n\t\t\t\t\tmode: 'BLOCKS',\n\t\t\t\t\ttagName,\n\t\t\t\t\tpreserveWhiteSpace,\n\t\t\t\t} );\n\n\t\t\t\t// Allows us to ask for this information when we get a report.\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\twindow.console.log( 'Received items:\\n\\n', files );\n\n\t\t\t\tif ( onReplace && isEmpty( value ) ) {\n\t\t\t\t\tonReplace( content );\n\t\t\t\t} else {\n\t\t\t\t\tsplitValue( value, content );\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet mode = onReplace && onSplit ? 'AUTO' : 'INLINE';\n\n\t\t\tconst isPastedURL = isURL( plainText.trim() );\n\t\t\tconst presentEmbedHandlerPicker = () =>\n\t\t\t\tembedHandlerPickerRef.current?.presentPicker( {\n\t\t\t\t\tcreateEmbed: () =>\n\t\t\t\t\t\tonReplace( content, content.length - 1, -1 ),\n\t\t\t\t\tcreateLink: () =>\n\t\t\t\t\t\tcreateLinkInParagraph( plainText.trim(), onReplace ),\n\t\t\t\t} );\n\n\t\t\tif (\n\t\t\t\t__unstableEmbedURLOnPaste &&\n\t\t\t\tisEmpty( value ) &&\n\t\t\t\tisPastedURL\n\t\t\t) {\n\t\t\t\tmode = 'BLOCKS';\n\t\t\t}\n\n\t\t\tconst content = pasteHandler( {\n\t\t\t\tHTML: html,\n\t\t\t\tplainText,\n\t\t\t\tmode,\n\t\t\t\ttagName,\n\t\t\t\tpreserveWhiteSpace,\n\t\t\t} );\n\n\t\t\tif ( typeof content === 'string' ) {\n\t\t\t\tconst valueToInsert = create( { html: content } );\n\t\t\t\taddActiveFormats( valueToInsert, activeFormats );\n\t\t\t\tonChange( insert( value, valueToInsert ) );\n\t\t\t} else if ( content.length > 0 ) {\n\t\t\t\t// When an URL is pasted in an empty paragraph then the EmbedHandlerPicker should showcase options allowing the transformation of that URL\n\t\t\t\t// into either an Embed block or a link within the target paragraph. If the paragraph is non-empty, the URL is pasted as text.\n\t\t\t\tconst canPasteEmbed =\n\t\t\t\t\tisPastedURL &&\n\t\t\t\t\tcontent.length === 1 &&\n\t\t\t\t\tcontent[ 0 ].name === 'core/embed';\n\t\t\t\tif ( onReplace && isEmpty( value ) ) {\n\t\t\t\t\tif ( canPasteEmbed ) {\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tinsert( value, create( { text: plainText } ) )\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( __unstableEmbedURLOnPaste ) {\n\t\t\t\t\t\t\tpresentEmbedHandlerPicker();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tonReplace( content, content.length - 1, -1, {\n\t\t\t\t\t\tsource: 'clipboard',\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\tif ( canPasteEmbed ) {\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tinsert( value, create( { text: plainText } ) )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tsplitValue( value, content );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\ttagName,\n\t\t\tonReplace,\n\t\t\tonSplit,\n\t\t\tsplitValue,\n\t\t\t__unstableEmbedURLOnPaste,\n\t\t\tpreserveWhiteSpace,\n\t\t\tpastePlainText,\n\t\t]\n\t);\n\n\tconst inputRule = useCallback(\n\t\t( value, valueToFormat ) => {\n\t\t\tif ( ! onReplace ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { start: startPosition, text } = value;\n\t\t\tconst characterBefore = text.slice(\n\t\t\t\tstartPosition - 1,\n\t\t\t\tstartPosition\n\t\t\t);\n\n\t\t\t// The character right before the caret must be a plain space.\n\t\t\tif ( characterBefore !== ' ' ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst trimmedTextBefore = text.slice( 0, startPosition ).trim();\n\t\t\tconst prefixTransforms = getBlockTransforms( 'from' ).filter(\n\t\t\t\t( { type } ) => type === 'prefix'\n\t\t\t);\n\t\t\tconst transformation = findTransform(\n\t\t\t\tprefixTransforms,\n\t\t\t\t( { prefix } ) => {\n\t\t\t\t\treturn trimmedTextBefore === prefix;\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif ( ! transformation ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst content = valueToFormat(\n\t\t\t\tslice( value, startPosition, text.length )\n\t\t\t);\n\t\t\tconst block = transformation.transform( content );\n\n\t\t\tonReplace( [ block ] );\n\t\t\t__unstableMarkAutomaticChange();\n\t\t},\n\t\t[ onReplace, __unstableMarkAutomaticChange ]\n\t);\n\n\tconst mergedRef = useMergeRefs( [ providedRef, fallbackRef ] );\n\n\treturn (\n\t\t<RichText\n\t\t\tclientId={ clientId }\n\t\t\tidentifier={ identifier }\n\t\t\tnativeEditorRef={ mergedRef }\n\t\t\tvalue={ adjustedValue }\n\t\t\tonChange={ adjustedOnChange }\n\t\t\tselectionStart={ selectionStart }\n\t\t\tselectionEnd={ selectionEnd }\n\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\ttagName={ tagName }\n\t\t\tstart={ start }\n\t\t\treversed={ reversed }\n\t\t\tplaceholder={ placeholder }\n\t\t\tallowedFormats={ adjustedAllowedFormats }\n\t\t\twithoutInteractiveFormatting={ withoutInteractiveFormatting }\n\t\t\tonEnter={ onEnter }\n\t\t\tonDelete={ onDelete }\n\t\t\tonPaste={ onPaste }\n\t\t\t__unstableIsSelected={ isSelected }\n\t\t\t__unstableInputRule={ inputRule }\n\t\t\t__unstableOnEnterFormattedText={ enterFormattedText }\n\t\t\t__unstableOnExitFormattedText={ exitFormattedText }\n\t\t\t__unstableOnCreateUndoLevel={ __unstableMarkLastChangeAsPersistent }\n\t\t\t__unstableMarkAutomaticChange={ __unstableMarkAutomaticChange }\n\t\t\t__unstableDidAutomaticChange={ didAutomaticChange }\n\t\t\t__unstableUndo={ undo }\n\t\t\t__unstableDisableFormats={ disableFormats }\n\t\t\tpreserveWhiteSpace={ preserveWhiteSpace }\n\t\t\tdisabled={ disabled }\n\t\t\tunstableOnFocus={ unstableOnFocus }\n\t\t\t__unstableAllowPrefixTransformations={\n\t\t\t\t__unstableAllowPrefixTransformations\n\t\t\t}\n\t\t\t// Native props.\n\t\t\tblockIsSelected={\n\t\t\t\toriginalIsSelected !== undefined\n\t\t\t\t\t? originalIsSelected\n\t\t\t\t\t: blockIsSelected\n\t\t\t}\n\t\t\tshouldBlurOnUnmount={ shouldBlurOnUnmount }\n\t\t\t__unstableMobileNoFocusOnMount={ __unstableMobileNoFocusOnMount }\n\t\t\tdeleteEnter={ deleteEnter }\n\t\t\tplaceholderTextColor={ placeholderTextColor }\n\t\t\ttextAlign={ textAlign }\n\t\t\tselectionColor={ selectionColor }\n\t\t\ttagsToEliminate={ tagsToEliminate }\n\t\t\tdisableEditingMenu={ disableEditingMenu }\n\t\t\tfontSize={ fontSize }\n\t\t\tfontFamily={ fontFamily }\n\t\t\tfontWeight={ fontWeight }\n\t\t\tfontStyle={ fontStyle }\n\t\t\tminWidth={ minWidth }\n\t\t\tmaxWidth={ maxWidth }\n\t\t\tonBlur={ onBlur }\n\t\t\tdisableSuggestions={ disableSuggestions }\n\t\t\tdisableAutocorrection={ disableAutocorrection }\n\t\t\tcontainerWidth={ containerWidth }\n\t\t\tclearCurrentSelectionOnUnmount={ clearCurrentSelectionOnUnmount }\n\t\t\t// Props to be set on the editable container are destructured on the\n\t\t\t// element itself for web (see below), but passed through rich text\n\t\t\t// for native.\n\t\t\tid={ props.id }\n\t\t\tstyle={ props.style }\n\t\t>\n\t\t\t{ ( {\n\t\t\t\tisSelected: nestedIsSelected,\n\t\t\t\tvalue,\n\t\t\t\tonChange,\n\t\t\t\tonFocus,\n\t\t\t\teditableProps,\n\t\t\t\teditableTagName: TagName,\n\t\t\t} ) => (\n\t\t\t\t<>\n\t\t\t\t\t{ children && children( { value, onChange, onFocus } ) }\n\t\t\t\t\t{ nestedIsSelected && hasFormats && (\n\t\t\t\t\t\t<FormatToolbarContainer\n\t\t\t\t\t\t\tinline={ inlineToolbar }\n\t\t\t\t\t\t\tanchorRef={ fallbackRef.current }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ nestedIsSelected && <RemoveBrowserShortcuts /> }\n\t\t\t\t\t<Autocomplete\n\t\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\t\tcompleters={ autocompleters }\n\t\t\t\t\t\trecord={ value }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tisSelected={ nestedIsSelected }\n\t\t\t\t\t\tcontentRef={ fallbackRef }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { listBoxId, activeId, onKeyDown } ) => (\n\t\t\t\t\t\t\t<TagName\n\t\t\t\t\t\t\t\t{ ...editableProps }\n\t\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\tprops.style\n\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t...props.style,\n\t\t\t\t\t\t\t\t\t\t\t\t...editableProps.style,\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t: editableProps.style\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\tclasses,\n\t\t\t\t\t\t\t\t\tprops.className,\n\t\t\t\t\t\t\t\t\teditableProps.className\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\taria-autocomplete={\n\t\t\t\t\t\t\t\t\tlistBoxId ? 'list' : undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\taria-owns={ listBoxId }\n\t\t\t\t\t\t\t\taria-activedescendant={ activeId }\n\t\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\t\tonKeyDown( event );\n\t\t\t\t\t\t\t\t\teditableProps.onKeyDown( event );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Autocomplete>\n\t\t\t\t\t<EmbedHandlerPicker ref={ embedHandlerPickerRef } />\n\t\t\t\t</>\n\t\t\t) }\n\t\t</RichText>\n\t);\n}\n\n// This export does not actually implement a private API, but was exported\n// under this name for interoperability with the web version of the RichText\n// component.\nexport const PrivateRichText = withDeprecations(\n\tforwardRef( RichTextWrapper )\n);\n\nPrivateRichText.Content = Content;\n\nPrivateRichText.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\nPrivateRichText.Content.defaultProps = {\n\tformat: 'string',\n\tvalue: '',\n};\n\nPrivateRichText.Raw = forwardRef( ( props, ref ) => (\n\t<RichText { ...props } nativeEditorRef={ ref } />\n) );\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/rich-text/README.md\n */\nexport default PrivateRichText;\nexport { RichTextShortcut } from './shortcut';\nexport { RichTextToolbarButton } from './toolbar-button';\nexport { __unstableRichTextInputEvent } from './input-event';\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clsx","Platform","useRef","useCallback","forwardRef","useDispatch","useSelect","pasteHandler","children","childrenSource","getBlockTransforms","findTransform","isUnmodifiedDefaultBlock","useInstanceId","useMergeRefs","__unstableCreateElement","isEmpty","insert","remove","create","split","toHTMLString","slice","isURL","Autocomplete","useBlockEditContext","RemoveBrowserShortcuts","filePasteHandler","FormatToolbarContainer","store","blockEditorStore","addActiveFormats","getAllowedFormats","createLinkInParagraph","EmbedHandlerPicker","Content","RichText","withDeprecations","classes","RichTextWrapper","tagName","start","reversed","value","originalValue","onChange","originalOnChange","isSelected","originalIsSelected","inlineToolbar","wrapperClassName","autocompleters","onReplace","placeholder","allowedFormats","withoutInteractiveFormatting","onRemove","onMerge","onSplit","__unstableOnSplitAtEnd","onSplitAtEnd","__unstableOnSplitMiddle","onSplitMiddle","__unstableOnSplitAtDoubleLineEnd","onSplitAtDoubleLineEnd","identifier","preserveWhiteSpace","__unstablePastePlainText","pastePlainText","__unstableEmbedURLOnPaste","__unstableDisableFormats","disableFormats","disableLineBreaks","unstableOnFocus","__unstableAllowPrefixTransformations","__unstableMobileNoFocusOnMount","deleteEnter","placeholderTextColor","textAlign","selectionColor","tagsToEliminate","disableEditingMenu","fontSize","fontFamily","fontWeight","fontStyle","minWidth","maxWidth","onBlur","disableSuggestions","disableAutocorrection","containerWidth","onEnter","onCustomEnter","props","providedRef","instanceId","fallbackRef","clientId","blockIsSelected","embedHandlerPickerRef","selector","select","getSelectionStart","getSelectionEnd","getSettings","didAutomaticChange","getBlock","isMultiSelecting","hasMultiSelection","getSelectedBlockClientId","selectionStart","selectionEnd","__experimentalUndo","undo","undefined","attributeKey","extraProps","OS","block","shouldBlurOnUnmount","offset","disabled","__unstableMarkLastChangeAsPersistent","enterFormattedText","exitFormattedText","selectionChange","__unstableMarkAutomaticChange","clearSelectedBlock","adjustedAllowedFormats","hasFormats","length","adjustedValue","adjustedOnChange","Array","isArray","toHTML","newValue","fromDOM","document","childNodes","onSelectionChange","selectionChangeStart","selectionChangeEnd","clearCurrentSelectionOnUnmount","onDelete","isReverse","splitValue","record","pastedBlocks","blocks","before","after","hasPastedBlocks","lastPastedBlockIndex","isAfterOriginal","push","indexToSelect","initialPosition","shiftKey","canSplit","transforms","filter","type","transformation","item","regExp","test","text","transform","content","splitStart","end","splitEnd","canSplitAtEnd","onPaste","html","plainText","isInternal","files","activeFormats","pastedValue","HTML","mode","window","console","log","isPastedURL","trim","presentEmbedHandlerPicker","current","presentPicker","createEmbed","createLink","valueToInsert","canPasteEmbed","name","source","inputRule","valueToFormat","startPosition","characterBefore","trimmedTextBefore","prefixTransforms","prefix","mergedRef","createElement","nativeEditorRef","__unstableIsSelected","__unstableInputRule","__unstableOnEnterFormattedText","__unstableOnExitFormattedText","__unstableOnCreateUndoLevel","__unstableDidAutomaticChange","__unstableUndo","id","style","nestedIsSelected","onFocus","editableProps","editableTagName","TagName","Fragment","inline","anchorRef","completers","contentRef","listBoxId","activeId","onKeyDown","className","event","ref","PrivateRichText","defaultProps","format","Raw","RichTextShortcut","RichTextToolbarButton","__unstableRichTextInputEvent"],"sources":["@wordpress/block-editor/src/components/rich-text/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { Platform, useRef, useCallback, forwardRef } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tpasteHandler,\n\tchildren as childrenSource,\n\tgetBlockTransforms,\n\tfindTransform,\n\tisUnmodifiedDefaultBlock,\n} from '@wordpress/blocks';\nimport { useInstanceId, useMergeRefs } from '@wordpress/compose';\nimport {\n\t__unstableCreateElement,\n\tisEmpty,\n\tinsert,\n\tremove,\n\tcreate,\n\tsplit,\n\ttoHTMLString,\n\tslice,\n} from '@wordpress/rich-text';\nimport { isURL } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport Autocomplete from '../autocomplete';\nimport { useBlockEditContext } from '../block-edit';\nimport { RemoveBrowserShortcuts } from './remove-browser-shortcuts';\nimport { filePasteHandler } from './file-paste-handler';\nimport FormatToolbarContainer from './format-toolbar-container';\nimport { store as blockEditorStore } from '../../store';\nimport {\n\taddActiveFormats,\n\tgetAllowedFormats,\n\tcreateLinkInParagraph,\n} from './utils';\nimport EmbedHandlerPicker from './embed-handler-picker';\nimport { Content } from './content';\nimport RichText from './native';\nimport { withDeprecations } from './with-deprecations';\n\nconst classes = 'block-editor-rich-text__editable';\n\nexport function RichTextWrapper(\n\t{\n\t\tchildren,\n\t\ttagName,\n\t\tstart,\n\t\treversed,\n\t\tvalue: originalValue,\n\t\tonChange: originalOnChange,\n\t\tisSelected: originalIsSelected,\n\t\tinlineToolbar,\n\t\twrapperClassName,\n\t\tautocompleters,\n\t\tonReplace,\n\t\tplaceholder,\n\t\tallowedFormats,\n\t\twithoutInteractiveFormatting,\n\t\tonRemove,\n\t\tonMerge,\n\t\tonSplit,\n\t\t__unstableOnSplitAtEnd: onSplitAtEnd,\n\t\t__unstableOnSplitMiddle: onSplitMiddle,\n\t\t__unstableOnSplitAtDoubleLineEnd: onSplitAtDoubleLineEnd,\n\t\tidentifier,\n\t\tpreserveWhiteSpace,\n\t\t__unstablePastePlainText: pastePlainText,\n\t\t__unstableEmbedURLOnPaste,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tdisableLineBreaks,\n\t\tunstableOnFocus,\n\t\t__unstableAllowPrefixTransformations,\n\t\t// Native props.\n\t\t__unstableMobileNoFocusOnMount,\n\t\tdeleteEnter,\n\t\tplaceholderTextColor,\n\t\ttextAlign,\n\t\tselectionColor,\n\t\ttagsToEliminate,\n\t\tdisableEditingMenu,\n\t\tfontSize,\n\t\tfontFamily,\n\t\tfontWeight,\n\t\tfontStyle,\n\t\tminWidth,\n\t\tmaxWidth,\n\t\tonBlur,\n\t\tdisableSuggestions,\n\t\tdisableAutocorrection,\n\t\tcontainerWidth,\n\t\tonEnter: onCustomEnter,\n\t\t...props\n\t},\n\tprovidedRef\n) {\n\tconst instanceId = useInstanceId( RichTextWrapper );\n\n\tidentifier = identifier || instanceId;\n\n\tconst fallbackRef = useRef();\n\tconst { clientId, isSelected: blockIsSelected } = useBlockEditContext();\n\tconst embedHandlerPickerRef = useRef();\n\tconst selector = ( select ) => {\n\t\tconst {\n\t\t\tgetSelectionStart,\n\t\t\tgetSelectionEnd,\n\t\t\tgetSettings,\n\t\t\tdidAutomaticChange,\n\t\t\tgetBlock,\n\t\t\tisMultiSelecting,\n\t\t\thasMultiSelection,\n\t\t\tgetSelectedBlockClientId,\n\t\t} = select( blockEditorStore );\n\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\t\tconst { __experimentalUndo: undo } = getSettings();\n\n\t\tlet isSelected;\n\n\t\tif ( originalIsSelected === undefined ) {\n\t\t\tisSelected =\n\t\t\t\tselectionStart.clientId === clientId &&\n\t\t\t\tselectionStart.attributeKey === identifier;\n\t\t} else if ( originalIsSelected ) {\n\t\t\tisSelected = selectionStart.clientId === clientId;\n\t\t}\n\n\t\tlet extraProps = {};\n\t\tif ( Platform.OS === 'native' ) {\n\t\t\t// If the block of this RichText is unmodified then it's a candidate for replacing when adding a new block.\n\t\t\t// In order to fix https://github.com/wordpress-mobile/gutenberg-mobile/issues/1126, let's blur on unmount in that case.\n\t\t\t// This apparently assumes functionality the BlockHlder actually.\n\t\t\tconst block = clientId && getBlock( clientId );\n\t\t\tconst shouldBlurOnUnmount =\n\t\t\t\tblock && isSelected && isUnmodifiedDefaultBlock( block );\n\t\t\textraProps = {\n\t\t\t\tshouldBlurOnUnmount,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tselectionStart: isSelected ? selectionStart.offset : undefined,\n\t\t\tselectionEnd: isSelected ? selectionEnd.offset : undefined,\n\t\t\tisSelected,\n\t\t\tdidAutomaticChange: didAutomaticChange(),\n\t\t\tdisabled: isMultiSelecting() || hasMultiSelection(),\n\t\t\tundo,\n\t\t\tgetSelectedBlockClientId,\n\t\t\t...extraProps,\n\t\t};\n\t};\n\t// This selector must run on every render so the right selection state is\n\t// retrieved from the store on merge.\n\t// To do: fix this somehow.\n\tconst {\n\t\tselectionStart,\n\t\tselectionEnd,\n\t\tisSelected,\n\t\tgetSelectedBlockClientId,\n\t\tdidAutomaticChange,\n\t\tdisabled,\n\t\tundo,\n\t\tshouldBlurOnUnmount,\n\t} = useSelect( selector );\n\tconst {\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tenterFormattedText,\n\t\texitFormattedText,\n\t\tselectionChange,\n\t\t__unstableMarkAutomaticChange,\n\t\tclearSelectedBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst adjustedAllowedFormats = getAllowedFormats( {\n\t\tallowedFormats,\n\t\tdisableFormats,\n\t} );\n\tconst hasFormats =\n\t\t! adjustedAllowedFormats || adjustedAllowedFormats.length > 0;\n\tlet adjustedValue = originalValue;\n\tlet adjustedOnChange = originalOnChange;\n\n\t// Handle deprecated format.\n\tif ( Array.isArray( originalValue ) ) {\n\t\tadjustedValue = childrenSource.toHTML( originalValue );\n\t\tadjustedOnChange = ( newValue ) =>\n\t\t\toriginalOnChange(\n\t\t\t\tchildrenSource.fromDOM(\n\t\t\t\t\t__unstableCreateElement( document, newValue ).childNodes\n\t\t\t\t)\n\t\t\t);\n\t}\n\n\tconst onSelectionChange = useCallback(\n\t\t( selectionChangeStart, selectionChangeEnd ) => {\n\t\t\tselectionChange(\n\t\t\t\tclientId,\n\t\t\t\tidentifier,\n\t\t\t\tselectionChangeStart,\n\t\t\t\tselectionChangeEnd\n\t\t\t);\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[ clientId, identifier ]\n\t);\n\n\tconst clearCurrentSelectionOnUnmount = useCallback( () => {\n\t\tif ( getSelectedBlockClientId() === clientId ) {\n\t\t\tclearSelectedBlock();\n\t\t}\n\t}, [ clearSelectedBlock, clientId, getSelectedBlockClientId ] );\n\n\tconst onDelete = useCallback(\n\t\t( { value, isReverse } ) => {\n\t\t\tif ( onMerge ) {\n\t\t\t\tonMerge( ! isReverse );\n\t\t\t}\n\n\t\t\t// Only handle remove on Backspace. This serves dual-purpose of being\n\t\t\t// an intentional user interaction distinguishing between Backspace and\n\t\t\t// Delete to remove the empty field, but also to avoid merge & remove\n\t\t\t// causing destruction of two fields (merge, then removed merged).\n\t\t\telse if ( onRemove && isEmpty( value ) && isReverse ) {\n\t\t\t\tonRemove( ! isReverse );\n\t\t\t}\n\t\t},\n\t\t[ onMerge, onRemove ]\n\t);\n\n\t/**\n\t * Signals to the RichText owner that the block can be replaced with two\n\t * blocks as a result of splitting the block by pressing enter, or with\n\t * blocks as a result of splitting the block by pasting block content in the\n\t * instance.\n\t *\n\t * @param {Object} record The rich text value to split.\n\t * @param {Array} pastedBlocks The pasted blocks to insert, if any.\n\t */\n\tconst splitValue = useCallback(\n\t\t( record, pastedBlocks = [] ) => {\n\t\t\tif ( ! onReplace || ! onSplit ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst blocks = [];\n\t\t\tconst [ before, after ] = split( record );\n\t\t\tconst hasPastedBlocks = pastedBlocks.length > 0;\n\t\t\tlet lastPastedBlockIndex = -1;\n\n\t\t\t// Consider the after value to be the original it is not empty and\n\t\t\t// the before value *is* empty.\n\t\t\tconst isAfterOriginal = isEmpty( before ) && ! isEmpty( after );\n\n\t\t\t// Create a block with the content before the caret if there's no pasted\n\t\t\t// blocks, or if there are pasted blocks and the value is not empty.\n\t\t\t// We do not want a leading empty block on paste, but we do if split\n\t\t\t// with e.g. the enter key.\n\t\t\tif ( ! hasPastedBlocks || ! isEmpty( before ) ) {\n\t\t\t\tblocks.push(\n\t\t\t\t\tonSplit(\n\t\t\t\t\t\ttoHTMLString( { value: before } ),\n\t\t\t\t\t\t! isAfterOriginal\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tlastPastedBlockIndex += 1;\n\t\t\t}\n\n\t\t\tif ( hasPastedBlocks ) {\n\t\t\t\tblocks.push( ...pastedBlocks );\n\t\t\t\tlastPastedBlockIndex += pastedBlocks.length;\n\t\t\t} else if ( onSplitMiddle ) {\n\t\t\t\tblocks.push( onSplitMiddle() );\n\t\t\t}\n\n\t\t\t// If there's pasted blocks, append a block with non empty content\n\t\t\t// after the caret. Otherwise, do append an empty block if there\n\t\t\t// is no `onSplitMiddle` prop, but if there is and the content is\n\t\t\t// empty, the middle block is enough to set focus in.\n\t\t\tif (\n\t\t\t\thasPastedBlocks\n\t\t\t\t\t? ! isEmpty( after )\n\t\t\t\t\t: ! onSplitMiddle || ! isEmpty( after )\n\t\t\t) {\n\t\t\t\tblocks.push(\n\t\t\t\t\tonSplit( toHTMLString( { value: after } ), isAfterOriginal )\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// If there are pasted blocks, set the selection to the last one.\n\t\t\t// Otherwise, set the selection to the second block.\n\t\t\tconst indexToSelect = hasPastedBlocks ? lastPastedBlockIndex : 1;\n\n\t\t\t// If there are pasted blocks, move the caret to the end of the selected block\n\t\t\t// Otherwise, retain the default value.\n\t\t\tconst initialPosition = hasPastedBlocks ? -1 : 0;\n\n\t\t\tonReplace( blocks, indexToSelect, initialPosition );\n\t\t},\n\t\t[ onReplace, onSplit, onSplitMiddle ]\n\t);\n\n\tconst onEnter = useCallback(\n\t\t( { value, onChange, shiftKey } ) => {\n\t\t\tconst canSplit = onReplace && onSplit;\n\n\t\t\tif ( onReplace ) {\n\t\t\t\tconst transforms = getBlockTransforms( 'from' ).filter(\n\t\t\t\t\t( { type } ) => type === 'enter'\n\t\t\t\t);\n\t\t\t\tconst transformation = findTransform( transforms, ( item ) => {\n\t\t\t\t\treturn item.regExp.test( value.text );\n\t\t\t\t} );\n\n\t\t\t\tif ( transformation ) {\n\t\t\t\t\tonReplace( [\n\t\t\t\t\t\ttransformation.transform( { content: value.text } ),\n\t\t\t\t\t] );\n\t\t\t\t\t__unstableMarkAutomaticChange();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( onCustomEnter ) {\n\t\t\t\tonCustomEnter();\n\t\t\t}\n\n\t\t\tconst { text, start: splitStart, end: splitEnd } = value;\n\t\t\tconst canSplitAtEnd =\n\t\t\t\tonSplitAtEnd &&\n\t\t\t\tsplitStart === splitEnd &&\n\t\t\t\tsplitEnd === text.length;\n\n\t\t\tif ( shiftKey ) {\n\t\t\t\tif ( ! disableLineBreaks ) {\n\t\t\t\t\tonChange( insert( value, '\\n' ) );\n\t\t\t\t}\n\t\t\t} else if ( canSplit ) {\n\t\t\t\tsplitValue( value );\n\t\t\t} else if ( canSplitAtEnd ) {\n\t\t\t\tonSplitAtEnd();\n\t\t\t} else if (\n\t\t\t\t// For some blocks it's desirable to split at the end of the\n\t\t\t\t// block when there are two line breaks at the end of the\n\t\t\t\t// block, so triple Enter exits the block.\n\t\t\t\tonSplitAtDoubleLineEnd &&\n\t\t\t\tsplitStart === splitEnd &&\n\t\t\t\tsplitEnd === text.length &&\n\t\t\t\ttext.slice( -2 ) === '\\n\\n'\n\t\t\t) {\n\t\t\t\tvalue.start = value.end - 2;\n\t\t\t\tonChange( remove( value ) );\n\t\t\t\tonSplitAtDoubleLineEnd();\n\t\t\t} else if ( ! disableLineBreaks ) {\n\t\t\t\tonChange( insert( value, '\\n' ) );\n\t\t\t}\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[\n\t\t\tonReplace,\n\t\t\tonSplit,\n\t\t\t__unstableMarkAutomaticChange,\n\t\t\tsplitValue,\n\t\t\tonSplitAtEnd,\n\t\t]\n\t);\n\n\tconst onPaste = useCallback(\n\t\t( {\n\t\t\tvalue,\n\t\t\tonChange,\n\t\t\thtml,\n\t\t\tplainText,\n\t\t\tisInternal,\n\t\t\tfiles,\n\t\t\tactiveFormats,\n\t\t} ) => {\n\t\t\t// If the data comes from a rich text instance, we can directly use it\n\t\t\t// without filtering the data. The filters are only meant for externally\n\t\t\t// pasted content and remove inline styles.\n\t\t\tif ( isInternal ) {\n\t\t\t\tconst pastedValue = create( {\n\t\t\t\t\thtml,\n\t\t\t\t\tpreserveWhiteSpace,\n\t\t\t\t} );\n\t\t\t\taddActiveFormats( pastedValue, activeFormats );\n\t\t\t\tonChange( insert( value, pastedValue ) );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( pastePlainText ) {\n\t\t\t\tonChange( insert( value, create( { text: plainText } ) ) );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Only process file if no HTML is present.\n\t\t\t// Note: a pasted file may have the URL as plain text.\n\t\t\tif ( files && files.length && ! html ) {\n\t\t\t\tconst content = pasteHandler( {\n\t\t\t\t\tHTML: filePasteHandler( files ),\n\t\t\t\t\tmode: 'BLOCKS',\n\t\t\t\t\ttagName,\n\t\t\t\t\tpreserveWhiteSpace,\n\t\t\t\t} );\n\n\t\t\t\t// Allows us to ask for this information when we get a report.\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\twindow.console.log( 'Received items:\\n\\n', files );\n\n\t\t\t\tif ( onReplace && isEmpty( value ) ) {\n\t\t\t\t\tonReplace( content );\n\t\t\t\t} else {\n\t\t\t\t\tsplitValue( value, content );\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet mode = onReplace && onSplit ? 'AUTO' : 'INLINE';\n\n\t\t\tconst isPastedURL = isURL( plainText.trim() );\n\t\t\tconst presentEmbedHandlerPicker = () =>\n\t\t\t\tembedHandlerPickerRef.current?.presentPicker( {\n\t\t\t\t\tcreateEmbed: () =>\n\t\t\t\t\t\tonReplace( content, content.length - 1, -1 ),\n\t\t\t\t\tcreateLink: () =>\n\t\t\t\t\t\tcreateLinkInParagraph( plainText.trim(), onReplace ),\n\t\t\t\t} );\n\n\t\t\tif (\n\t\t\t\t__unstableEmbedURLOnPaste &&\n\t\t\t\tisEmpty( value ) &&\n\t\t\t\tisPastedURL\n\t\t\t) {\n\t\t\t\tmode = 'BLOCKS';\n\t\t\t}\n\n\t\t\tconst content = pasteHandler( {\n\t\t\t\tHTML: html,\n\t\t\t\tplainText,\n\t\t\t\tmode,\n\t\t\t\ttagName,\n\t\t\t\tpreserveWhiteSpace,\n\t\t\t} );\n\n\t\t\tif ( typeof content === 'string' ) {\n\t\t\t\tconst valueToInsert = create( { html: content } );\n\t\t\t\taddActiveFormats( valueToInsert, activeFormats );\n\t\t\t\tonChange( insert( value, valueToInsert ) );\n\t\t\t} else if ( content.length > 0 ) {\n\t\t\t\t// When an URL is pasted in an empty paragraph then the EmbedHandlerPicker should showcase options allowing the transformation of that URL\n\t\t\t\t// into either an Embed block or a link within the target paragraph. If the paragraph is non-empty, the URL is pasted as text.\n\t\t\t\tconst canPasteEmbed =\n\t\t\t\t\tisPastedURL &&\n\t\t\t\t\tcontent.length === 1 &&\n\t\t\t\t\tcontent[ 0 ].name === 'core/embed';\n\t\t\t\tif ( onReplace && isEmpty( value ) ) {\n\t\t\t\t\tif ( canPasteEmbed ) {\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tinsert( value, create( { text: plainText } ) )\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( __unstableEmbedURLOnPaste ) {\n\t\t\t\t\t\t\tpresentEmbedHandlerPicker();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tonReplace( content, content.length - 1, -1, {\n\t\t\t\t\t\tsource: 'clipboard',\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\tif ( canPasteEmbed ) {\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tinsert( value, create( { text: plainText } ) )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tsplitValue( value, content );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\ttagName,\n\t\t\tonReplace,\n\t\t\tonSplit,\n\t\t\tsplitValue,\n\t\t\t__unstableEmbedURLOnPaste,\n\t\t\tpreserveWhiteSpace,\n\t\t\tpastePlainText,\n\t\t]\n\t);\n\n\tconst inputRule = useCallback(\n\t\t( value, valueToFormat ) => {\n\t\t\tif ( ! onReplace ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { start: startPosition, text } = value;\n\t\t\tconst characterBefore = text.slice(\n\t\t\t\tstartPosition - 1,\n\t\t\t\tstartPosition\n\t\t\t);\n\n\t\t\t// The character right before the caret must be a plain space.\n\t\t\tif ( characterBefore !== ' ' ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst trimmedTextBefore = text.slice( 0, startPosition ).trim();\n\t\t\tconst prefixTransforms = getBlockTransforms( 'from' ).filter(\n\t\t\t\t( { type } ) => type === 'prefix'\n\t\t\t);\n\t\t\tconst transformation = findTransform(\n\t\t\t\tprefixTransforms,\n\t\t\t\t( { prefix } ) => {\n\t\t\t\t\treturn trimmedTextBefore === prefix;\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif ( ! transformation ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst content = valueToFormat(\n\t\t\t\tslice( value, startPosition, text.length )\n\t\t\t);\n\t\t\tconst block = transformation.transform( content );\n\n\t\t\tonReplace( [ block ] );\n\t\t\t__unstableMarkAutomaticChange();\n\t\t},\n\t\t[ onReplace, __unstableMarkAutomaticChange ]\n\t);\n\n\tconst mergedRef = useMergeRefs( [ providedRef, fallbackRef ] );\n\n\treturn (\n\t\t<RichText\n\t\t\tclientId={ clientId }\n\t\t\tidentifier={ identifier }\n\t\t\tnativeEditorRef={ mergedRef }\n\t\t\tvalue={ adjustedValue }\n\t\t\tonChange={ adjustedOnChange }\n\t\t\tselectionStart={ selectionStart }\n\t\t\tselectionEnd={ selectionEnd }\n\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\ttagName={ tagName }\n\t\t\tstart={ start }\n\t\t\treversed={ reversed }\n\t\t\tplaceholder={ placeholder }\n\t\t\tallowedFormats={ adjustedAllowedFormats }\n\t\t\twithoutInteractiveFormatting={ withoutInteractiveFormatting }\n\t\t\tonEnter={ onEnter }\n\t\t\tonDelete={ onDelete }\n\t\t\tonPaste={ onPaste }\n\t\t\t__unstableIsSelected={ isSelected }\n\t\t\t__unstableInputRule={ inputRule }\n\t\t\t__unstableOnEnterFormattedText={ enterFormattedText }\n\t\t\t__unstableOnExitFormattedText={ exitFormattedText }\n\t\t\t__unstableOnCreateUndoLevel={ __unstableMarkLastChangeAsPersistent }\n\t\t\t__unstableMarkAutomaticChange={ __unstableMarkAutomaticChange }\n\t\t\t__unstableDidAutomaticChange={ didAutomaticChange }\n\t\t\t__unstableUndo={ undo }\n\t\t\t__unstableDisableFormats={ disableFormats }\n\t\t\tpreserveWhiteSpace={ preserveWhiteSpace }\n\t\t\tdisabled={ disabled }\n\t\t\tunstableOnFocus={ unstableOnFocus }\n\t\t\t__unstableAllowPrefixTransformations={\n\t\t\t\t__unstableAllowPrefixTransformations\n\t\t\t}\n\t\t\t// Native props.\n\t\t\tblockIsSelected={\n\t\t\t\toriginalIsSelected !== undefined\n\t\t\t\t\t? originalIsSelected\n\t\t\t\t\t: blockIsSelected\n\t\t\t}\n\t\t\tshouldBlurOnUnmount={ shouldBlurOnUnmount }\n\t\t\t__unstableMobileNoFocusOnMount={ __unstableMobileNoFocusOnMount }\n\t\t\tdeleteEnter={ deleteEnter }\n\t\t\tplaceholderTextColor={ placeholderTextColor }\n\t\t\ttextAlign={ textAlign }\n\t\t\tselectionColor={ selectionColor }\n\t\t\ttagsToEliminate={ tagsToEliminate }\n\t\t\tdisableEditingMenu={ disableEditingMenu }\n\t\t\tfontSize={ fontSize }\n\t\t\tfontFamily={ fontFamily }\n\t\t\tfontWeight={ fontWeight }\n\t\t\tfontStyle={ fontStyle }\n\t\t\tminWidth={ minWidth }\n\t\t\tmaxWidth={ maxWidth }\n\t\t\tonBlur={ onBlur }\n\t\t\tdisableSuggestions={ disableSuggestions }\n\t\t\tdisableAutocorrection={ disableAutocorrection }\n\t\t\tcontainerWidth={ containerWidth }\n\t\t\tclearCurrentSelectionOnUnmount={ clearCurrentSelectionOnUnmount }\n\t\t\t// Props to be set on the editable container are destructured on the\n\t\t\t// element itself for web (see below), but passed through rich text\n\t\t\t// for native.\n\t\t\tid={ props.id }\n\t\t\tstyle={ props.style }\n\t\t>\n\t\t\t{ ( {\n\t\t\t\tisSelected: nestedIsSelected,\n\t\t\t\tvalue,\n\t\t\t\tonChange,\n\t\t\t\tonFocus,\n\t\t\t\teditableProps,\n\t\t\t\teditableTagName: TagName,\n\t\t\t} ) => (\n\t\t\t\t<>\n\t\t\t\t\t{ children && children( { value, onChange, onFocus } ) }\n\t\t\t\t\t{ nestedIsSelected && hasFormats && (\n\t\t\t\t\t\t<FormatToolbarContainer\n\t\t\t\t\t\t\tinline={ inlineToolbar }\n\t\t\t\t\t\t\tanchorRef={ fallbackRef.current }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ nestedIsSelected && <RemoveBrowserShortcuts /> }\n\t\t\t\t\t<Autocomplete\n\t\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\t\tcompleters={ autocompleters }\n\t\t\t\t\t\trecord={ value }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tisSelected={ nestedIsSelected }\n\t\t\t\t\t\tcontentRef={ fallbackRef }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { listBoxId, activeId, onKeyDown } ) => (\n\t\t\t\t\t\t\t<TagName\n\t\t\t\t\t\t\t\t{ ...editableProps }\n\t\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\tprops.style\n\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t...props.style,\n\t\t\t\t\t\t\t\t\t\t\t\t...editableProps.style,\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t: editableProps.style\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\tclasses,\n\t\t\t\t\t\t\t\t\tprops.className,\n\t\t\t\t\t\t\t\t\teditableProps.className\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\taria-autocomplete={\n\t\t\t\t\t\t\t\t\tlistBoxId ? 'list' : undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\taria-owns={ listBoxId }\n\t\t\t\t\t\t\t\taria-activedescendant={ activeId }\n\t\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\t\tonKeyDown( event );\n\t\t\t\t\t\t\t\t\teditableProps.onKeyDown( event );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Autocomplete>\n\t\t\t\t\t<EmbedHandlerPicker ref={ embedHandlerPickerRef } />\n\t\t\t\t</>\n\t\t\t) }\n\t\t</RichText>\n\t);\n}\n\n// This export does not actually implement a private API, but was exported\n// under this name for interoperability with the web version of the RichText\n// component.\nexport const PrivateRichText = withDeprecations(\n\tforwardRef( RichTextWrapper )\n);\n\nPrivateRichText.Content = Content;\n\nPrivateRichText.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\nPrivateRichText.Content.defaultProps = {\n\tformat: 'string',\n\tvalue: '',\n};\n\nPrivateRichText.Raw = forwardRef( ( props, ref ) => (\n\t<RichText { ...props } nativeEditorRef={ ref } />\n) );\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/rich-text/README.md\n */\nexport default PrivateRichText;\nexport { RichTextShortcut } from './shortcut';\nexport { RichTextToolbarButton } from './toolbar-button';\nexport { __unstableRichTextInputEvent } from './input-event';\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,7 +4,9 @@ import { createElement } from "react";
|
|
|
4
4
|
*/
|
|
5
5
|
import { forwardRef } from '@wordpress/element';
|
|
6
6
|
import deprecated from '@wordpress/deprecated';
|
|
7
|
-
import { useDispatch } from '@wordpress/data';
|
|
7
|
+
import { useDispatch, useSelect } from '@wordpress/data';
|
|
8
|
+
import { ENTER } from '@wordpress/keycodes';
|
|
9
|
+
import { create, split, toHTMLString } from '@wordpress/rich-text';
|
|
8
10
|
|
|
9
11
|
/**
|
|
10
12
|
* Internal dependencies
|
|
@@ -31,6 +33,10 @@ function RichTextMultiline({
|
|
|
31
33
|
const {
|
|
32
34
|
clientId
|
|
33
35
|
} = useBlockEditContext();
|
|
36
|
+
const {
|
|
37
|
+
getSelectionStart,
|
|
38
|
+
getSelectionEnd
|
|
39
|
+
} = useSelect(blockEditorStore);
|
|
34
40
|
const {
|
|
35
41
|
selectionChange
|
|
36
42
|
} = useDispatch(blockEditorStore);
|
|
@@ -57,8 +63,30 @@ function RichTextMultiline({
|
|
|
57
63
|
_onChange(newValues);
|
|
58
64
|
},
|
|
59
65
|
isSelected: undefined,
|
|
60
|
-
|
|
61
|
-
|
|
66
|
+
onKeyDown: event => {
|
|
67
|
+
if (event.keyCode !== ENTER) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
event.preventDefault();
|
|
71
|
+
const {
|
|
72
|
+
offset: start
|
|
73
|
+
} = getSelectionStart();
|
|
74
|
+
const {
|
|
75
|
+
offset: end
|
|
76
|
+
} = getSelectionEnd();
|
|
77
|
+
|
|
78
|
+
// Cannot split if there is no selection.
|
|
79
|
+
if (typeof start !== 'number' || typeof end !== 'number') {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
const richTextValue = create({
|
|
83
|
+
html: _value
|
|
84
|
+
});
|
|
85
|
+
richTextValue.start = start;
|
|
86
|
+
richTextValue.end = end;
|
|
87
|
+
const array = split(richTextValue).map(v => toHTMLString({
|
|
88
|
+
value: v
|
|
89
|
+
}));
|
|
62
90
|
const newValues = values.slice();
|
|
63
91
|
newValues.splice(index, 1, ...array);
|
|
64
92
|
_onChange(newValues);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","deprecated","useDispatch","RichTextWrapper","store","blockEditorStore","useBlockEditContext","getMultilineTag","RichTextMultiline","children","identifier","tagName","TagName","value","onChange","multiline","props","forwardedRef","since","version","alternative","link","clientId","selectionChange","multilineTagName","padded","values","
|
|
1
|
+
{"version":3,"names":["forwardRef","deprecated","useDispatch","useSelect","ENTER","create","split","toHTMLString","RichTextWrapper","store","blockEditorStore","useBlockEditContext","getMultilineTag","RichTextMultiline","children","identifier","tagName","TagName","value","onChange","multiline","props","forwardedRef","since","version","alternative","link","clientId","getSelectionStart","getSelectionEnd","selectionChange","multilineTagName","padded","values","shift","pop","_onChange","newValues","join","createElement","ref","map","_value","index","key","newValue","slice","isSelected","undefined","onKeyDown","event","keyCode","preventDefault","offset","start","end","richTextValue","html","array","v","splice","onMerge","forward","length"],"sources":["@wordpress/block-editor/src/components/rich-text/multiline.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { ENTER } from '@wordpress/keycodes';\nimport { create, split, toHTMLString } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport { RichTextWrapper } from './';\nimport { store as blockEditorStore } from '../../store';\nimport { useBlockEditContext } from '../block-edit';\nimport { getMultilineTag } from './utils';\n\nfunction RichTextMultiline(\n\t{\n\t\tchildren,\n\t\tidentifier,\n\t\ttagName: TagName = 'div',\n\t\tvalue = '',\n\t\tonChange,\n\t\tmultiline,\n\t\t...props\n\t},\n\tforwardedRef\n) {\n\tdeprecated( 'wp.blockEditor.RichText multiline prop', {\n\t\tsince: '6.1',\n\t\tversion: '6.3',\n\t\talternative: 'nested blocks (InnerBlocks)',\n\t\tlink: 'https://developer.wordpress.org/block-editor/how-to-guides/block-tutorial/nested-blocks-inner-blocks/',\n\t} );\n\n\tconst { clientId } = useBlockEditContext();\n\tconst { getSelectionStart, getSelectionEnd } =\n\t\tuseSelect( blockEditorStore );\n\tconst { selectionChange } = useDispatch( blockEditorStore );\n\n\tconst multilineTagName = getMultilineTag( multiline );\n\tvalue = value || `<${ multilineTagName }></${ multilineTagName }>`;\n\tconst padded = `</${ multilineTagName }>${ value }<${ multilineTagName }>`;\n\tconst values = padded.split(\n\t\t`</${ multilineTagName }><${ multilineTagName }>`\n\t);\n\n\tvalues.shift();\n\tvalues.pop();\n\n\tfunction _onChange( newValues ) {\n\t\tonChange(\n\t\t\t`<${ multilineTagName }>${ newValues.join(\n\t\t\t\t`</${ multilineTagName }><${ multilineTagName }>`\n\t\t\t) }</${ multilineTagName }>`\n\t\t);\n\t}\n\n\treturn (\n\t\t<TagName ref={ forwardedRef }>\n\t\t\t{ values.map( ( _value, index ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<RichTextWrapper\n\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\tidentifier={ `${ identifier }-${ index }` }\n\t\t\t\t\t\ttagName={ multilineTagName }\n\t\t\t\t\t\tvalue={ _value }\n\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\tconst newValues = values.slice();\n\t\t\t\t\t\t\tnewValues[ index ] = newValue;\n\t\t\t\t\t\t\t_onChange( newValues );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisSelected={ undefined }\n\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\tif ( event.keyCode !== ENTER ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t\tconst { offset: start } = getSelectionStart();\n\t\t\t\t\t\t\tconst { offset: end } = getSelectionEnd();\n\n\t\t\t\t\t\t\t// Cannot split if there is no selection.\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\ttypeof start !== 'number' ||\n\t\t\t\t\t\t\t\ttypeof end !== 'number'\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst richTextValue = create( { html: _value } );\n\t\t\t\t\t\t\trichTextValue.start = start;\n\t\t\t\t\t\t\trichTextValue.end = end;\n\n\t\t\t\t\t\t\tconst array = split( richTextValue ).map( ( v ) =>\n\t\t\t\t\t\t\t\ttoHTMLString( { value: v } )\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tconst newValues = values.slice();\n\t\t\t\t\t\t\tnewValues.splice( index, 1, ...array );\n\t\t\t\t\t\t\t_onChange( newValues );\n\t\t\t\t\t\t\tselectionChange(\n\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\t`${ identifier }-${ index + 1 }`,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t0\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonMerge={ ( forward ) => {\n\t\t\t\t\t\t\tconst newValues = values.slice();\n\t\t\t\t\t\t\tlet offset = 0;\n\t\t\t\t\t\t\tif ( forward ) {\n\t\t\t\t\t\t\t\tif ( ! newValues[ index + 1 ] ) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tnewValues.splice(\n\t\t\t\t\t\t\t\t\tindex,\n\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\tnewValues[ index ] + newValues[ index + 1 ]\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\toffset = newValues[ index ].length - 1;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif ( ! newValues[ index - 1 ] ) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tnewValues.splice(\n\t\t\t\t\t\t\t\t\tindex - 1,\n\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\tnewValues[ index - 1 ] + newValues[ index ]\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\toffset = newValues[ index - 1 ].length - 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t_onChange( newValues );\n\t\t\t\t\t\t\tselectionChange(\n\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\t`${ identifier }-${\n\t\t\t\t\t\t\t\t\tindex - ( forward ? 0 : 1 )\n\t\t\t\t\t\t\t\t}`,\n\t\t\t\t\t\t\t\toffset,\n\t\t\t\t\t\t\t\toffset\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</TagName>\n\t);\n}\n\nexport default forwardRef( RichTextMultiline );\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@ import { createElement } from "react";
|
|
|
2
2
|
/**
|
|
3
3
|
* External dependencies
|
|
4
4
|
*/
|
|
5
|
-
import
|
|
5
|
+
import clsx from 'clsx';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* WordPress dependencies
|
|
@@ -36,7 +36,7 @@ export default function SegmentedTextControl({
|
|
|
36
36
|
className
|
|
37
37
|
}) {
|
|
38
38
|
return createElement("fieldset", {
|
|
39
|
-
className:
|
|
39
|
+
className: clsx('block-editor-segmented-text-control', className)
|
|
40
40
|
}, createElement(BaseControl.VisualLabel, {
|
|
41
41
|
as: "legend"
|
|
42
42
|
}, label), createElement("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["clsx","BaseControl","Button","SegmentedTextControl","label","value","options","onChange","className","createElement","VisualLabel","as","map","option","size","key","icon","isPressed","onClick"],"sources":["@wordpress/block-editor/src/components/segmented-text-control/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { BaseControl, Button } from '@wordpress/components';\n\n/**\n * @typedef {Object} Option\n * @property {string} label The label of the option.\n * @property {string} value The value of the option.\n * @property {string} icon The icon of the option.\n */\n\n/**\n * Control to facilitate selecting a text style from a set of options.\n *\n * @param {Object} props Component props.\n * @param {string} props.label A label for the option.\n * @param {string} props.value Currently selected value.\n * @param {Function} props.onChange Callback to handle onChange.\n * @param {Option[]} props.options Array of options to display.\n * @param {string} props.className Additional class name to apply.\n *\n * @return {Element} Element to render.\n */\nexport default function SegmentedTextControl( {\n\tlabel,\n\tvalue,\n\toptions,\n\tonChange,\n\tclassName,\n} ) {\n\treturn (\n\t\t<fieldset\n\t\t\tclassName={ clsx(\n\t\t\t\t'block-editor-segmented-text-control',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t>\n\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t{ label }\n\t\t\t</BaseControl.VisualLabel>\n\t\t\t<div className=\"block-editor-segmented-text-control__buttons\">\n\t\t\t\t{ options.map( ( option ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\tkey={ option.value }\n\t\t\t\t\t\t\ticon={ option.icon }\n\t\t\t\t\t\t\tlabel={ option.label }\n\t\t\t\t\t\t\tisPressed={ option.value === value }\n\t\t\t\t\t\t\tonClick={ () => onChange( option.value ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</div>\n\t\t</fieldset>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SAASC,WAAW,EAAEC,MAAM,QAAQ,uBAAuB;;AAE3D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,oBAAoBA,CAAE;EAC7CC,KAAK;EACLC,KAAK;EACLC,OAAO;EACPC,QAAQ;EACRC;AACD,CAAC,EAAG;EACH,OACCC,aAAA;IACCD,SAAS,EAAGR,IAAI,CACf,qCAAqC,EACrCQ,SACD;EAAG,GAEHC,aAAA,CAACR,WAAW,CAACS,WAAW;IAACC,EAAE,EAAC;EAAQ,GACjCP,KACsB,CAAC,EAC1BK,aAAA;IAAKD,SAAS,EAAC;EAA8C,GAC1DF,OAAO,CAACM,GAAG,CAAIC,MAAM,IAAM;IAC5B,OACCJ,aAAA,CAACP,MAAM;MACNY,IAAI,EAAC,SAAS;MACdC,GAAG,EAAGF,MAAM,CAACR,KAAO;MACpBW,IAAI,EAAGH,MAAM,CAACG,IAAM;MACpBZ,KAAK,EAAGS,MAAM,CAACT,KAAO;MACtBa,SAAS,EAAGJ,MAAM,CAACR,KAAK,KAAKA,KAAO;MACpCa,OAAO,EAAGA,CAAA,KAAMX,QAAQ,CAAEM,MAAM,CAACR,KAAM;IAAG,CAC1C,CAAC;EAEJ,CAAE,CACE,CACI,CAAC;AAEb","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@ import { createElement } from "react";
|
|
|
2
2
|
/**
|
|
3
3
|
* External dependencies
|
|
4
4
|
*/
|
|
5
|
-
import
|
|
5
|
+
import clsx from 'clsx';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* WordPress dependencies
|
|
@@ -58,7 +58,7 @@ export default function TextAlignmentControl({
|
|
|
58
58
|
return createElement(SegmentedTextControl, {
|
|
59
59
|
label: __('Text alignment'),
|
|
60
60
|
options: validOptions,
|
|
61
|
-
className:
|
|
61
|
+
className: clsx('block-editor-text-alignment-control', className),
|
|
62
62
|
value: value,
|
|
63
63
|
onChange: newValue => {
|
|
64
64
|
onChange(newValue === value ? undefined : newValue);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["clsx","__","alignLeft","alignCenter","alignRight","alignJustify","useMemo","SegmentedTextControl","TEXT_ALIGNMENT_OPTIONS","label","value","icon","DEFAULT_OPTIONS","TextAlignmentControl","className","onChange","options","validOptions","filter","option","includes","length","createElement","newValue","undefined"],"sources":["@wordpress/block-editor/src/components/text-alignment-control/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\talignLeft,\n\talignCenter,\n\talignRight,\n\talignJustify,\n} from '@wordpress/icons';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport SegmentedTextControl from '../segmented-text-control';\n\nconst TEXT_ALIGNMENT_OPTIONS = [\n\t{\n\t\tlabel: __( 'Align text left' ),\n\t\tvalue: 'left',\n\t\ticon: alignLeft,\n\t},\n\t{\n\t\tlabel: __( 'Align text center' ),\n\t\tvalue: 'center',\n\t\ticon: alignCenter,\n\t},\n\t{\n\t\tlabel: __( 'Align text right' ),\n\t\tvalue: 'right',\n\t\ticon: alignRight,\n\t},\n\t{\n\t\tlabel: __( 'Justify text' ),\n\t\tvalue: 'justify',\n\t\ticon: alignJustify,\n\t},\n];\n\nconst DEFAULT_OPTIONS = [ 'left', 'center', 'right' ];\n\n/**\n * Control to facilitate text alignment selections.\n *\n * @param {Object} props Component props.\n * @param {string} props.className Class name to add to the control.\n * @param {string} props.value Currently selected text alignment.\n * @param {Function} props.onChange Handles change in text alignment selection.\n * @param {string[]} props.options Array of text alignment options to display.\n *\n * @return {Element} Text alignment control.\n */\nexport default function TextAlignmentControl( {\n\tclassName,\n\tvalue,\n\tonChange,\n\toptions = DEFAULT_OPTIONS,\n} ) {\n\tconst validOptions = useMemo(\n\t\t() =>\n\t\t\tTEXT_ALIGNMENT_OPTIONS.filter( ( option ) =>\n\t\t\t\toptions.includes( option.value )\n\t\t\t),\n\t\t[ options ]\n\t);\n\n\tif ( ! validOptions.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<SegmentedTextControl\n\t\t\tlabel={ __( 'Text alignment' ) }\n\t\t\toptions={ validOptions }\n\t\t\tclassName={ clsx(\n\t\t\t\t'block-editor-text-alignment-control',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\tvalue={ value }\n\t\t\tonChange={ ( newValue ) => {\n\t\t\t\tonChange( newValue === value ? undefined : newValue );\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SACCC,SAAS,EACTC,WAAW,EACXC,UAAU,EACVC,YAAY,QACN,kBAAkB;AACzB,SAASC,OAAO,QAAQ,oBAAoB;;AAE5C;AACA;AACA;AACA,OAAOC,oBAAoB,MAAM,2BAA2B;AAE5D,MAAMC,sBAAsB,GAAG,CAC9B;EACCC,KAAK,EAAER,EAAE,CAAE,iBAAkB,CAAC;EAC9BS,KAAK,EAAE,MAAM;EACbC,IAAI,EAAET;AACP,CAAC,EACD;EACCO,KAAK,EAAER,EAAE,CAAE,mBAAoB,CAAC;EAChCS,KAAK,EAAE,QAAQ;EACfC,IAAI,EAAER;AACP,CAAC,EACD;EACCM,KAAK,EAAER,EAAE,CAAE,kBAAmB,CAAC;EAC/BS,KAAK,EAAE,OAAO;EACdC,IAAI,EAAEP;AACP,CAAC,EACD;EACCK,KAAK,EAAER,EAAE,CAAE,cAAe,CAAC;EAC3BS,KAAK,EAAE,SAAS;EAChBC,IAAI,EAAEN;AACP,CAAC,CACD;AAED,MAAMO,eAAe,GAAG,CAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAE;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,oBAAoBA,CAAE;EAC7CC,SAAS;EACTJ,KAAK;EACLK,QAAQ;EACRC,OAAO,GAAGJ;AACX,CAAC,EAAG;EACH,MAAMK,YAAY,GAAGX,OAAO,CAC3B,MACCE,sBAAsB,CAACU,MAAM,CAAIC,MAAM,IACtCH,OAAO,CAACI,QAAQ,CAAED,MAAM,CAACT,KAAM,CAChC,CAAC,EACF,CAAEM,OAAO,CACV,CAAC;EAED,IAAK,CAAEC,YAAY,CAACI,MAAM,EAAG;IAC5B,OAAO,IAAI;EACZ;EAEA,OACCC,aAAA,CAACf,oBAAoB;IACpBE,KAAK,EAAGR,EAAE,CAAE,gBAAiB,CAAG;IAChCe,OAAO,EAAGC,YAAc;IACxBH,SAAS,EAAGd,IAAI,CACf,qCAAqC,EACrCc,SACD,CAAG;IACHJ,KAAK,EAAGA,KAAO;IACfK,QAAQ,EAAKQ,QAAQ,IAAM;MAC1BR,QAAQ,CAAEQ,QAAQ,KAAKb,KAAK,GAAGc,SAAS,GAAGD,QAAS,CAAC;IACtD;EAAG,CACH,CAAC;AAEJ","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@ import { createElement } from "react";
|
|
|
2
2
|
/**
|
|
3
3
|
* External dependencies
|
|
4
4
|
*/
|
|
5
|
-
import
|
|
5
|
+
import clsx from 'clsx';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* WordPress dependencies
|
|
@@ -46,7 +46,7 @@ export default function TextDecorationControl({
|
|
|
46
46
|
return createElement(SegmentedTextControl, {
|
|
47
47
|
label: __('Decoration'),
|
|
48
48
|
options: TEXT_DECORATIONS,
|
|
49
|
-
className:
|
|
49
|
+
className: clsx('block-editor-text-decoration-control', className),
|
|
50
50
|
value: value,
|
|
51
51
|
onChange: newValue => {
|
|
52
52
|
onChange(newValue === value ? undefined : newValue);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["clsx","reset","formatStrikethrough","formatUnderline","__","SegmentedTextControl","TEXT_DECORATIONS","label","value","icon","TextDecorationControl","onChange","className","createElement","options","newValue","undefined"],"sources":["@wordpress/block-editor/src/components/text-decoration-control/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { reset, formatStrikethrough, formatUnderline } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport SegmentedTextControl from '../segmented-text-control';\n\nconst TEXT_DECORATIONS = [\n\t{\n\t\tlabel: __( 'None' ),\n\t\tvalue: 'none',\n\t\ticon: reset,\n\t},\n\t{\n\t\tlabel: __( 'Underline' ),\n\t\tvalue: 'underline',\n\t\ticon: formatUnderline,\n\t},\n\t{\n\t\tlabel: __( 'Strikethrough' ),\n\t\tvalue: 'line-through',\n\t\ticon: formatStrikethrough,\n\t},\n];\n\n/**\n * Control to facilitate text decoration selections.\n *\n * @param {Object} props Component props.\n * @param {string} props.value Currently selected text decoration.\n * @param {Function} props.onChange Handles change in text decoration selection.\n * @param {string} props.className Additional class name to apply.\n *\n * @return {Element} Text decoration control.\n */\nexport default function TextDecorationControl( {\n\tvalue,\n\tonChange,\n\tclassName,\n} ) {\n\treturn (\n\t\t<SegmentedTextControl\n\t\t\tlabel={ __( 'Decoration' ) }\n\t\t\toptions={ TEXT_DECORATIONS }\n\t\t\tclassName={ clsx(\n\t\t\t\t'block-editor-text-decoration-control',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\tvalue={ value }\n\t\t\tonChange={ ( newValue ) => {\n\t\t\t\tonChange( newValue === value ? undefined : newValue );\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SAASC,KAAK,EAAEC,mBAAmB,EAAEC,eAAe,QAAQ,kBAAkB;AAC9E,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,OAAOC,oBAAoB,MAAM,2BAA2B;AAE5D,MAAMC,gBAAgB,GAAG,CACxB;EACCC,KAAK,EAAEH,EAAE,CAAE,MAAO,CAAC;EACnBI,KAAK,EAAE,MAAM;EACbC,IAAI,EAAER;AACP,CAAC,EACD;EACCM,KAAK,EAAEH,EAAE,CAAE,WAAY,CAAC;EACxBI,KAAK,EAAE,WAAW;EAClBC,IAAI,EAAEN;AACP,CAAC,EACD;EACCI,KAAK,EAAEH,EAAE,CAAE,eAAgB,CAAC;EAC5BI,KAAK,EAAE,cAAc;EACrBC,IAAI,EAAEP;AACP,CAAC,CACD;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASQ,qBAAqBA,CAAE;EAC9CF,KAAK;EACLG,QAAQ;EACRC;AACD,CAAC,EAAG;EACH,OACCC,aAAA,CAACR,oBAAoB;IACpBE,KAAK,EAAGH,EAAE,CAAE,YAAa,CAAG;IAC5BU,OAAO,EAAGR,gBAAkB;IAC5BM,SAAS,EAAGZ,IAAI,CACf,sCAAsC,EACtCY,SACD,CAAG;IACHJ,KAAK,EAAGA,KAAO;IACfG,QAAQ,EAAKI,QAAQ,IAAM;MAC1BJ,QAAQ,CAAEI,QAAQ,KAAKP,KAAK,GAAGQ,SAAS,GAAGD,QAAS,CAAC;IACtD;EAAG,CACH,CAAC;AAEJ","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@ import { createElement } from "react";
|
|
|
2
2
|
/**
|
|
3
3
|
* External dependencies
|
|
4
4
|
*/
|
|
5
|
-
import
|
|
5
|
+
import clsx from 'clsx';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* WordPress dependencies
|
|
@@ -50,7 +50,7 @@ export default function TextTransformControl({
|
|
|
50
50
|
return createElement(SegmentedTextControl, {
|
|
51
51
|
label: __('Letter case'),
|
|
52
52
|
options: TEXT_TRANSFORMS,
|
|
53
|
-
className:
|
|
53
|
+
className: clsx('block-editor-text-transform-control', className),
|
|
54
54
|
value: value,
|
|
55
55
|
onChange: newValue => {
|
|
56
56
|
onChange(newValue === value ? undefined : newValue);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["clsx","__","reset","formatCapitalize","formatLowercase","formatUppercase","SegmentedTextControl","TEXT_TRANSFORMS","label","value","icon","TextTransformControl","className","onChange","createElement","options","newValue","undefined"],"sources":["@wordpress/block-editor/src/components/text-transform-control/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\treset,\n\tformatCapitalize,\n\tformatLowercase,\n\tformatUppercase,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport SegmentedTextControl from '../segmented-text-control';\n\nconst TEXT_TRANSFORMS = [\n\t{\n\t\tlabel: __( 'None' ),\n\t\tvalue: 'none',\n\t\ticon: reset,\n\t},\n\t{\n\t\tlabel: __( 'Uppercase' ),\n\t\tvalue: 'uppercase',\n\t\ticon: formatUppercase,\n\t},\n\t{\n\t\tlabel: __( 'Lowercase' ),\n\t\tvalue: 'lowercase',\n\t\ticon: formatLowercase,\n\t},\n\t{\n\t\tlabel: __( 'Capitalize' ),\n\t\tvalue: 'capitalize',\n\t\ticon: formatCapitalize,\n\t},\n];\n\n/**\n * Control to facilitate text transform selections.\n *\n * @param {Object} props Component props.\n * @param {string} props.className Class name to add to the control.\n * @param {string} props.value Currently selected text transform.\n * @param {Function} props.onChange Handles change in text transform selection.\n *\n * @return {Element} Text transform control.\n */\nexport default function TextTransformControl( { className, value, onChange } ) {\n\treturn (\n\t\t<SegmentedTextControl\n\t\t\tlabel={ __( 'Letter case' ) }\n\t\t\toptions={ TEXT_TRANSFORMS }\n\t\t\tclassName={ clsx(\n\t\t\t\t'block-editor-text-transform-control',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\tvalue={ value }\n\t\t\tonChange={ ( newValue ) => {\n\t\t\t\tonChange( newValue === value ? undefined : newValue );\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SACCC,KAAK,EACLC,gBAAgB,EAChBC,eAAe,EACfC,eAAe,QACT,kBAAkB;;AAEzB;AACA;AACA;AACA,OAAOC,oBAAoB,MAAM,2BAA2B;AAE5D,MAAMC,eAAe,GAAG,CACvB;EACCC,KAAK,EAAEP,EAAE,CAAE,MAAO,CAAC;EACnBQ,KAAK,EAAE,MAAM;EACbC,IAAI,EAAER;AACP,CAAC,EACD;EACCM,KAAK,EAAEP,EAAE,CAAE,WAAY,CAAC;EACxBQ,KAAK,EAAE,WAAW;EAClBC,IAAI,EAAEL;AACP,CAAC,EACD;EACCG,KAAK,EAAEP,EAAE,CAAE,WAAY,CAAC;EACxBQ,KAAK,EAAE,WAAW;EAClBC,IAAI,EAAEN;AACP,CAAC,EACD;EACCI,KAAK,EAAEP,EAAE,CAAE,YAAa,CAAC;EACzBQ,KAAK,EAAE,YAAY;EACnBC,IAAI,EAAEP;AACP,CAAC,CACD;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASQ,oBAAoBA,CAAE;EAAEC,SAAS;EAAEH,KAAK;EAAEI;AAAS,CAAC,EAAG;EAC9E,OACCC,aAAA,CAACR,oBAAoB;IACpBE,KAAK,EAAGP,EAAE,CAAE,aAAc,CAAG;IAC7Bc,OAAO,EAAGR,eAAiB;IAC3BK,SAAS,EAAGZ,IAAI,CACf,qCAAqC,EACrCY,SACD,CAAG;IACHH,KAAK,EAAGA,KAAO;IACfI,QAAQ,EAAKG,QAAQ,IAAM;MAC1BH,QAAQ,CAAEG,QAAQ,KAAKP,KAAK,GAAGQ,SAAS,GAAGD,QAAS,CAAC;IACtD;EAAG,CACH,CAAC;AAEJ","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@ import { createElement, Fragment } from "react";
|
|
|
2
2
|
/**
|
|
3
3
|
* External dependencies
|
|
4
4
|
*/
|
|
5
|
-
import
|
|
5
|
+
import clsx from 'clsx';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* WordPress dependencies
|
|
@@ -364,7 +364,7 @@ class URLInput extends Component {
|
|
|
364
364
|
id: inputId,
|
|
365
365
|
// Passes attribute to label for the for attribute
|
|
366
366
|
label,
|
|
367
|
-
className:
|
|
367
|
+
className: clsx('block-editor-url-input', className, {
|
|
368
368
|
'is-full-width': isFullWidth
|
|
369
369
|
}),
|
|
370
370
|
hideLabelFromVision
|
|
@@ -453,11 +453,11 @@ class URLInput extends Component {
|
|
|
453
453
|
focusOnMount: false
|
|
454
454
|
}, createElement("div", {
|
|
455
455
|
...suggestionsListProps,
|
|
456
|
-
className:
|
|
456
|
+
className: clsx('block-editor-url-input__suggestions', `${className}__suggestions`)
|
|
457
457
|
}, suggestions.map((suggestion, index) => createElement(Button, {
|
|
458
458
|
...buildSuggestionItemProps(suggestion, index),
|
|
459
459
|
key: suggestion.id,
|
|
460
|
-
className:
|
|
460
|
+
className: clsx('block-editor-url-input__suggestion', {
|
|
461
461
|
'is-selected': index === selectedSuggestion
|
|
462
462
|
}),
|
|
463
463
|
onClick: () => this.handleOnClick(suggestion)
|