@wordpress/block-editor 12.24.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 +11 -3
- package/README.md +7 -1
- package/build/components/alignment-control/ui.js +3 -1
- package/build/components/alignment-control/ui.js.map +1 -1
- 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-list/block.js +4 -13
- 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 +6 -5
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list/index.native.js +1 -9
- package/build/components/block-list/index.native.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +11 -8
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-refs.js +17 -46
- package/build/components/block-list/use-block-props/use-block-refs.js.map +1 -1
- package/build/components/block-list/use-block-props/use-is-hovered.js +10 -14
- package/build/components/block-list/use-block-props/use-is-hovered.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-mover/index.native.js +3 -1
- package/build/components/block-mover/index.native.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 -30
- 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-switcher/pattern-transformations-menu.js +3 -1
- package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build/components/block-switcher/use-transformed-patterns.js +6 -2
- package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
- package/build/components/block-switcher/utils.js +15 -5
- package/build/components/block-switcher/utils.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-toolbar/use-has-block-toolbar.js +14 -9
- package/build/components/block-toolbar/use-has-block-toolbar.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 +23 -2
- 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/use-show-block-tools.js +2 -5
- package/build/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserters.js +68 -20
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build/components/block-variation-picker/index.js +5 -4
- package/build/components/block-variation-picker/index.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +3 -1
- package/build/components/block-variation-transforms/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/floating-toolbar/index.native.js +9 -5
- package/build/components/floating-toolbar/index.native.js.map +1 -1
- package/build/components/global-styles/background-panel.js +4 -4
- package/build/components/global-styles/background-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.js +6 -4
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +20 -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/hooks.js +3 -2
- package/build/components/global-styles/hooks.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/typography-panel.js +23 -23
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +149 -132
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +45 -0
- package/build/components/global-styles/utils.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 +25 -10
- 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 +20 -30
- 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 +9 -3
- package/build/components/inserter/block-types-tab.js.map +1 -1
- package/build/components/inserter/category-tabs/index.js +56 -0
- package/build/components/inserter/category-tabs/index.js.map +1 -0
- 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/index.js +2 -2
- package/build/components/inserter/media-tab/index.js.map +1 -1
- package/build/components/inserter/media-tab/media-panel.js +0 -25
- package/build/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build/components/inserter/media-tab/media-preview.js +15 -5
- package/build/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build/components/inserter/media-tab/media-tab.js +15 -29
- package/build/components/inserter/media-tab/media-tab.js.map +1 -1
- package/build/components/inserter/menu.js +115 -109
- 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 +23 -11
- 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/line-height-control/index.js +6 -2
- package/build/components/line-height-control/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-item.js +9 -3
- package/build/components/link-control/search-item.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 +15 -172
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +196 -21
- 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 +3 -3
- 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/list-view/use-list-view-drop-zone.js +1 -1
- package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build/components/list-view/utils.js +3 -1
- package/build/components/list-view/utils.js.map +1 -1
- package/build/components/media-placeholder/index.js +7 -7
- 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/navigable-toolbar/index.js +3 -1
- package/build/components/navigable-toolbar/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/block-refs-provider.js +3 -4
- package/build/components/provider/block-refs-provider.js.map +1 -1
- package/build/components/provider/use-block-sync.js +10 -1
- 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/before-input-rules.js +93 -0
- package/build/components/rich-text/event-listeners/before-input-rules.js.map +1 -0
- package/build/components/rich-text/event-listeners/delete.js +58 -0
- package/build/components/rich-text/event-listeners/delete.js.map +1 -0
- package/build/components/rich-text/event-listeners/enter.js +89 -0
- package/build/components/rich-text/event-listeners/enter.js.map +1 -0
- package/build/components/rich-text/event-listeners/firefox-compat.js +36 -0
- package/build/components/rich-text/event-listeners/firefox-compat.js.map +1 -0
- package/build/components/rich-text/event-listeners/index.js +44 -0
- package/build/components/rich-text/event-listeners/index.js.map +1 -0
- package/build/components/rich-text/event-listeners/input-events.js +22 -0
- package/build/components/rich-text/event-listeners/input-events.js.map +1 -0
- package/build/components/rich-text/event-listeners/input-rules.js +135 -0
- package/build/components/rich-text/event-listeners/input-rules.js.map +1 -0
- package/build/components/rich-text/event-listeners/insert-replacement-text.js +33 -0
- package/build/components/rich-text/event-listeners/insert-replacement-text.js.map +1 -0
- package/build/components/rich-text/event-listeners/paste-handler.js +126 -0
- package/build/components/rich-text/event-listeners/paste-handler.js.map +1 -0
- package/build/components/rich-text/event-listeners/remove-browser-shortcuts.js +27 -0
- package/build/components/rich-text/event-listeners/remove-browser-shortcuts.js.map +1 -0
- package/build/components/rich-text/event-listeners/shortcuts.js +22 -0
- package/build/components/rich-text/event-listeners/shortcuts.js.map +1 -0
- package/build/components/rich-text/event-listeners/undo-automatic-change.js +51 -0
- package/build/components/rich-text/event-listeners/undo-automatic-change.js.map +1 -0
- 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 +20 -33
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +15 -5
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/multiline.js +36 -4
- package/build/components/rich-text/multiline.js.map +1 -1
- package/build/components/rich-text/native/index.native.js +12 -0
- package/build/components/rich-text/native/index.native.js.map +1 -1
- package/build/components/rich-text/use-format-types.js +8 -4
- package/build/components/rich-text/use-format-types.js.map +1 -1
- package/build/components/segmented-text-control/index.js +62 -0
- package/build/components/segmented-text-control/index.js.map +1 -0
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +16 -2
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build/components/text-alignment-control/index.js +76 -0
- package/build/components/text-alignment-control/index.js.map +1 -0
- package/build/components/text-decoration-control/index.js +22 -26
- package/build/components/text-decoration-control/index.js.map +1 -1
- package/build/components/text-transform-control/index.js +19 -23
- 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/use-block-display-information/index.js +9 -3
- package/build/components/use-block-display-information/index.js.map +1 -1
- package/build/components/use-on-block-drop/index.js +3 -1
- package/build/components/use-on-block-drop/index.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-drag-selection.js +3 -1
- package/build/components/writing-flow/use-drag-selection.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 +9 -2
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/components/writing-mode-control/index.js +17 -21
- 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/duotone.js +3 -1
- package/build/hooks/duotone.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 +13 -8
- 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 +8 -3
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +143 -25
- 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 +33 -6
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +11 -8
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +25 -8
- package/build/store/selectors.js.map +1 -1
- package/build/utils/object.js +17 -0
- package/build/utils/object.js.map +1 -1
- package/build/utils/order-inserter-block-items.js +6 -2
- package/build/utils/order-inserter-block-items.js.map +1 -1
- package/build/utils/pasting.js +6 -2
- package/build/utils/pasting.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/alignment-control/ui.js +3 -1
- package/build-module/components/alignment-control/ui.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-list/block.js +4 -13
- 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 +6 -5
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list/index.native.js +1 -9
- package/build-module/components/block-list/index.native.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +11 -8
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-block-refs.js +19 -48
- package/build-module/components/block-list/use-block-props/use-block-refs.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-is-hovered.js +10 -14
- package/build-module/components/block-list/use-block-props/use-is-hovered.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-mover/index.native.js +3 -1
- package/build-module/components/block-mover/index.native.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 +9 -31
- 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-switcher/pattern-transformations-menu.js +3 -1
- package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build-module/components/block-switcher/use-transformed-patterns.js +6 -2
- package/build-module/components/block-switcher/use-transformed-patterns.js.map +1 -1
- package/build-module/components/block-switcher/utils.js +15 -5
- package/build-module/components/block-switcher/utils.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-toolbar/use-has-block-toolbar.js +14 -9
- package/build-module/components/block-toolbar/use-has-block-toolbar.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 +23 -2
- 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/use-show-block-tools.js +2 -5
- package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-mode-inserters.js +69 -21
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build-module/components/block-variation-picker/index.js +5 -4
- package/build-module/components/block-variation-picker/index.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +3 -1
- package/build-module/components/block-variation-transforms/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/floating-toolbar/index.native.js +9 -5
- package/build-module/components/floating-toolbar/index.native.js.map +1 -1
- package/build-module/components/global-styles/background-panel.js +4 -4
- package/build-module/components/global-styles/background-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +6 -4
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +21 -5
- 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/hooks.js +3 -2
- package/build-module/components/global-styles/hooks.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/typography-panel.js +24 -24
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +149 -132
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +44 -0
- package/build-module/components/global-styles/utils.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 +25 -10
- 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 +21 -31
- 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 +10 -4
- package/build-module/components/inserter/block-types-tab.js.map +1 -1
- package/build-module/components/inserter/category-tabs/index.js +49 -0
- package/build-module/components/inserter/category-tabs/index.js.map +1 -0
- 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/index.js +1 -1
- package/build-module/components/inserter/media-tab/index.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-panel.js +0 -24
- package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-preview.js +15 -5
- package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-tab.js +17 -31
- package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
- package/build-module/components/inserter/menu.js +117 -111
- 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 +24 -12
- 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/line-height-control/index.js +6 -2
- package/build-module/components/line-height-control/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-item.js +9 -3
- package/build-module/components/link-control/search-item.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 +17 -174
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +198 -23
- 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 +3 -3
- 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/list-view/use-list-view-drop-zone.js +1 -1
- package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build-module/components/list-view/utils.js +3 -1
- package/build-module/components/list-view/utils.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +7 -7
- 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/navigable-toolbar/index.js +3 -1
- package/build-module/components/navigable-toolbar/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/block-refs-provider.js +3 -4
- package/build-module/components/provider/block-refs-provider.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +10 -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/before-input-rules.js +86 -0
- package/build-module/components/rich-text/event-listeners/before-input-rules.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/delete.js +51 -0
- package/build-module/components/rich-text/event-listeners/delete.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/enter.js +82 -0
- package/build-module/components/rich-text/event-listeners/enter.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/firefox-compat.js +29 -0
- package/build-module/components/rich-text/event-listeners/firefox-compat.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/index.js +36 -0
- package/build-module/components/rich-text/event-listeners/index.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/input-events.js +15 -0
- package/build-module/components/rich-text/event-listeners/input-events.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/input-rules.js +127 -0
- package/build-module/components/rich-text/event-listeners/input-rules.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/insert-replacement-text.js +27 -0
- package/build-module/components/rich-text/event-listeners/insert-replacement-text.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/paste-handler.js +122 -0
- package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.js +21 -0
- package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/shortcuts.js +15 -0
- package/build-module/components/rich-text/event-listeners/shortcuts.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/undo-automatic-change.js +45 -0
- package/build-module/components/rich-text/event-listeners/undo-automatic-change.js.map +1 -0
- 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 +21 -34
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +15 -5
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/multiline.js +37 -5
- package/build-module/components/rich-text/multiline.js.map +1 -1
- package/build-module/components/rich-text/native/index.native.js +12 -0
- package/build-module/components/rich-text/native/index.native.js.map +1 -1
- package/build-module/components/rich-text/use-format-types.js +8 -4
- package/build-module/components/rich-text/use-format-types.js.map +1 -1
- package/build-module/components/segmented-text-control/index.js +55 -0
- package/build-module/components/segmented-text-control/index.js.map +1 -0
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +16 -2
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build-module/components/text-alignment-control/index.js +68 -0
- package/build-module/components/text-alignment-control/index.js.map +1 -0
- package/build-module/components/text-decoration-control/index.js +22 -26
- package/build-module/components/text-decoration-control/index.js.map +1 -1
- package/build-module/components/text-transform-control/index.js +19 -23
- 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/use-block-display-information/index.js +9 -3
- package/build-module/components/use-block-display-information/index.js.map +1 -1
- package/build-module/components/use-on-block-drop/index.js +3 -1
- package/build-module/components/use-on-block-drop/index.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-drag-selection.js +3 -1
- package/build-module/components/writing-flow/use-drag-selection.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 +9 -2
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/components/writing-mode-control/index.js +17 -21
- 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/duotone.js +3 -1
- package/build-module/hooks/duotone.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 +13 -8
- 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 +9 -4
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +145 -27
- 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 +32 -5
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +11 -8
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +25 -8
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/object.js +16 -0
- package/build-module/utils/object.js.map +1 -1
- package/build-module/utils/order-inserter-block-items.js +6 -2
- package/build-module/utils/order-inserter-block-items.js.map +1 -1
- package/build-module/utils/pasting.js +6 -2
- package/build-module/utils/pasting.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 +124 -158
- package/build-style/content.css +124 -158
- package/build-style/style-rtl.css +114 -203
- package/build-style/style.css +114 -203
- 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/alignment-control/ui.js +3 -1
- package/src/components/block-actions/index.js +5 -1
- package/src/components/block-alignment-control/ui.js +2 -2
- package/src/components/block-bindings-toolbar-indicator/style.scss +1 -4
- package/src/components/block-canvas/style.scss +1 -3
- 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-edit/edit.js +2 -2
- package/src/components/block-icon/index.js +2 -2
- package/src/components/block-list/block.js +6 -17
- package/src/components/block-list/block.native.js +2 -2
- package/src/components/block-list/content.scss +53 -72
- package/src/components/block-list/index.js +6 -6
- package/src/components/block-list/index.native.js +1 -6
- package/src/components/block-list/use-block-props/index.js +16 -6
- package/src/components/block-list/use-block-props/use-block-refs.js +17 -57
- package/src/components/block-list/use-block-props/use-is-hovered.js +11 -16
- 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-mover/index.native.js +3 -1
- package/src/components/block-patterns-list/index.js +29 -4
- package/src/components/block-patterns-list/style.scss +1 -3
- 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-preview/style.scss +13 -15
- package/src/components/block-settings-menu/block-settings-dropdown.js +15 -57
- package/src/components/block-settings-menu-controls/index.js +25 -16
- package/src/components/block-styles/index.js +2 -2
- package/src/components/block-switcher/pattern-transformations-menu.js +3 -1
- package/src/components/block-switcher/use-transformed-patterns.js +6 -2
- package/src/components/block-switcher/utils.js +14 -5
- package/src/components/block-toolbar/index.js +3 -3
- package/src/components/block-toolbar/style.scss +8 -11
- package/src/components/block-toolbar/use-has-block-toolbar.js +21 -16
- 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 +27 -4
- package/src/components/block-tools/insertion-point.js +4 -4
- package/src/components/block-tools/style.scss +8 -0
- package/src/components/block-tools/use-show-block-tools.js +36 -48
- package/src/components/block-tools/zoom-out-mode-inserters.js +74 -18
- package/src/components/block-variation-picker/content.scss +22 -72
- package/src/components/block-variation-picker/index.js +5 -4
- package/src/components/block-variation-transforms/index.js +3 -1
- 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/floating-toolbar/index.native.js +5 -2
- package/src/components/global-styles/background-panel.js +4 -6
- package/src/components/global-styles/color-panel.js +6 -4
- package/src/components/global-styles/dimensions-panel.js +22 -5
- package/src/components/global-styles/filters-panel.js +2 -2
- package/src/components/global-styles/hooks.js +2 -0
- 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/test/utils.js +21 -0
- package/src/components/global-styles/typography-panel.js +27 -23
- package/src/components/global-styles/use-global-styles-output.js +211 -187
- package/src/components/global-styles/utils.js +55 -0
- 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 +24 -9
- package/src/components/inserter/block-patterns-explorer/pattern-list.js +2 -1
- package/src/components/inserter/block-patterns-tab/index.js +30 -64
- package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +2 -1
- package/src/components/inserter/block-types-tab.js +12 -9
- package/src/components/inserter/category-tabs/index.js +74 -0
- 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/index.js +1 -1
- package/src/components/inserter/media-tab/media-panel.js +0 -22
- package/src/components/inserter/media-tab/media-preview.js +17 -9
- package/src/components/inserter/media-tab/media-tab.js +44 -83
- package/src/components/inserter/menu.js +168 -140
- package/src/components/inserter/quick-inserter.js +2 -2
- package/src/components/inserter/style.scss +96 -178
- package/src/components/inserter/tabs.js +33 -27
- 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/index.js +6 -2
- 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-item.js +9 -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 +85 -267
- package/src/components/list-view/block.js +240 -26
- package/src/components/list-view/drop-indicator.js +3 -3
- package/src/components/list-view/index.js +3 -3
- package/src/components/list-view/leaf.js +2 -5
- package/src/components/list-view/style.scss +20 -28
- package/src/components/list-view/use-list-view-drop-zone.js +1 -1
- package/src/components/list-view/utils.js +3 -1
- package/src/components/media-placeholder/content.scss +0 -11
- package/src/components/media-placeholder/index.js +7 -7
- package/src/components/media-replace-flow/index.js +2 -2
- package/src/components/navigable-toolbar/index.js +3 -1
- package/src/components/plain-text/index.js +2 -2
- package/src/components/provider/block-refs-provider.js +3 -8
- package/src/components/provider/test/use-block-sync.js +7 -0
- package/src/components/provider/use-block-sync.js +10 -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/before-input-rules.js +92 -0
- package/src/components/rich-text/event-listeners/delete.js +53 -0
- package/src/components/rich-text/event-listeners/enter.js +84 -0
- package/src/components/rich-text/event-listeners/firefox-compat.js +31 -0
- package/src/components/rich-text/event-listeners/index.js +56 -0
- package/src/components/rich-text/event-listeners/input-events.js +13 -0
- package/src/components/rich-text/event-listeners/input-rules.js +146 -0
- package/src/components/rich-text/event-listeners/insert-replacement-text.js +28 -0
- package/src/components/rich-text/event-listeners/paste-handler.js +132 -0
- package/src/components/rich-text/event-listeners/remove-browser-shortcuts.js +24 -0
- package/src/components/rich-text/event-listeners/shortcuts.js +13 -0
- package/src/components/rich-text/event-listeners/undo-automatic-change.js +45 -0
- package/src/components/rich-text/format-toolbar/index.js +2 -2
- package/src/components/rich-text/index.js +17 -37
- package/src/components/rich-text/index.native.js +13 -2
- package/src/components/rich-text/multiline.js +37 -5
- package/src/components/rich-text/native/index.native.js +11 -0
- package/src/components/rich-text/use-format-types.js +6 -2
- package/src/components/segmented-text-control/index.js +63 -0
- package/src/components/{writing-mode-control → segmented-text-control}/style.scss +2 -5
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +16 -1
- package/src/components/text-alignment-control/index.js +91 -0
- package/src/components/text-alignment-control/stories/index.story.js +39 -0
- package/src/components/text-decoration-control/index.js +22 -35
- package/src/components/text-transform-control/index.js +19 -32
- 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/use-block-display-information/index.js +9 -3
- package/src/components/use-on-block-drop/index.js +3 -1
- 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-drag-selection.js +3 -1
- package/src/components/writing-flow/use-input.js +75 -1
- package/src/components/writing-flow/use-tab-nav.js +13 -2
- package/src/components/writing-mode-control/index.js +17 -33
- 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/duotone.js +3 -1
- 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 +18 -4
- package/src/layouts/grid.js +3 -7
- package/src/private-apis.js +8 -2
- package/src/store/actions.js +233 -54
- package/src/store/private-actions.js +24 -0
- package/src/store/private-keys.js +1 -0
- package/src/store/private-selectors.js +43 -4
- package/src/store/reducer.js +13 -23
- package/src/store/selectors.js +24 -9
- package/src/style.scss +1 -2
- package/src/utils/object.js +16 -0
- package/src/utils/order-inserter-block-items.js +6 -2
- package/src/utils/pasting.js +6 -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/block-list/use-block-props/use-block-moving-mode-class-names.js +0 -54
- package/build/components/block-list/use-block-props/use-block-moving-mode-class-names.js.map +0 -1
- package/build/components/rich-text/split-value.js +0 -81
- package/build/components/rich-text/split-value.js.map +0 -1
- package/build/components/rich-text/use-before-input-rules.js +0 -98
- package/build/components/rich-text/use-before-input-rules.js.map +0 -1
- package/build/components/rich-text/use-delete.js +0 -64
- package/build/components/rich-text/use-delete.js.map +0 -1
- package/build/components/rich-text/use-enter.js +0 -109
- package/build/components/rich-text/use-enter.js.map +0 -1
- package/build/components/rich-text/use-firefox-compat.js +0 -44
- package/build/components/rich-text/use-firefox-compat.js.map +0 -1
- package/build/components/rich-text/use-input-events.js +0 -25
- package/build/components/rich-text/use-input-events.js.map +0 -1
- package/build/components/rich-text/use-input-rules.js +0 -139
- package/build/components/rich-text/use-input-rules.js.map +0 -1
- package/build/components/rich-text/use-insert-replacement-text.js +0 -38
- package/build/components/rich-text/use-insert-replacement-text.js.map +0 -1
- package/build/components/rich-text/use-paste-handler.js +0 -158
- package/build/components/rich-text/use-paste-handler.js.map +0 -1
- package/build/components/rich-text/use-remove-browser-shortcuts.js +0 -32
- package/build/components/rich-text/use-remove-browser-shortcuts.js.map +0 -1
- package/build/components/rich-text/use-shortcuts.js +0 -25
- package/build/components/rich-text/use-shortcuts.js.map +0 -1
- package/build/components/rich-text/use-undo-automatic-change.js +0 -53
- package/build/components/rich-text/use-undo-automatic-change.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-block-moving-mode-class-names.js +0 -47
- package/build-module/components/block-list/use-block-props/use-block-moving-mode-class-names.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/build-module/components/rich-text/use-before-input-rules.js +0 -92
- package/build-module/components/rich-text/use-before-input-rules.js.map +0 -1
- package/build-module/components/rich-text/use-delete.js +0 -57
- package/build-module/components/rich-text/use-delete.js.map +0 -1
- package/build-module/components/rich-text/use-enter.js +0 -102
- package/build-module/components/rich-text/use-enter.js.map +0 -1
- package/build-module/components/rich-text/use-firefox-compat.js +0 -37
- package/build-module/components/rich-text/use-firefox-compat.js.map +0 -1
- package/build-module/components/rich-text/use-input-events.js +0 -18
- package/build-module/components/rich-text/use-input-events.js.map +0 -1
- package/build-module/components/rich-text/use-input-rules.js +0 -132
- package/build-module/components/rich-text/use-input-rules.js.map +0 -1
- package/build-module/components/rich-text/use-insert-replacement-text.js +0 -32
- package/build-module/components/rich-text/use-insert-replacement-text.js.map +0 -1
- package/build-module/components/rich-text/use-paste-handler.js +0 -152
- package/build-module/components/rich-text/use-paste-handler.js.map +0 -1
- package/build-module/components/rich-text/use-remove-browser-shortcuts.js +0 -26
- package/build-module/components/rich-text/use-remove-browser-shortcuts.js.map +0 -1
- package/build-module/components/rich-text/use-shortcuts.js +0 -18
- package/build-module/components/rich-text/use-shortcuts.js.map +0 -1
- package/build-module/components/rich-text/use-undo-automatic-change.js +0 -46
- package/build-module/components/rich-text/use-undo-automatic-change.js.map +0 -1
- package/src/components/block-list/use-block-props/use-block-moving-mode-class-names.js +0 -55
- package/src/components/rich-text/split-value.js +0 -64
- package/src/components/rich-text/use-before-input-rules.js +0 -99
- package/src/components/rich-text/use-delete.js +0 -59
- package/src/components/rich-text/use-enter.js +0 -110
- package/src/components/rich-text/use-firefox-compat.js +0 -39
- package/src/components/rich-text/use-input-events.js +0 -19
- package/src/components/rich-text/use-input-rules.js +0 -150
- package/src/components/rich-text/use-insert-replacement-text.js +0 -31
- package/src/components/rich-text/use-paste-handler.js +0 -180
- package/src/components/rich-text/use-remove-browser-shortcuts.js +0 -29
- package/src/components/rich-text/use-shortcuts.js +0 -19
- package/src/components/rich-text/use-undo-automatic-change.js +0 -46
- package/src/components/text-decoration-control/style.scss +0 -18
- package/src/components/text-transform-control/style.scss +0 -18
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WordPress dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { isEmpty, split, toHTMLString } from '@wordpress/rich-text';
|
|
5
|
-
|
|
6
|
-
/*
|
|
7
|
-
* Signals to the RichText owner that the block can be replaced with two blocks
|
|
8
|
-
* as a result of splitting the block by pressing enter, or with blocks as a
|
|
9
|
-
* result of splitting the block by pasting block content in the instance.
|
|
10
|
-
*/
|
|
11
|
-
export function splitValue({
|
|
12
|
-
value,
|
|
13
|
-
pastedBlocks = [],
|
|
14
|
-
onReplace,
|
|
15
|
-
onSplit
|
|
16
|
-
}) {
|
|
17
|
-
if (!onReplace || !onSplit) {
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
// Ensure the value has a selection. This might happen when trying to split
|
|
22
|
-
// an empty value before there was a `selectionchange` event.
|
|
23
|
-
const {
|
|
24
|
-
start = 0,
|
|
25
|
-
end = 0
|
|
26
|
-
} = value;
|
|
27
|
-
const valueWithEnsuredSelection = {
|
|
28
|
-
...value,
|
|
29
|
-
start,
|
|
30
|
-
end
|
|
31
|
-
};
|
|
32
|
-
const blocks = [];
|
|
33
|
-
const [before, after] = split(valueWithEnsuredSelection);
|
|
34
|
-
const hasPastedBlocks = pastedBlocks.length > 0;
|
|
35
|
-
let lastPastedBlockIndex = -1;
|
|
36
|
-
|
|
37
|
-
// Consider the after value to be the original it is not empty and the
|
|
38
|
-
// before value *is* empty.
|
|
39
|
-
const isAfterOriginal = isEmpty(before) && !isEmpty(after);
|
|
40
|
-
|
|
41
|
-
// Create a block with the content before the caret if there's no pasted
|
|
42
|
-
// blocks, or if there are pasted blocks and the value is not empty. We do
|
|
43
|
-
// not want a leading empty block on paste, but we do if we split with e.g.
|
|
44
|
-
// the enter key.
|
|
45
|
-
if (!hasPastedBlocks || !isEmpty(before)) {
|
|
46
|
-
blocks.push(onSplit(toHTMLString({
|
|
47
|
-
value: before
|
|
48
|
-
}), !isAfterOriginal));
|
|
49
|
-
lastPastedBlockIndex += 1;
|
|
50
|
-
}
|
|
51
|
-
if (hasPastedBlocks) {
|
|
52
|
-
blocks.push(...pastedBlocks);
|
|
53
|
-
lastPastedBlockIndex += pastedBlocks.length;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// Create a block with the content after the caret if there's no pasted
|
|
57
|
-
// blocks, or if there are pasted blocks and the value is not empty. We do
|
|
58
|
-
// not want a trailing empty block on paste, but we do if we split with e.g.
|
|
59
|
-
// the enter key.
|
|
60
|
-
if (!hasPastedBlocks || !isEmpty(after)) {
|
|
61
|
-
blocks.push(onSplit(toHTMLString({
|
|
62
|
-
value: after
|
|
63
|
-
}), isAfterOriginal));
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// If there are pasted blocks, set the selection to the last one. Otherwise,
|
|
67
|
-
// set the selection to the second block.
|
|
68
|
-
const indexToSelect = hasPastedBlocks ? lastPastedBlockIndex : 1;
|
|
69
|
-
|
|
70
|
-
// If there are pasted blocks, move the caret to the end of the selected
|
|
71
|
-
// block Otherwise, retain the default value.
|
|
72
|
-
const initialPosition = hasPastedBlocks ? -1 : 0;
|
|
73
|
-
onReplace(blocks, indexToSelect, initialPosition);
|
|
74
|
-
}
|
|
75
|
-
//# sourceMappingURL=split-value.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["isEmpty","split","toHTMLString","splitValue","value","pastedBlocks","onReplace","onSplit","start","end","valueWithEnsuredSelection","blocks","before","after","hasPastedBlocks","length","lastPastedBlockIndex","isAfterOriginal","push","indexToSelect","initialPosition"],"sources":["@wordpress/block-editor/src/components/rich-text/split-value.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { isEmpty, split, toHTMLString } from '@wordpress/rich-text';\n\n/*\n * Signals to the RichText owner that the block can be replaced with two blocks\n * as a result of splitting the block by pressing enter, or with blocks as a\n * result of splitting the block by pasting block content in the instance.\n */\nexport function splitValue( { value, pastedBlocks = [], onReplace, onSplit } ) {\n\tif ( ! onReplace || ! onSplit ) {\n\t\treturn;\n\t}\n\n\t// Ensure the value has a selection. This might happen when trying to split\n\t// an empty value before there was a `selectionchange` event.\n\tconst { start = 0, end = 0 } = value;\n\tconst valueWithEnsuredSelection = { ...value, start, end };\n\tconst blocks = [];\n\tconst [ before, after ] = split( valueWithEnsuredSelection );\n\tconst hasPastedBlocks = pastedBlocks.length > 0;\n\tlet lastPastedBlockIndex = -1;\n\n\t// Consider the after value to be the original it is not empty and the\n\t// before value *is* empty.\n\tconst isAfterOriginal = isEmpty( before ) && ! isEmpty( after );\n\n\t// Create a block with the content before the caret if there's no pasted\n\t// blocks, or if there are pasted blocks and the value is not empty. We do\n\t// not want a leading empty block on paste, but we do if we split with e.g.\n\t// the enter key.\n\tif ( ! hasPastedBlocks || ! isEmpty( before ) ) {\n\t\tblocks.push(\n\t\t\tonSplit( toHTMLString( { value: before } ), ! isAfterOriginal )\n\t\t);\n\t\tlastPastedBlockIndex += 1;\n\t}\n\n\tif ( hasPastedBlocks ) {\n\t\tblocks.push( ...pastedBlocks );\n\t\tlastPastedBlockIndex += pastedBlocks.length;\n\t}\n\n\t// Create a block with the content after the caret if there's no pasted\n\t// blocks, or if there are pasted blocks and the value is not empty. We do\n\t// not want a trailing empty block on paste, but we do if we split with e.g.\n\t// the enter key.\n\tif ( ! hasPastedBlocks || ! isEmpty( after ) ) {\n\t\tblocks.push(\n\t\t\tonSplit( toHTMLString( { value: after } ), isAfterOriginal )\n\t\t);\n\t}\n\n\t// If there are pasted blocks, set the selection to the last one. Otherwise,\n\t// set the selection to the second block.\n\tconst indexToSelect = hasPastedBlocks ? lastPastedBlockIndex : 1;\n\n\t// If there are pasted blocks, move the caret to the end of the selected\n\t// block Otherwise, retain the default value.\n\tconst initialPosition = hasPastedBlocks ? -1 : 0;\n\n\tonReplace( blocks, indexToSelect, initialPosition );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,OAAO,EAAEC,KAAK,EAAEC,YAAY,QAAQ,sBAAsB;;AAEnE;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,UAAUA,CAAE;EAAEC,KAAK;EAAEC,YAAY,GAAG,EAAE;EAAEC,SAAS;EAAEC;AAAQ,CAAC,EAAG;EAC9E,IAAK,CAAED,SAAS,IAAI,CAAEC,OAAO,EAAG;IAC/B;EACD;;EAEA;EACA;EACA,MAAM;IAAEC,KAAK,GAAG,CAAC;IAAEC,GAAG,GAAG;EAAE,CAAC,GAAGL,KAAK;EACpC,MAAMM,yBAAyB,GAAG;IAAE,GAAGN,KAAK;IAAEI,KAAK;IAAEC;EAAI,CAAC;EAC1D,MAAME,MAAM,GAAG,EAAE;EACjB,MAAM,CAAEC,MAAM,EAAEC,KAAK,CAAE,GAAGZ,KAAK,CAAES,yBAA0B,CAAC;EAC5D,MAAMI,eAAe,GAAGT,YAAY,CAACU,MAAM,GAAG,CAAC;EAC/C,IAAIC,oBAAoB,GAAG,CAAC,CAAC;;EAE7B;EACA;EACA,MAAMC,eAAe,GAAGjB,OAAO,CAAEY,MAAO,CAAC,IAAI,CAAEZ,OAAO,CAAEa,KAAM,CAAC;;EAE/D;EACA;EACA;EACA;EACA,IAAK,CAAEC,eAAe,IAAI,CAAEd,OAAO,CAAEY,MAAO,CAAC,EAAG;IAC/CD,MAAM,CAACO,IAAI,CACVX,OAAO,CAAEL,YAAY,CAAE;MAAEE,KAAK,EAAEQ;IAAO,CAAE,CAAC,EAAE,CAAEK,eAAgB,CAC/D,CAAC;IACDD,oBAAoB,IAAI,CAAC;EAC1B;EAEA,IAAKF,eAAe,EAAG;IACtBH,MAAM,CAACO,IAAI,CAAE,GAAGb,YAAa,CAAC;IAC9BW,oBAAoB,IAAIX,YAAY,CAACU,MAAM;EAC5C;;EAEA;EACA;EACA;EACA;EACA,IAAK,CAAED,eAAe,IAAI,CAAEd,OAAO,CAAEa,KAAM,CAAC,EAAG;IAC9CF,MAAM,CAACO,IAAI,CACVX,OAAO,CAAEL,YAAY,CAAE;MAAEE,KAAK,EAAES;IAAM,CAAE,CAAC,EAAEI,eAAgB,CAC5D,CAAC;EACF;;EAEA;EACA;EACA,MAAME,aAAa,GAAGL,eAAe,GAAGE,oBAAoB,GAAG,CAAC;;EAEhE;EACA;EACA,MAAMI,eAAe,GAAGN,eAAe,GAAG,CAAC,CAAC,GAAG,CAAC;EAEhDR,SAAS,CAAEK,MAAM,EAAEQ,aAAa,EAAEC,eAAgB,CAAC;AACpD","ignoreList":[]}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WordPress dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { useRef } from '@wordpress/element';
|
|
5
|
-
import { useRefEffect } from '@wordpress/compose';
|
|
6
|
-
import { insert, isCollapsed } from '@wordpress/rich-text';
|
|
7
|
-
import { useDispatch } from '@wordpress/data';
|
|
8
|
-
import { applyFilters } from '@wordpress/hooks';
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Internal dependencies
|
|
12
|
-
*/
|
|
13
|
-
import { store as blockEditorStore } from '../../store';
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* When typing over a selection, the selection will we wrapped by a matching
|
|
17
|
-
* character pair. The second character is optional, it defaults to the first
|
|
18
|
-
* character.
|
|
19
|
-
*
|
|
20
|
-
* @type {string[]} Array of character pairs.
|
|
21
|
-
*/
|
|
22
|
-
const wrapSelectionSettings = ['`', '"', "'", '“”', '‘’'];
|
|
23
|
-
export function useBeforeInputRules(props) {
|
|
24
|
-
const {
|
|
25
|
-
__unstableMarkLastChangeAsPersistent,
|
|
26
|
-
__unstableMarkAutomaticChange
|
|
27
|
-
} = useDispatch(blockEditorStore);
|
|
28
|
-
const propsRef = useRef(props);
|
|
29
|
-
propsRef.current = props;
|
|
30
|
-
return useRefEffect(element => {
|
|
31
|
-
function onInput(event) {
|
|
32
|
-
const {
|
|
33
|
-
inputType,
|
|
34
|
-
data
|
|
35
|
-
} = event;
|
|
36
|
-
const {
|
|
37
|
-
value,
|
|
38
|
-
onChange
|
|
39
|
-
} = propsRef.current;
|
|
40
|
-
|
|
41
|
-
// Only run the rules when inserting text.
|
|
42
|
-
if (inputType !== 'insertText') {
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
if (isCollapsed(value)) {
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
const pair = applyFilters('blockEditor.wrapSelectionSettings', wrapSelectionSettings).find(([startChar, endChar]) => startChar === data || endChar === data);
|
|
49
|
-
if (!pair) {
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
const [startChar, endChar = startChar] = pair;
|
|
53
|
-
const start = value.start;
|
|
54
|
-
const end = value.end + startChar.length;
|
|
55
|
-
let newValue = insert(value, startChar, start, start);
|
|
56
|
-
newValue = insert(newValue, endChar, end, end);
|
|
57
|
-
__unstableMarkLastChangeAsPersistent();
|
|
58
|
-
onChange(newValue);
|
|
59
|
-
__unstableMarkAutomaticChange();
|
|
60
|
-
const init = {};
|
|
61
|
-
for (const key in event) {
|
|
62
|
-
init[key] = event[key];
|
|
63
|
-
}
|
|
64
|
-
init.data = endChar;
|
|
65
|
-
const {
|
|
66
|
-
ownerDocument
|
|
67
|
-
} = element;
|
|
68
|
-
const {
|
|
69
|
-
defaultView
|
|
70
|
-
} = ownerDocument;
|
|
71
|
-
const newEvent = new defaultView.InputEvent('input', init);
|
|
72
|
-
|
|
73
|
-
// Dispatch an `input` event with the new data. This will trigger the
|
|
74
|
-
// input rules.
|
|
75
|
-
// Postpone the `input` to the next event loop tick so that the dispatch
|
|
76
|
-
// doesn't happen synchronously in the middle of `beforeinput` dispatch.
|
|
77
|
-
// This is closer to how native `input` event would be timed, and also
|
|
78
|
-
// makes sure that the `input` event is dispatched only after the `onChange`
|
|
79
|
-
// call few lines above has fully updated the data store state and rerendered
|
|
80
|
-
// all affected components.
|
|
81
|
-
window.queueMicrotask(() => {
|
|
82
|
-
event.target.dispatchEvent(newEvent);
|
|
83
|
-
});
|
|
84
|
-
event.preventDefault();
|
|
85
|
-
}
|
|
86
|
-
element.addEventListener('beforeinput', onInput);
|
|
87
|
-
return () => {
|
|
88
|
-
element.removeEventListener('beforeinput', onInput);
|
|
89
|
-
};
|
|
90
|
-
}, []);
|
|
91
|
-
}
|
|
92
|
-
//# sourceMappingURL=use-before-input-rules.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["useRef","useRefEffect","insert","isCollapsed","useDispatch","applyFilters","store","blockEditorStore","wrapSelectionSettings","useBeforeInputRules","props","__unstableMarkLastChangeAsPersistent","__unstableMarkAutomaticChange","propsRef","current","element","onInput","event","inputType","data","value","onChange","pair","find","startChar","endChar","start","end","length","newValue","init","key","ownerDocument","defaultView","newEvent","InputEvent","window","queueMicrotask","target","dispatchEvent","preventDefault","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/rich-text/use-before-input-rules.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRef } from '@wordpress/element';\nimport { useRefEffect } from '@wordpress/compose';\nimport { insert, isCollapsed } from '@wordpress/rich-text';\nimport { useDispatch } from '@wordpress/data';\nimport { applyFilters } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * When typing over a selection, the selection will we wrapped by a matching\n * character pair. The second character is optional, it defaults to the first\n * character.\n *\n * @type {string[]} Array of character pairs.\n */\nconst wrapSelectionSettings = [ '`', '\"', \"'\", '“”', '‘’' ];\n\nexport function useBeforeInputRules( props ) {\n\tconst {\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\t__unstableMarkAutomaticChange,\n\t} = useDispatch( blockEditorStore );\n\tconst propsRef = useRef( props );\n\tpropsRef.current = props;\n\treturn useRefEffect( ( element ) => {\n\t\tfunction onInput( event ) {\n\t\t\tconst { inputType, data } = event;\n\t\t\tconst { value, onChange } = propsRef.current;\n\n\t\t\t// Only run the rules when inserting text.\n\t\t\tif ( inputType !== 'insertText' ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( isCollapsed( value ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst pair = applyFilters(\n\t\t\t\t'blockEditor.wrapSelectionSettings',\n\t\t\t\twrapSelectionSettings\n\t\t\t).find(\n\t\t\t\t( [ startChar, endChar ] ) =>\n\t\t\t\t\tstartChar === data || endChar === data\n\t\t\t);\n\n\t\t\tif ( ! pair ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst [ startChar, endChar = startChar ] = pair;\n\t\t\tconst start = value.start;\n\t\t\tconst end = value.end + startChar.length;\n\n\t\t\tlet newValue = insert( value, startChar, start, start );\n\t\t\tnewValue = insert( newValue, endChar, end, end );\n\n\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\tonChange( newValue );\n\t\t\t__unstableMarkAutomaticChange();\n\n\t\t\tconst init = {};\n\n\t\t\tfor ( const key in event ) {\n\t\t\t\tinit[ key ] = event[ key ];\n\t\t\t}\n\n\t\t\tinit.data = endChar;\n\n\t\t\tconst { ownerDocument } = element;\n\t\t\tconst { defaultView } = ownerDocument;\n\t\t\tconst newEvent = new defaultView.InputEvent( 'input', init );\n\n\t\t\t// Dispatch an `input` event with the new data. This will trigger the\n\t\t\t// input rules.\n\t\t\t// Postpone the `input` to the next event loop tick so that the dispatch\n\t\t\t// doesn't happen synchronously in the middle of `beforeinput` dispatch.\n\t\t\t// This is closer to how native `input` event would be timed, and also\n\t\t\t// makes sure that the `input` event is dispatched only after the `onChange`\n\t\t\t// call few lines above has fully updated the data store state and rerendered\n\t\t\t// all affected components.\n\t\t\twindow.queueMicrotask( () => {\n\t\t\t\tevent.target.dispatchEvent( newEvent );\n\t\t\t} );\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\telement.addEventListener( 'beforeinput', onInput );\n\t\treturn () => {\n\t\t\telement.removeEventListener( 'beforeinput', onInput );\n\t\t};\n\t}, [] );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WordPress dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { useRef } from '@wordpress/element';
|
|
5
|
-
import { useRefEffect } from '@wordpress/compose';
|
|
6
|
-
import { DELETE, BACKSPACE } from '@wordpress/keycodes';
|
|
7
|
-
import { isCollapsed, isEmpty } from '@wordpress/rich-text';
|
|
8
|
-
export function useDelete(props) {
|
|
9
|
-
const propsRef = useRef(props);
|
|
10
|
-
propsRef.current = props;
|
|
11
|
-
return useRefEffect(element => {
|
|
12
|
-
function onKeyDown(event) {
|
|
13
|
-
const {
|
|
14
|
-
keyCode
|
|
15
|
-
} = event;
|
|
16
|
-
if (event.defaultPrevented) {
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
const {
|
|
20
|
-
value,
|
|
21
|
-
onMerge,
|
|
22
|
-
onRemove
|
|
23
|
-
} = propsRef.current;
|
|
24
|
-
if (keyCode === DELETE || keyCode === BACKSPACE) {
|
|
25
|
-
const {
|
|
26
|
-
start,
|
|
27
|
-
end,
|
|
28
|
-
text
|
|
29
|
-
} = value;
|
|
30
|
-
const isReverse = keyCode === BACKSPACE;
|
|
31
|
-
const hasActiveFormats = value.activeFormats && !!value.activeFormats.length;
|
|
32
|
-
|
|
33
|
-
// Only process delete if the key press occurs at an uncollapsed edge.
|
|
34
|
-
if (!isCollapsed(value) || hasActiveFormats || isReverse && start !== 0 || !isReverse && end !== text.length) {
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
if (onMerge) {
|
|
38
|
-
onMerge(!isReverse);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
// Only handle remove on Backspace. This serves dual-purpose of being
|
|
42
|
-
// an intentional user interaction distinguishing between Backspace and
|
|
43
|
-
// Delete to remove the empty field, but also to avoid merge & remove
|
|
44
|
-
// causing destruction of two fields (merge, then removed merged).
|
|
45
|
-
else if (onRemove && isEmpty(value) && isReverse) {
|
|
46
|
-
onRemove(!isReverse);
|
|
47
|
-
}
|
|
48
|
-
event.preventDefault();
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
element.addEventListener('keydown', onKeyDown);
|
|
52
|
-
return () => {
|
|
53
|
-
element.removeEventListener('keydown', onKeyDown);
|
|
54
|
-
};
|
|
55
|
-
}, []);
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=use-delete.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["useRef","useRefEffect","DELETE","BACKSPACE","isCollapsed","isEmpty","useDelete","props","propsRef","current","element","onKeyDown","event","keyCode","defaultPrevented","value","onMerge","onRemove","start","end","text","isReverse","hasActiveFormats","activeFormats","length","preventDefault","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/rich-text/use-delete.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRef } from '@wordpress/element';\nimport { useRefEffect } from '@wordpress/compose';\nimport { DELETE, BACKSPACE } from '@wordpress/keycodes';\nimport { isCollapsed, isEmpty } from '@wordpress/rich-text';\n\nexport function useDelete( props ) {\n\tconst propsRef = useRef( props );\n\tpropsRef.current = props;\n\treturn useRefEffect( ( element ) => {\n\t\tfunction onKeyDown( event ) {\n\t\t\tconst { keyCode } = event;\n\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { value, onMerge, onRemove } = propsRef.current;\n\n\t\t\tif ( keyCode === DELETE || keyCode === BACKSPACE ) {\n\t\t\t\tconst { start, end, text } = value;\n\t\t\t\tconst isReverse = keyCode === BACKSPACE;\n\t\t\t\tconst hasActiveFormats =\n\t\t\t\t\tvalue.activeFormats && !! value.activeFormats.length;\n\n\t\t\t\t// Only process delete if the key press occurs at an uncollapsed edge.\n\t\t\t\tif (\n\t\t\t\t\t! isCollapsed( value ) ||\n\t\t\t\t\thasActiveFormats ||\n\t\t\t\t\t( isReverse && start !== 0 ) ||\n\t\t\t\t\t( ! isReverse && end !== text.length )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( onMerge ) {\n\t\t\t\t\tonMerge( ! isReverse );\n\t\t\t\t}\n\n\t\t\t\t// Only handle remove on Backspace. This serves dual-purpose of being\n\t\t\t\t// an intentional user interaction distinguishing between Backspace and\n\t\t\t\t// Delete to remove the empty field, but also to avoid merge & remove\n\t\t\t\t// causing destruction of two fields (merge, then removed merged).\n\t\t\t\telse if ( onRemove && isEmpty( value ) && isReverse ) {\n\t\t\t\t\tonRemove( ! isReverse );\n\t\t\t\t}\n\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\n\t\telement.addEventListener( 'keydown', onKeyDown );\n\t\treturn () => {\n\t\t\telement.removeEventListener( 'keydown', onKeyDown );\n\t\t};\n\t}, [] );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,MAAM,QAAQ,oBAAoB;AAC3C,SAASC,YAAY,QAAQ,oBAAoB;AACjD,SAASC,MAAM,EAAEC,SAAS,QAAQ,qBAAqB;AACvD,SAASC,WAAW,EAAEC,OAAO,QAAQ,sBAAsB;AAE3D,OAAO,SAASC,SAASA,CAAEC,KAAK,EAAG;EAClC,MAAMC,QAAQ,GAAGR,MAAM,CAAEO,KAAM,CAAC;EAChCC,QAAQ,CAACC,OAAO,GAAGF,KAAK;EACxB,OAAON,YAAY,CAAIS,OAAO,IAAM;IACnC,SAASC,SAASA,CAAEC,KAAK,EAAG;MAC3B,MAAM;QAAEC;MAAQ,CAAC,GAAGD,KAAK;MAEzB,IAAKA,KAAK,CAACE,gBAAgB,EAAG;QAC7B;MACD;MAEA,MAAM;QAAEC,KAAK;QAAEC,OAAO;QAAEC;MAAS,CAAC,GAAGT,QAAQ,CAACC,OAAO;MAErD,IAAKI,OAAO,KAAKX,MAAM,IAAIW,OAAO,KAAKV,SAAS,EAAG;QAClD,MAAM;UAAEe,KAAK;UAAEC,GAAG;UAAEC;QAAK,CAAC,GAAGL,KAAK;QAClC,MAAMM,SAAS,GAAGR,OAAO,KAAKV,SAAS;QACvC,MAAMmB,gBAAgB,GACrBP,KAAK,CAACQ,aAAa,IAAI,CAAC,CAAER,KAAK,CAACQ,aAAa,CAACC,MAAM;;QAErD;QACA,IACC,CAAEpB,WAAW,CAAEW,KAAM,CAAC,IACtBO,gBAAgB,IACdD,SAAS,IAAIH,KAAK,KAAK,CAAG,IAC1B,CAAEG,SAAS,IAAIF,GAAG,KAAKC,IAAI,CAACI,MAAQ,EACrC;UACD;QACD;QAEA,IAAKR,OAAO,EAAG;UACdA,OAAO,CAAE,CAAEK,SAAU,CAAC;QACvB;;QAEA;QACA;QACA;QACA;QAAA,KACK,IAAKJ,QAAQ,IAAIZ,OAAO,CAAEU,KAAM,CAAC,IAAIM,SAAS,EAAG;UACrDJ,QAAQ,CAAE,CAAEI,SAAU,CAAC;QACxB;QAEAT,KAAK,CAACa,cAAc,CAAC,CAAC;MACvB;IACD;IAEAf,OAAO,CAACgB,gBAAgB,CAAE,SAAS,EAAEf,SAAU,CAAC;IAChD,OAAO,MAAM;MACZD,OAAO,CAACiB,mBAAmB,CAAE,SAAS,EAAEhB,SAAU,CAAC;IACpD,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;AACR","ignoreList":[]}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WordPress dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { useRef } from '@wordpress/element';
|
|
5
|
-
import { useRefEffect } from '@wordpress/compose';
|
|
6
|
-
import { ENTER } from '@wordpress/keycodes';
|
|
7
|
-
import { insert, remove } from '@wordpress/rich-text';
|
|
8
|
-
import { getBlockTransforms, findTransform } from '@wordpress/blocks';
|
|
9
|
-
import { useDispatch, useRegistry } from '@wordpress/data';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Internal dependencies
|
|
13
|
-
*/
|
|
14
|
-
import { store as blockEditorStore } from '../../store';
|
|
15
|
-
import { splitValue } from './split-value';
|
|
16
|
-
export function useEnter(props) {
|
|
17
|
-
const registry = useRegistry();
|
|
18
|
-
const {
|
|
19
|
-
__unstableMarkAutomaticChange
|
|
20
|
-
} = useDispatch(blockEditorStore);
|
|
21
|
-
const propsRef = useRef(props);
|
|
22
|
-
propsRef.current = props;
|
|
23
|
-
return useRefEffect(element => {
|
|
24
|
-
function onKeyDown(event) {
|
|
25
|
-
if (event.target.contentEditable !== 'true') {
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
if (event.defaultPrevented) {
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
if (event.keyCode !== ENTER) {
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
const {
|
|
35
|
-
removeEditorOnlyFormats,
|
|
36
|
-
value,
|
|
37
|
-
onReplace,
|
|
38
|
-
onSplit,
|
|
39
|
-
onChange,
|
|
40
|
-
disableLineBreaks,
|
|
41
|
-
onSplitAtEnd,
|
|
42
|
-
onSplitAtDoubleLineEnd
|
|
43
|
-
} = propsRef.current;
|
|
44
|
-
event.preventDefault();
|
|
45
|
-
const _value = {
|
|
46
|
-
...value
|
|
47
|
-
};
|
|
48
|
-
_value.formats = removeEditorOnlyFormats(value);
|
|
49
|
-
const canSplit = onReplace && onSplit;
|
|
50
|
-
if (onReplace) {
|
|
51
|
-
const transforms = getBlockTransforms('from').filter(({
|
|
52
|
-
type
|
|
53
|
-
}) => type === 'enter');
|
|
54
|
-
const transformation = findTransform(transforms, item => {
|
|
55
|
-
return item.regExp.test(_value.text);
|
|
56
|
-
});
|
|
57
|
-
if (transformation) {
|
|
58
|
-
onReplace([transformation.transform({
|
|
59
|
-
content: _value.text
|
|
60
|
-
})]);
|
|
61
|
-
__unstableMarkAutomaticChange();
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
const {
|
|
66
|
-
text,
|
|
67
|
-
start,
|
|
68
|
-
end
|
|
69
|
-
} = _value;
|
|
70
|
-
if (event.shiftKey) {
|
|
71
|
-
if (!disableLineBreaks) {
|
|
72
|
-
onChange(insert(_value, '\n'));
|
|
73
|
-
}
|
|
74
|
-
} else if (canSplit) {
|
|
75
|
-
splitValue({
|
|
76
|
-
value: _value,
|
|
77
|
-
onReplace,
|
|
78
|
-
onSplit
|
|
79
|
-
});
|
|
80
|
-
} else if (onSplitAtEnd && start === end && end === text.length) {
|
|
81
|
-
onSplitAtEnd();
|
|
82
|
-
} else if (
|
|
83
|
-
// For some blocks it's desirable to split at the end of the
|
|
84
|
-
// block when there are two line breaks at the end of the
|
|
85
|
-
// block, so triple Enter exits the block.
|
|
86
|
-
onSplitAtDoubleLineEnd && start === end && end === text.length && text.slice(-2) === '\n\n') {
|
|
87
|
-
registry.batch(() => {
|
|
88
|
-
_value.start = _value.end - 2;
|
|
89
|
-
onChange(remove(_value));
|
|
90
|
-
onSplitAtDoubleLineEnd();
|
|
91
|
-
});
|
|
92
|
-
} else if (!disableLineBreaks) {
|
|
93
|
-
onChange(insert(_value, '\n'));
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
element.addEventListener('keydown', onKeyDown);
|
|
97
|
-
return () => {
|
|
98
|
-
element.removeEventListener('keydown', onKeyDown);
|
|
99
|
-
};
|
|
100
|
-
}, []);
|
|
101
|
-
}
|
|
102
|
-
//# sourceMappingURL=use-enter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["useRef","useRefEffect","ENTER","insert","remove","getBlockTransforms","findTransform","useDispatch","useRegistry","store","blockEditorStore","splitValue","useEnter","props","registry","__unstableMarkAutomaticChange","propsRef","current","element","onKeyDown","event","target","contentEditable","defaultPrevented","keyCode","removeEditorOnlyFormats","value","onReplace","onSplit","onChange","disableLineBreaks","onSplitAtEnd","onSplitAtDoubleLineEnd","preventDefault","_value","formats","canSplit","transforms","filter","type","transformation","item","regExp","test","text","transform","content","start","end","shiftKey","length","slice","batch","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/rich-text/use-enter.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRef } from '@wordpress/element';\nimport { useRefEffect } from '@wordpress/compose';\nimport { ENTER } from '@wordpress/keycodes';\nimport { insert, remove } from '@wordpress/rich-text';\nimport { getBlockTransforms, findTransform } from '@wordpress/blocks';\nimport { useDispatch, useRegistry } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { splitValue } from './split-value';\n\nexport function useEnter( props ) {\n\tconst registry = useRegistry();\n\tconst { __unstableMarkAutomaticChange } = useDispatch( blockEditorStore );\n\tconst propsRef = useRef( props );\n\tpropsRef.current = props;\n\treturn useRefEffect( ( element ) => {\n\t\tfunction onKeyDown( event ) {\n\t\t\tif ( event.target.contentEditable !== 'true' ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( event.keyCode !== ENTER ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tremoveEditorOnlyFormats,\n\t\t\t\tvalue,\n\t\t\t\tonReplace,\n\t\t\t\tonSplit,\n\t\t\t\tonChange,\n\t\t\t\tdisableLineBreaks,\n\t\t\t\tonSplitAtEnd,\n\t\t\t\tonSplitAtDoubleLineEnd,\n\t\t\t} = propsRef.current;\n\n\t\t\tevent.preventDefault();\n\n\t\t\tconst _value = { ...value };\n\t\t\t_value.formats = removeEditorOnlyFormats( value );\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( {\n\t\t\t\t\t\t\tcontent: _value.text,\n\t\t\t\t\t\t} ),\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\tconst { text, start, end } = _value;\n\n\t\t\tif ( event.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( {\n\t\t\t\t\tvalue: _value,\n\t\t\t\t\tonReplace,\n\t\t\t\t\tonSplit,\n\t\t\t\t} );\n\t\t\t} else if ( onSplitAtEnd && start === end && end === text.length ) {\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\tstart === end &&\n\t\t\t\tend === text.length &&\n\t\t\t\ttext.slice( -2 ) === '\\n\\n'\n\t\t\t) {\n\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t_value.start = _value.end - 2;\n\t\t\t\t\tonChange( remove( _value ) );\n\t\t\t\t\tonSplitAtDoubleLineEnd();\n\t\t\t\t} );\n\t\t\t} else if ( ! disableLineBreaks ) {\n\t\t\t\tonChange( insert( _value, '\\n' ) );\n\t\t\t}\n\t\t}\n\n\t\telement.addEventListener( 'keydown', onKeyDown );\n\t\treturn () => {\n\t\t\telement.removeEventListener( 'keydown', onKeyDown );\n\t\t};\n\t}, [] );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WordPress dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { useRefEffect } from '@wordpress/compose';
|
|
5
|
-
import { useSelect } from '@wordpress/data';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Internal dependencies
|
|
9
|
-
*/
|
|
10
|
-
import { store as blockEditorStore } from '../../store';
|
|
11
|
-
export function useFirefoxCompat() {
|
|
12
|
-
const {
|
|
13
|
-
isMultiSelecting
|
|
14
|
-
} = useSelect(blockEditorStore);
|
|
15
|
-
return useRefEffect(element => {
|
|
16
|
-
function onFocus() {
|
|
17
|
-
if (!isMultiSelecting()) {
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
// This is a little hack to work around focus issues with nested
|
|
22
|
-
// editable elements in Firefox. For some reason the editable child
|
|
23
|
-
// element sometimes regains focus, while it should not be focusable
|
|
24
|
-
// and focus should remain on the editable parent element.
|
|
25
|
-
// To do: try to find the cause of the shifting focus.
|
|
26
|
-
const parentEditable = element.parentElement.closest('[contenteditable="true"]');
|
|
27
|
-
if (parentEditable) {
|
|
28
|
-
parentEditable.focus();
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
element.addEventListener('focus', onFocus);
|
|
32
|
-
return () => {
|
|
33
|
-
element.removeEventListener('focus', onFocus);
|
|
34
|
-
};
|
|
35
|
-
}, []);
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=use-firefox-compat.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["useRefEffect","useSelect","store","blockEditorStore","useFirefoxCompat","isMultiSelecting","element","onFocus","parentEditable","parentElement","closest","focus","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/rich-text/use-firefox-compat.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRefEffect } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nexport function useFirefoxCompat() {\n\tconst { isMultiSelecting } = useSelect( blockEditorStore );\n\treturn useRefEffect( ( element ) => {\n\t\tfunction onFocus() {\n\t\t\tif ( ! isMultiSelecting() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// This is a little hack to work around focus issues with nested\n\t\t\t// editable elements in Firefox. For some reason the editable child\n\t\t\t// element sometimes regains focus, while it should not be focusable\n\t\t\t// and focus should remain on the editable parent element.\n\t\t\t// To do: try to find the cause of the shifting focus.\n\t\t\tconst parentEditable = element.parentElement.closest(\n\t\t\t\t'[contenteditable=\"true\"]'\n\t\t\t);\n\n\t\t\tif ( parentEditable ) {\n\t\t\t\tparentEditable.focus();\n\t\t\t}\n\t\t}\n\n\t\telement.addEventListener( 'focus', onFocus );\n\t\treturn () => {\n\t\t\telement.removeEventListener( 'focus', onFocus );\n\t\t};\n\t}, [] );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,YAAY,QAAQ,oBAAoB;AACjD,SAASC,SAAS,QAAQ,iBAAiB;;AAE3C;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AAEvD,OAAO,SAASC,gBAAgBA,CAAA,EAAG;EAClC,MAAM;IAAEC;EAAiB,CAAC,GAAGJ,SAAS,CAAEE,gBAAiB,CAAC;EAC1D,OAAOH,YAAY,CAAIM,OAAO,IAAM;IACnC,SAASC,OAAOA,CAAA,EAAG;MAClB,IAAK,CAAEF,gBAAgB,CAAC,CAAC,EAAG;QAC3B;MACD;;MAEA;MACA;MACA;MACA;MACA;MACA,MAAMG,cAAc,GAAGF,OAAO,CAACG,aAAa,CAACC,OAAO,CACnD,0BACD,CAAC;MAED,IAAKF,cAAc,EAAG;QACrBA,cAAc,CAACG,KAAK,CAAC,CAAC;MACvB;IACD;IAEAL,OAAO,CAACM,gBAAgB,CAAE,OAAO,EAAEL,OAAQ,CAAC;IAC5C,OAAO,MAAM;MACZD,OAAO,CAACO,mBAAmB,CAAE,OAAO,EAAEN,OAAQ,CAAC;IAChD,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;AACR","ignoreList":[]}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WordPress dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { useRefEffect } from '@wordpress/compose';
|
|
5
|
-
export function useInputEvents(inputEvents) {
|
|
6
|
-
return useRefEffect(element => {
|
|
7
|
-
function onInput(event) {
|
|
8
|
-
for (const keyboardShortcut of inputEvents.current) {
|
|
9
|
-
keyboardShortcut(event);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
element.addEventListener('input', onInput);
|
|
13
|
-
return () => {
|
|
14
|
-
element.removeEventListener('input', onInput);
|
|
15
|
-
};
|
|
16
|
-
}, []);
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=use-input-events.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["useRefEffect","useInputEvents","inputEvents","element","onInput","event","keyboardShortcut","current","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/rich-text/use-input-events.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRefEffect } from '@wordpress/compose';\n\nexport function useInputEvents( inputEvents ) {\n\treturn useRefEffect( ( element ) => {\n\t\tfunction onInput( event ) {\n\t\t\tfor ( const keyboardShortcut of inputEvents.current ) {\n\t\t\t\tkeyboardShortcut( event );\n\t\t\t}\n\t\t}\n\n\t\telement.addEventListener( 'input', onInput );\n\t\treturn () => {\n\t\t\telement.removeEventListener( 'input', onInput );\n\t\t};\n\t}, [] );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,YAAY,QAAQ,oBAAoB;AAEjD,OAAO,SAASC,cAAcA,CAAEC,WAAW,EAAG;EAC7C,OAAOF,YAAY,CAAIG,OAAO,IAAM;IACnC,SAASC,OAAOA,CAAEC,KAAK,EAAG;MACzB,KAAM,MAAMC,gBAAgB,IAAIJ,WAAW,CAACK,OAAO,EAAG;QACrDD,gBAAgB,CAAED,KAAM,CAAC;MAC1B;IACD;IAEAF,OAAO,CAACK,gBAAgB,CAAE,OAAO,EAAEJ,OAAQ,CAAC;IAC5C,OAAO,MAAM;MACZD,OAAO,CAACM,mBAAmB,CAAE,OAAO,EAAEL,OAAQ,CAAC;IAChD,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;AACR","ignoreList":[]}
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WordPress dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { useRef } from '@wordpress/element';
|
|
5
|
-
import { useRefEffect } from '@wordpress/compose';
|
|
6
|
-
import { insert, toHTMLString } from '@wordpress/rich-text';
|
|
7
|
-
import { getBlockTransforms, findTransform } from '@wordpress/blocks';
|
|
8
|
-
import { useDispatch } from '@wordpress/data';
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Internal dependencies
|
|
12
|
-
*/
|
|
13
|
-
import { store as blockEditorStore } from '../../store';
|
|
14
|
-
import { preventEventDiscovery } from './prevent-event-discovery';
|
|
15
|
-
import { retrieveSelectedAttribute, START_OF_SELECTED_AREA } from '../../utils/selection';
|
|
16
|
-
function findSelection(blocks) {
|
|
17
|
-
let i = blocks.length;
|
|
18
|
-
while (i--) {
|
|
19
|
-
const attributeKey = retrieveSelectedAttribute(blocks[i].attributes);
|
|
20
|
-
if (attributeKey) {
|
|
21
|
-
blocks[i].attributes[attributeKey] = blocks[i].attributes[attributeKey]
|
|
22
|
-
// To do: refactor this to use rich text's selection instead, so
|
|
23
|
-
// we no longer have to use on this hack inserting a special
|
|
24
|
-
// character.
|
|
25
|
-
.toString().replace(START_OF_SELECTED_AREA, '');
|
|
26
|
-
return [blocks[i].clientId, attributeKey, 0, 0];
|
|
27
|
-
}
|
|
28
|
-
const nestedSelection = findSelection(blocks[i].innerBlocks);
|
|
29
|
-
if (nestedSelection) {
|
|
30
|
-
return nestedSelection;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return [];
|
|
34
|
-
}
|
|
35
|
-
export function useInputRules(props) {
|
|
36
|
-
const {
|
|
37
|
-
__unstableMarkLastChangeAsPersistent,
|
|
38
|
-
__unstableMarkAutomaticChange
|
|
39
|
-
} = useDispatch(blockEditorStore);
|
|
40
|
-
const propsRef = useRef(props);
|
|
41
|
-
propsRef.current = props;
|
|
42
|
-
return useRefEffect(element => {
|
|
43
|
-
function inputRule() {
|
|
44
|
-
const {
|
|
45
|
-
getValue,
|
|
46
|
-
onReplace,
|
|
47
|
-
selectionChange
|
|
48
|
-
} = propsRef.current;
|
|
49
|
-
if (!onReplace) {
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// We must use getValue() here because value may be update
|
|
54
|
-
// asynchronously.
|
|
55
|
-
const value = getValue();
|
|
56
|
-
const {
|
|
57
|
-
start,
|
|
58
|
-
text
|
|
59
|
-
} = value;
|
|
60
|
-
const characterBefore = text.slice(start - 1, start);
|
|
61
|
-
|
|
62
|
-
// The character right before the caret must be a plain space.
|
|
63
|
-
if (characterBefore !== ' ') {
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
const trimmedTextBefore = text.slice(0, start).trim();
|
|
67
|
-
const prefixTransforms = getBlockTransforms('from').filter(({
|
|
68
|
-
type
|
|
69
|
-
}) => type === 'prefix');
|
|
70
|
-
const transformation = findTransform(prefixTransforms, ({
|
|
71
|
-
prefix
|
|
72
|
-
}) => {
|
|
73
|
-
return trimmedTextBefore === prefix;
|
|
74
|
-
});
|
|
75
|
-
if (!transformation) {
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
const content = toHTMLString({
|
|
79
|
-
value: insert(value, START_OF_SELECTED_AREA, 0, start)
|
|
80
|
-
});
|
|
81
|
-
const block = transformation.transform(content);
|
|
82
|
-
selectionChange(...findSelection([block]));
|
|
83
|
-
onReplace([block]);
|
|
84
|
-
__unstableMarkAutomaticChange();
|
|
85
|
-
return true;
|
|
86
|
-
}
|
|
87
|
-
function onInput(event) {
|
|
88
|
-
const {
|
|
89
|
-
inputType,
|
|
90
|
-
type
|
|
91
|
-
} = event;
|
|
92
|
-
const {
|
|
93
|
-
getValue,
|
|
94
|
-
onChange,
|
|
95
|
-
__unstableAllowPrefixTransformations,
|
|
96
|
-
formatTypes
|
|
97
|
-
} = propsRef.current;
|
|
98
|
-
|
|
99
|
-
// Only run input rules when inserting text.
|
|
100
|
-
if (inputType !== 'insertText' && type !== 'compositionend') {
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
if (__unstableAllowPrefixTransformations && inputRule()) {
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
const value = getValue();
|
|
107
|
-
const transformed = formatTypes.reduce((accumlator, {
|
|
108
|
-
__unstableInputRule
|
|
109
|
-
}) => {
|
|
110
|
-
if (__unstableInputRule) {
|
|
111
|
-
accumlator = __unstableInputRule(accumlator);
|
|
112
|
-
}
|
|
113
|
-
return accumlator;
|
|
114
|
-
}, preventEventDiscovery(value));
|
|
115
|
-
if (transformed !== value) {
|
|
116
|
-
__unstableMarkLastChangeAsPersistent();
|
|
117
|
-
onChange({
|
|
118
|
-
...transformed,
|
|
119
|
-
activeFormats: value.activeFormats
|
|
120
|
-
});
|
|
121
|
-
__unstableMarkAutomaticChange();
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
element.addEventListener('input', onInput);
|
|
125
|
-
element.addEventListener('compositionend', onInput);
|
|
126
|
-
return () => {
|
|
127
|
-
element.removeEventListener('input', onInput);
|
|
128
|
-
element.removeEventListener('compositionend', onInput);
|
|
129
|
-
};
|
|
130
|
-
}, []);
|
|
131
|
-
}
|
|
132
|
-
//# sourceMappingURL=use-input-rules.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["useRef","useRefEffect","insert","toHTMLString","getBlockTransforms","findTransform","useDispatch","store","blockEditorStore","preventEventDiscovery","retrieveSelectedAttribute","START_OF_SELECTED_AREA","findSelection","blocks","i","length","attributeKey","attributes","toString","replace","clientId","nestedSelection","innerBlocks","useInputRules","props","__unstableMarkLastChangeAsPersistent","__unstableMarkAutomaticChange","propsRef","current","element","inputRule","getValue","onReplace","selectionChange","value","start","text","characterBefore","slice","trimmedTextBefore","trim","prefixTransforms","filter","type","transformation","prefix","content","block","transform","onInput","event","inputType","onChange","__unstableAllowPrefixTransformations","formatTypes","transformed","reduce","accumlator","__unstableInputRule","activeFormats","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/rich-text/use-input-rules.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRef } from '@wordpress/element';\nimport { useRefEffect } from '@wordpress/compose';\nimport { insert, toHTMLString } from '@wordpress/rich-text';\nimport { getBlockTransforms, findTransform } from '@wordpress/blocks';\nimport { useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { preventEventDiscovery } from './prevent-event-discovery';\nimport {\n\tretrieveSelectedAttribute,\n\tSTART_OF_SELECTED_AREA,\n} from '../../utils/selection';\n\nfunction findSelection( blocks ) {\n\tlet i = blocks.length;\n\n\twhile ( i-- ) {\n\t\tconst attributeKey = retrieveSelectedAttribute(\n\t\t\tblocks[ i ].attributes\n\t\t);\n\n\t\tif ( attributeKey ) {\n\t\t\tblocks[ i ].attributes[ attributeKey ] = blocks[ i ].attributes[\n\t\t\t\tattributeKey\n\t\t\t]\n\t\t\t\t// To do: refactor this to use rich text's selection instead, so\n\t\t\t\t// we no longer have to use on this hack inserting a special\n\t\t\t\t// character.\n\t\t\t\t.toString()\n\t\t\t\t.replace( START_OF_SELECTED_AREA, '' );\n\t\t\treturn [ blocks[ i ].clientId, attributeKey, 0, 0 ];\n\t\t}\n\n\t\tconst nestedSelection = findSelection( blocks[ i ].innerBlocks );\n\n\t\tif ( nestedSelection ) {\n\t\t\treturn nestedSelection;\n\t\t}\n\t}\n\n\treturn [];\n}\n\nexport function useInputRules( props ) {\n\tconst {\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\t__unstableMarkAutomaticChange,\n\t} = useDispatch( blockEditorStore );\n\tconst propsRef = useRef( props );\n\tpropsRef.current = props;\n\treturn useRefEffect( ( element ) => {\n\t\tfunction inputRule() {\n\t\t\tconst { getValue, onReplace, selectionChange } = propsRef.current;\n\n\t\t\tif ( ! onReplace ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// We must use getValue() here because value may be update\n\t\t\t// asynchronously.\n\t\t\tconst value = getValue();\n\t\t\tconst { start, text } = value;\n\t\t\tconst characterBefore = text.slice( start - 1, start );\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, start ).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 = toHTMLString( {\n\t\t\t\tvalue: insert( value, START_OF_SELECTED_AREA, 0, start ),\n\t\t\t} );\n\t\t\tconst block = transformation.transform( content );\n\n\t\t\tselectionChange( ...findSelection( [ block ] ) );\n\t\t\tonReplace( [ block ] );\n\t\t\t__unstableMarkAutomaticChange();\n\n\t\t\treturn true;\n\t\t}\n\n\t\tfunction onInput( event ) {\n\t\t\tconst { inputType, type } = event;\n\t\t\tconst {\n\t\t\t\tgetValue,\n\t\t\t\tonChange,\n\t\t\t\t__unstableAllowPrefixTransformations,\n\t\t\t\tformatTypes,\n\t\t\t} = propsRef.current;\n\n\t\t\t// Only run input rules when inserting text.\n\t\t\tif ( inputType !== 'insertText' && type !== 'compositionend' ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( __unstableAllowPrefixTransformations && inputRule() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst value = getValue();\n\t\t\tconst transformed = formatTypes.reduce(\n\t\t\t\t( accumlator, { __unstableInputRule } ) => {\n\t\t\t\t\tif ( __unstableInputRule ) {\n\t\t\t\t\t\taccumlator = __unstableInputRule( accumlator );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn accumlator;\n\t\t\t\t},\n\t\t\t\tpreventEventDiscovery( value )\n\t\t\t);\n\n\t\t\tif ( transformed !== value ) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t\tonChange( {\n\t\t\t\t\t...transformed,\n\t\t\t\t\tactiveFormats: value.activeFormats,\n\t\t\t\t} );\n\t\t\t\t__unstableMarkAutomaticChange();\n\t\t\t}\n\t\t}\n\n\t\telement.addEventListener( 'input', onInput );\n\t\telement.addEventListener( 'compositionend', onInput );\n\t\treturn () => {\n\t\t\telement.removeEventListener( 'input', onInput );\n\t\t\telement.removeEventListener( 'compositionend', onInput );\n\t\t};\n\t}, [] );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WordPress dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { useRefEffect } from '@wordpress/compose';
|
|
5
|
-
import { useDispatch } from '@wordpress/data';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Internal dependencies
|
|
9
|
-
*/
|
|
10
|
-
import { store as blockEditorStore } from '../../store';
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* When the browser is about to auto correct, add an undo level so the user can
|
|
14
|
-
* revert the change.
|
|
15
|
-
*/
|
|
16
|
-
export function useInsertReplacementText() {
|
|
17
|
-
const {
|
|
18
|
-
__unstableMarkLastChangeAsPersistent
|
|
19
|
-
} = useDispatch(blockEditorStore);
|
|
20
|
-
return useRefEffect(element => {
|
|
21
|
-
function onInput(event) {
|
|
22
|
-
if (event.inputType === 'insertReplacementText') {
|
|
23
|
-
__unstableMarkLastChangeAsPersistent();
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
element.addEventListener('beforeinput', onInput);
|
|
27
|
-
return () => {
|
|
28
|
-
element.removeEventListener('beforeinput', onInput);
|
|
29
|
-
};
|
|
30
|
-
}, []);
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=use-insert-replacement-text.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["useRefEffect","useDispatch","store","blockEditorStore","useInsertReplacementText","__unstableMarkLastChangeAsPersistent","element","onInput","event","inputType","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/rich-text/use-insert-replacement-text.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRefEffect } from '@wordpress/compose';\nimport { useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * When the browser is about to auto correct, add an undo level so the user can\n * revert the change.\n */\nexport function useInsertReplacementText() {\n\tconst { __unstableMarkLastChangeAsPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\treturn useRefEffect( ( element ) => {\n\t\tfunction onInput( event ) {\n\t\t\tif ( event.inputType === 'insertReplacementText' ) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t}\n\n\t\telement.addEventListener( 'beforeinput', onInput );\n\t\treturn () => {\n\t\t\telement.removeEventListener( 'beforeinput', onInput );\n\t\t};\n\t}, [] );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,YAAY,QAAQ,oBAAoB;AACjD,SAASC,WAAW,QAAQ,iBAAiB;;AAE7C;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;;AAEvD;AACA;AACA;AACA;AACA,OAAO,SAASC,wBAAwBA,CAAA,EAAG;EAC1C,MAAM;IAAEC;EAAqC,CAAC,GAC7CJ,WAAW,CAAEE,gBAAiB,CAAC;EAChC,OAAOH,YAAY,CAAIM,OAAO,IAAM;IACnC,SAASC,OAAOA,CAAEC,KAAK,EAAG;MACzB,IAAKA,KAAK,CAACC,SAAS,KAAK,uBAAuB,EAAG;QAClDJ,oCAAoC,CAAC,CAAC;MACvC;IACD;IAEAC,OAAO,CAACI,gBAAgB,CAAE,aAAa,EAAEH,OAAQ,CAAC;IAClD,OAAO,MAAM;MACZD,OAAO,CAACK,mBAAmB,CAAE,aAAa,EAAEJ,OAAQ,CAAC;IACtD,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;AACR","ignoreList":[]}
|