@wordpress/block-editor 12.15.0 → 12.16.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 +2 -0
- package/README.md +9 -4
- package/build/components/block-canvas/index.js +22 -6
- package/build/components/block-canvas/index.js.map +1 -1
- package/build/components/block-card/index.js +1 -1
- package/build/components/block-card/index.js.map +1 -1
- package/build/components/block-controls/hook.js +3 -23
- package/build/components/block-controls/hook.js.map +1 -1
- package/build/components/block-edit/context.js +5 -1
- package/build/components/block-edit/context.js.map +1 -1
- package/build/components/block-edit/index.js +18 -9
- package/build/components/block-edit/index.js.map +1 -1
- package/build/components/block-info-slot-fill/index.js +3 -4
- package/build/components/block-info-slot-fill/index.js.map +1 -1
- package/build/components/block-list/block.js +28 -9
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +14 -5
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +61 -18
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-focus-first-element.js +4 -29
- package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build/components/block-list/use-block-props/use-is-hovered.js +4 -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-selected-block-event-handlers.js +4 -2
- package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
- package/build/components/block-patterns-list/index.js +1 -1
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-removal-warning-modal/index.js +2 -9
- package/build/components/block-removal-warning-modal/index.js.map +1 -1
- package/build/components/block-rename/modal.js +3 -0
- package/build/components/block-rename/modal.js.map +1 -1
- package/build/components/block-settings/container.native.js +6 -4
- package/build/components/block-settings/container.native.js.map +1 -1
- package/build/components/block-styles/index.js +1 -1
- package/build/components/block-styles/index.js.map +1 -1
- package/build/components/block-styles/index.native.js +3 -2
- package/build/components/block-styles/index.native.js.map +1 -1
- package/build/components/block-toolbar/index.js +89 -27
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/block-toolbar-breadcrumb.js +49 -0
- package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
- package/build/components/block-tools/block-toolbar-popover.js +86 -0
- package/build/components/block-tools/block-toolbar-popover.js.map +1 -0
- package/build/components/block-tools/index.js +27 -24
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-types-list/index.native.js +4 -3
- package/build/components/block-types-list/index.native.js.map +1 -1
- package/build/components/block-variation-picker/index.native.js +2 -1
- package/build/components/block-variation-picker/index.native.js.map +1 -1
- package/build/components/colors-gradients/control.js +28 -17
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/duotone-control/index.js +1 -4
- package/build/components/duotone-control/index.js.map +1 -1
- package/build/components/global-styles/color-panel.js +22 -20
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +9 -3
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +20 -31
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/image-link-destinations/index.native.js +118 -0
- package/build/components/image-link-destinations/index.native.js.map +1 -0
- package/build/components/index.native.js +8 -0
- package/build/components/index.native.js.map +1 -1
- package/build/components/inserter/media-tab/media-panel.js +2 -2
- package/build/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build/components/inserter/menu.js +14 -7
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/preview-panel.js +2 -2
- package/build/components/inserter/preview-panel.js.map +1 -1
- package/build/components/inserter-button/index.native.js +98 -0
- package/build/components/inserter-button/index.native.js.map +1 -0
- package/build/components/inserter-button/sparkles.js +23 -0
- package/build/components/inserter-button/sparkles.js.map +1 -0
- package/build/components/inserter-draggable-blocks/index.js +8 -4
- package/build/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build/components/inspector-controls/fill.js +3 -3
- package/build/components/inspector-controls/fill.js.map +1 -1
- package/build/components/inspector-controls/fill.native.js +3 -3
- package/build/components/inspector-controls/fill.native.js.map +1 -1
- package/build/components/navigable-toolbar/index.js +2 -2
- package/build/components/navigable-toolbar/index.js.map +1 -1
- package/build/components/preview-options/index.js +6 -62
- package/build/components/preview-options/index.js.map +1 -1
- package/build/components/rich-text/content.js +26 -23
- package/build/components/rich-text/content.js.map +1 -1
- package/build/components/rich-text/get-rich-text-values.js +2 -1
- package/build/components/rich-text/get-rich-text-values.js.map +1 -1
- package/build/components/rich-text/index.js +2 -30
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +9 -16
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/native/get-format-colors.native.js +22 -24
- package/build/components/rich-text/native/get-format-colors.native.js.map +1 -1
- package/build/components/rich-text/native/index.native.js +7 -34
- package/build/components/rich-text/native/index.native.js.map +1 -1
- package/build/components/rich-text/use-input-rules.js +5 -1
- package/build/components/rich-text/use-input-rules.js.map +1 -1
- package/build/components/rich-text/with-deprecations.js +50 -0
- package/build/components/rich-text/with-deprecations.js.map +1 -0
- package/build/components/use-block-drop-zone/index.js +70 -8
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-on-block-drop/index.js +1 -1
- package/build/components/use-on-block-drop/index.js.map +1 -1
- package/build/components/use-resize-canvas/index.js +4 -1
- package/build/components/use-resize-canvas/index.js.map +1 -1
- package/build/components/use-settings/index.js +14 -0
- package/build/components/use-settings/index.js.map +1 -1
- package/build/hooks/align.js +20 -68
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/align.native.js +11 -1
- package/build/hooks/align.native.js.map +1 -1
- package/build/hooks/anchor.js +13 -29
- package/build/hooks/anchor.js.map +1 -1
- package/build/hooks/background.js +28 -31
- package/build/hooks/background.js.map +1 -1
- package/build/hooks/block-hooks.js +24 -32
- package/build/hooks/block-hooks.js.map +1 -1
- package/build/hooks/block-renaming.js +18 -22
- package/build/hooks/block-renaming.js.map +1 -1
- package/build/hooks/border.js +58 -80
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color.js +76 -89
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/content-lock-ui.js +29 -29
- package/build/hooks/content-lock-ui.js.map +1 -1
- package/build/hooks/custom-class-name.js +12 -29
- package/build/hooks/custom-class-name.js.map +1 -1
- package/build/hooks/custom-fields.js +24 -38
- package/build/hooks/custom-fields.js.map +1 -1
- package/build/hooks/dimensions.js +21 -17
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/duotone.js +31 -61
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/font-family.js +16 -25
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/font-size.js +51 -119
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/index.js +25 -14
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/index.native.js +10 -3
- package/build/hooks/index.native.js.map +1 -1
- package/build/hooks/layout-child.js +68 -0
- package/build/hooks/layout-child.js.map +1 -0
- package/build/hooks/layout.js +16 -101
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/padding.js +2 -2
- package/build/hooks/padding.js.map +1 -1
- package/build/hooks/position.js +40 -62
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/style.js +51 -88
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/typography.js +34 -14
- package/build/hooks/typography.js.map +1 -1
- package/build/hooks/utils.js +154 -7
- package/build/hooks/utils.js.map +1 -1
- package/build/private-apis.js +0 -2
- package/build/private-apis.js.map +1 -1
- package/build/store/private-actions.js +8 -0
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +34 -0
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +8 -0
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +10 -60
- package/build/store/selectors.js.map +1 -1
- package/build/store/utils.js +66 -0
- package/build/store/utils.js.map +1 -0
- package/build/utils/object.js +21 -61
- package/build/utils/object.js.map +1 -1
- package/build/utils/selection.js +9 -1
- package/build/utils/selection.js.map +1 -1
- package/build-module/components/block-canvas/index.js +23 -7
- package/build-module/components/block-canvas/index.js.map +1 -1
- package/build-module/components/block-card/index.js +1 -1
- package/build-module/components/block-card/index.js.map +1 -1
- package/build-module/components/block-controls/hook.js +4 -24
- package/build-module/components/block-controls/hook.js.map +1 -1
- package/build-module/components/block-edit/context.js +2 -0
- package/build-module/components/block-edit/context.js.map +1 -1
- package/build-module/components/block-edit/index.js +19 -10
- package/build-module/components/block-edit/index.js.map +1 -1
- package/build-module/components/block-info-slot-fill/index.js +3 -3
- package/build-module/components/block-info-slot-fill/index.js.map +1 -1
- package/build-module/components/block-list/block.js +29 -10
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +14 -5
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +62 -19
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js +4 -29
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-is-hovered.js +4 -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-selected-block-event-handlers.js +4 -2
- package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js +1 -1
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-removal-warning-modal/index.js +3 -10
- package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
- package/build-module/components/block-rename/modal.js +3 -0
- package/build-module/components/block-rename/modal.js.map +1 -1
- package/build-module/components/block-settings/container.native.js +4 -2
- package/build-module/components/block-settings/container.native.js.map +1 -1
- package/build-module/components/block-styles/index.js +1 -1
- package/build-module/components/block-styles/index.js.map +1 -1
- package/build-module/components/block-styles/index.native.js +3 -2
- package/build-module/components/block-styles/index.native.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +88 -25
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js +41 -0
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
- package/build-module/components/block-tools/block-toolbar-popover.js +76 -0
- package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -0
- package/build-module/components/block-tools/index.js +27 -24
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-types-list/index.native.js +2 -1
- package/build-module/components/block-types-list/index.native.js.map +1 -1
- package/build-module/components/block-variation-picker/index.native.js +2 -1
- package/build-module/components/block-variation-picker/index.native.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +29 -18
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/duotone-control/index.js +1 -4
- package/build-module/components/duotone-control/index.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +23 -21
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +10 -4
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +20 -31
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/image-link-destinations/index.native.js +109 -0
- package/build-module/components/image-link-destinations/index.native.js.map +1 -0
- package/build-module/components/index.native.js +1 -0
- package/build-module/components/index.native.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-panel.js +1 -1
- package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build-module/components/inserter/menu.js +14 -7
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/preview-panel.js +2 -2
- package/build-module/components/inserter/preview-panel.js.map +1 -1
- package/build-module/components/inserter-button/index.native.js +89 -0
- package/build-module/components/inserter-button/index.native.js.map +1 -0
- package/build-module/components/inserter-button/sparkles.js +15 -0
- package/build-module/components/inserter-button/sparkles.js.map +1 -0
- package/build-module/components/inserter-draggable-blocks/index.js +9 -5
- package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build-module/components/inspector-controls/fill.js +3 -3
- package/build-module/components/inspector-controls/fill.js.map +1 -1
- package/build-module/components/inspector-controls/fill.native.js +3 -3
- package/build-module/components/inspector-controls/fill.native.js.map +1 -1
- package/build-module/components/navigable-toolbar/index.js +2 -2
- package/build-module/components/navigable-toolbar/index.js.map +1 -1
- package/build-module/components/preview-options/index.js +6 -62
- package/build-module/components/preview-options/index.js.map +1 -1
- package/build-module/components/rich-text/content.js +25 -21
- package/build-module/components/rich-text/content.js.map +1 -1
- package/build-module/components/rich-text/get-rich-text-values.js +2 -1
- package/build-module/components/rich-text/get-rich-text-values.js.map +1 -1
- package/build-module/components/rich-text/index.js +4 -32
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +10 -18
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/native/get-format-colors.native.js +22 -24
- package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -1
- package/build-module/components/rich-text/native/index.native.js +7 -34
- package/build-module/components/rich-text/native/index.native.js.map +1 -1
- package/build-module/components/rich-text/use-input-rules.js +5 -1
- package/build-module/components/rich-text/use-input-rules.js.map +1 -1
- package/build-module/components/rich-text/with-deprecations.js +42 -0
- package/build-module/components/rich-text/with-deprecations.js.map +1 -0
- package/build-module/components/use-block-drop-zone/index.js +69 -8
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-on-block-drop/index.js +1 -1
- package/build-module/components/use-on-block-drop/index.js.map +1 -1
- package/build-module/components/use-resize-canvas/index.js +4 -1
- package/build-module/components/use-resize-canvas/index.js.map +1 -1
- package/build-module/components/use-settings/index.js +13 -1
- package/build-module/components/use-settings/index.js.map +1 -1
- package/build-module/hooks/align.js +19 -66
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/align.native.js +1 -0
- package/build-module/hooks/align.native.js.map +1 -1
- package/build-module/hooks/anchor.js +11 -26
- package/build-module/hooks/anchor.js.map +1 -1
- package/build-module/hooks/background.js +26 -28
- package/build-module/hooks/background.js.map +1 -1
- package/build-module/hooks/block-hooks.js +22 -30
- package/build-module/hooks/block-hooks.js.map +1 -1
- package/build-module/hooks/block-renaming.js +17 -21
- package/build-module/hooks/block-renaming.js.map +1 -1
- package/build-module/hooks/border.js +57 -78
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color.js +74 -86
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/content-lock-ui.js +27 -27
- package/build-module/hooks/content-lock-ui.js.map +1 -1
- package/build-module/hooks/custom-class-name.js +11 -27
- package/build-module/hooks/custom-class-name.js.map +1 -1
- package/build-module/hooks/custom-fields.js +20 -39
- package/build-module/hooks/custom-fields.js.map +1 -1
- package/build-module/hooks/dimensions.js +21 -16
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/duotone.js +30 -61
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/font-family.js +14 -23
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/font-size.js +49 -119
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/index.js +18 -14
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/index.native.js +5 -3
- package/build-module/hooks/index.native.js.map +1 -1
- package/build-module/hooks/layout-child.js +60 -0
- package/build-module/hooks/layout-child.js.map +1 -0
- package/build-module/hooks/layout.js +13 -98
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/padding.js +2 -2
- package/build-module/hooks/padding.js.map +1 -1
- package/build-module/hooks/position.js +38 -59
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/style.js +51 -84
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/typography.js +33 -12
- package/build-module/hooks/typography.js.map +1 -1
- package/build-module/hooks/utils.js +149 -6
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/private-apis.js +0 -2
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/private-actions.js +7 -0
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +33 -1
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +8 -0
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +3 -53
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/store/utils.js +56 -0
- package/build-module/store/utils.js.map +1 -0
- package/build-module/utils/object.js +21 -60
- package/build-module/utils/object.js.map +1 -1
- package/build-module/utils/selection.js +9 -1
- package/build-module/utils/selection.js.map +1 -1
- package/build-style/style-rtl.css +113 -293
- package/build-style/style.css +113 -293
- package/package.json +31 -31
- package/src/components/block-canvas/index.js +31 -17
- package/src/components/block-caption/README.md +2 -2
- package/src/components/block-card/index.js +5 -3
- package/src/components/block-card/style.scss +7 -3
- package/src/components/block-controls/hook.js +8 -30
- package/src/components/block-controls/test/index.js +3 -3
- package/src/components/block-edit/context.js +3 -0
- package/src/components/block-edit/index.js +36 -10
- package/src/components/block-info-slot-fill/index.js +6 -3
- package/src/components/block-inspector/style.scss +0 -4
- package/src/components/block-list/block.js +39 -5
- package/src/components/block-list/block.native.js +18 -4
- package/src/components/block-list/use-block-props/index.js +74 -21
- package/src/components/block-list/use-block-props/use-focus-first-element.js +1 -34
- package/src/components/block-list/use-block-props/use-is-hovered.js +2 -13
- package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +1 -5
- package/src/components/block-patterns-list/index.js +1 -1
- package/src/components/block-removal-warning-modal/index.js +7 -14
- package/src/components/block-rename/modal.js +7 -1
- package/src/components/block-settings/container.native.js +3 -5
- package/src/components/block-styles/index.js +1 -1
- package/src/components/block-styles/index.native.js +4 -2
- package/src/components/block-styles/style.scss +0 -11
- package/src/components/block-switcher/test/__snapshots__/index.js.snap +3 -1
- package/src/components/block-toolbar/index.js +180 -95
- package/src/components/block-toolbar/style.scss +50 -66
- package/src/components/block-tools/block-toolbar-breadcrumb.js +46 -0
- package/src/components/block-tools/block-toolbar-popover.js +90 -0
- package/src/components/block-tools/index.js +42 -29
- package/src/components/block-tools/style.scss +60 -172
- package/src/components/block-types-list/index.native.js +2 -1
- package/src/components/block-variation-picker/index.native.js +1 -1
- package/src/components/colors-gradients/control.js +49 -30
- package/src/components/colors-gradients/style.scss +0 -7
- package/src/components/duotone-control/index.js +2 -5
- package/src/components/duotone-control/style.scss +1 -6
- package/src/components/global-styles/color-panel.js +34 -25
- package/src/components/global-styles/filters-panel.js +8 -4
- package/src/components/global-styles/typography-panel.js +23 -43
- package/src/components/image-link-destinations/index.native.js +152 -0
- package/src/components/image-link-destinations/style.native.scss +16 -0
- package/src/components/index.native.js +1 -0
- package/src/components/inner-blocks/README.md +13 -2
- package/src/components/inserter/media-tab/media-panel.js +1 -1
- package/src/components/inserter/menu.js +16 -8
- package/src/components/inserter/preview-panel.js +2 -2
- package/src/components/inserter/style.scss +15 -17
- package/src/components/inserter-button/README.md +62 -0
- package/src/components/inserter-button/index.native.js +116 -0
- package/src/components/inserter-button/sparkles.js +15 -0
- package/src/components/inserter-button/style.native.scss +72 -0
- package/src/components/inserter-draggable-blocks/index.js +18 -5
- package/src/components/inspector-controls/fill.js +6 -3
- package/src/components/inspector-controls/fill.native.js +6 -3
- package/src/components/link-control/style.scss +1 -1
- package/src/components/link-control/test/index.js +1 -1
- package/src/components/navigable-toolbar/README.md +2 -0
- package/src/components/navigable-toolbar/index.js +2 -2
- package/src/components/preview-options/index.js +6 -86
- package/src/components/rich-text/content.js +27 -20
- package/src/components/rich-text/get-rich-text-values.js +6 -1
- package/src/components/rich-text/index.js +5 -46
- package/src/components/rich-text/index.native.js +8 -25
- package/src/components/rich-text/native/get-format-colors.native.js +33 -40
- package/src/components/rich-text/native/index.native.js +7 -48
- package/src/components/rich-text/use-input-rules.js +6 -1
- package/src/components/rich-text/with-deprecations.js +51 -0
- package/src/components/use-block-drop-zone/index.js +114 -14
- package/src/components/use-on-block-drop/index.js +2 -1
- package/src/components/use-resize-canvas/README.md +3 -3
- package/src/components/use-resize-canvas/index.js +4 -1
- package/src/components/use-settings/index.js +15 -1
- package/src/hooks/align.js +15 -76
- package/src/hooks/align.native.js +1 -0
- package/src/hooks/anchor.js +13 -33
- package/src/hooks/background.js +28 -23
- package/src/hooks/block-hooks.js +22 -51
- package/src/hooks/block-renaming.js +23 -37
- package/src/hooks/border.js +67 -118
- package/src/hooks/color.js +100 -132
- package/src/hooks/content-lock-ui.js +110 -122
- package/src/hooks/custom-class-name.js +8 -40
- package/src/hooks/custom-fields.js +20 -47
- package/src/hooks/dimensions.js +20 -16
- package/src/hooks/duotone.js +70 -127
- package/src/hooks/font-family.js +10 -29
- package/src/hooks/font-size.js +66 -162
- package/src/hooks/index.js +42 -14
- package/src/hooks/index.native.js +6 -3
- package/src/hooks/layout-child.js +53 -0
- package/src/hooks/layout.js +13 -102
- package/src/hooks/padding.js +2 -2
- package/src/hooks/position.js +50 -90
- package/src/hooks/style.js +117 -187
- package/src/hooks/test/align.js +1 -178
- package/src/hooks/typography.js +20 -16
- package/src/hooks/utils.js +187 -6
- package/src/private-apis.js +0 -2
- package/src/store/private-actions.js +8 -0
- package/src/store/private-selectors.js +45 -0
- package/src/store/reducer.js +8 -0
- package/src/store/selectors.js +5 -69
- package/src/store/utils.js +74 -0
- package/src/style.scss +0 -2
- package/src/utils/object.js +18 -69
- package/src/utils/selection.js +9 -2
- package/build/components/block-list/use-block-props/use-block-class-names.js +0 -67
- package/build/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
- package/build/components/block-list/use-block-props/use-block-custom-class-name.js +0 -46
- package/build/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
- package/build/components/block-list/use-block-props/use-block-default-class-name.js +0 -37
- package/build/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
- package/build/components/block-tools/back-compat.js +0 -45
- package/build/components/block-tools/back-compat.js.map +0 -1
- package/build/components/block-tools/block-contextual-toolbar.js +0 -91
- package/build/components/block-tools/block-contextual-toolbar.js.map +0 -1
- package/build/components/block-tools/selected-block-tools.js +0 -113
- package/build/components/block-tools/selected-block-tools.js.map +0 -1
- package/build/components/inserter/hooks/use-debounced-input.js +0 -22
- package/build/components/inserter/hooks/use-debounced-input.js.map +0 -1
- package/build/components/use-display-block-controls/index.js +0 -39
- package/build/components/use-display-block-controls/index.js.map +0 -1
- package/build/components/use-display-block-controls/index.native.js +0 -39
- package/build/components/use-display-block-controls/index.native.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-block-class-names.js +0 -60
- package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js +0 -40
- package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-block-default-class-name.js +0 -31
- package/build-module/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
- package/build-module/components/block-tools/back-compat.js +0 -35
- package/build-module/components/block-tools/back-compat.js.map +0 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js +0 -83
- package/build-module/components/block-tools/block-contextual-toolbar.js.map +0 -1
- package/build-module/components/block-tools/selected-block-tools.js +0 -105
- package/build-module/components/block-tools/selected-block-tools.js.map +0 -1
- package/build-module/components/inserter/hooks/use-debounced-input.js +0 -15
- package/build-module/components/inserter/hooks/use-debounced-input.js.map +0 -1
- package/build-module/components/use-display-block-controls/index.js +0 -32
- package/build-module/components/use-display-block-controls/index.js.map +0 -1
- package/build-module/components/use-display-block-controls/index.native.js +0 -32
- package/build-module/components/use-display-block-controls/index.native.js.map +0 -1
- package/src/components/block-list/use-block-props/use-block-class-names.js +0 -66
- package/src/components/block-list/use-block-props/use-block-custom-class-name.js +0 -44
- package/src/components/block-list/use-block-props/use-block-default-class-name.js +0 -35
- package/src/components/block-parent-selector/style.scss +0 -11
- package/src/components/block-tools/back-compat.js +0 -35
- package/src/components/block-tools/block-contextual-toolbar.js +0 -100
- package/src/components/block-tools/selected-block-tools.js +0 -127
- package/src/components/inserter/hooks/use-debounced-input.js +0 -18
- package/src/components/preview-options/README.md +0 -94
- package/src/components/preview-options/style.scss +0 -64
- package/src/components/use-display-block-controls/index.js +0 -36
- package/src/components/use-display-block-controls/index.native.js +0 -37
- package/src/hooks/test/color.js +0 -112
|
@@ -23,12 +23,13 @@ import { RemoveBrowserShortcuts } from './remove-browser-shortcuts';
|
|
|
23
23
|
import { filePasteHandler } from './file-paste-handler';
|
|
24
24
|
import FormatToolbarContainer from './format-toolbar-container';
|
|
25
25
|
import { store as blockEditorStore } from '../../store';
|
|
26
|
-
import { addActiveFormats,
|
|
26
|
+
import { addActiveFormats, getAllowedFormats, createLinkInParagraph } from './utils';
|
|
27
27
|
import EmbedHandlerPicker from './embed-handler-picker';
|
|
28
28
|
import { Content } from './content';
|
|
29
29
|
import RichText from './native';
|
|
30
|
+
import { withDeprecations } from './with-deprecations';
|
|
30
31
|
const classes = 'block-editor-rich-text__editable';
|
|
31
|
-
function RichTextWrapper({
|
|
32
|
+
export function RichTextWrapper({
|
|
32
33
|
children,
|
|
33
34
|
tagName,
|
|
34
35
|
start,
|
|
@@ -36,7 +37,6 @@ function RichTextWrapper({
|
|
|
36
37
|
value: originalValue,
|
|
37
38
|
onChange: originalOnChange,
|
|
38
39
|
isSelected: originalIsSelected,
|
|
39
|
-
multiline,
|
|
40
40
|
inlineToolbar,
|
|
41
41
|
wrapperClassName,
|
|
42
42
|
autocompleters,
|
|
@@ -58,7 +58,6 @@ function RichTextWrapper({
|
|
|
58
58
|
disableLineBreaks,
|
|
59
59
|
unstableOnFocus,
|
|
60
60
|
__unstableAllowPrefixTransformations,
|
|
61
|
-
__unstableMultilineRootTag,
|
|
62
61
|
// Native props.
|
|
63
62
|
__unstableMobileNoFocusOnMount,
|
|
64
63
|
deleteEnter,
|
|
@@ -150,7 +149,6 @@ function RichTextWrapper({
|
|
|
150
149
|
selectionChange,
|
|
151
150
|
__unstableMarkAutomaticChange
|
|
152
151
|
} = useDispatch(blockEditorStore);
|
|
153
|
-
const multilineTag = getMultilineTag(multiline);
|
|
154
152
|
const adjustedAllowedFormats = getAllowedFormats({
|
|
155
153
|
allowedFormats,
|
|
156
154
|
disableFormats
|
|
@@ -214,8 +212,7 @@ function RichTextWrapper({
|
|
|
214
212
|
// with e.g. the enter key.
|
|
215
213
|
if (!hasPastedBlocks || !isEmpty(before)) {
|
|
216
214
|
blocks.push(onSplit(toHTMLString({
|
|
217
|
-
value: before
|
|
218
|
-
multilineTag
|
|
215
|
+
value: before
|
|
219
216
|
}), !isAfterOriginal));
|
|
220
217
|
lastPastedBlockIndex += 1;
|
|
221
218
|
}
|
|
@@ -232,8 +229,7 @@ function RichTextWrapper({
|
|
|
232
229
|
// empty, the middle block is enough to set focus in.
|
|
233
230
|
if (hasPastedBlocks ? !isEmpty(after) : !onSplitMiddle || !isEmpty(after)) {
|
|
234
231
|
blocks.push(onSplit(toHTMLString({
|
|
235
|
-
value: after
|
|
236
|
-
multilineTag
|
|
232
|
+
value: after
|
|
237
233
|
}), isAfterOriginal));
|
|
238
234
|
}
|
|
239
235
|
|
|
@@ -245,7 +241,7 @@ function RichTextWrapper({
|
|
|
245
241
|
// Otherwise, retain the default value.
|
|
246
242
|
const initialPosition = hasPastedBlocks ? -1 : 0;
|
|
247
243
|
onReplace(blocks, indexToSelect, initialPosition);
|
|
248
|
-
}, [onReplace, onSplit,
|
|
244
|
+
}, [onReplace, onSplit, onSplitMiddle]);
|
|
249
245
|
const onEnter = useCallback(({
|
|
250
246
|
value,
|
|
251
247
|
onChange,
|
|
@@ -296,7 +292,7 @@ function RichTextWrapper({
|
|
|
296
292
|
}
|
|
297
293
|
},
|
|
298
294
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
299
|
-
[onReplace, onSplit, __unstableMarkAutomaticChange,
|
|
295
|
+
[onReplace, onSplit, __unstableMarkAutomaticChange, splitValue, onSplitAtEnd]);
|
|
300
296
|
const onPaste = useCallback(({
|
|
301
297
|
value,
|
|
302
298
|
onChange,
|
|
@@ -312,8 +308,6 @@ function RichTextWrapper({
|
|
|
312
308
|
if (isInternal) {
|
|
313
309
|
const pastedValue = create({
|
|
314
310
|
html,
|
|
315
|
-
multilineTag,
|
|
316
|
-
multilineWrapperTags: multilineTag === 'li' ? ['ul', 'ol'] : undefined,
|
|
317
311
|
preserveWhiteSpace
|
|
318
312
|
});
|
|
319
313
|
addActiveFormats(pastedValue, activeFormats);
|
|
@@ -394,7 +388,7 @@ function RichTextWrapper({
|
|
|
394
388
|
splitValue(value, content);
|
|
395
389
|
}
|
|
396
390
|
}
|
|
397
|
-
}, [tagName, onReplace, onSplit, splitValue, __unstableEmbedURLOnPaste,
|
|
391
|
+
}, [tagName, onReplace, onSplit, splitValue, __unstableEmbedURLOnPaste, preserveWhiteSpace, pastePlainText]);
|
|
398
392
|
const inputRule = useCallback((value, valueToFormat) => {
|
|
399
393
|
if (!onReplace) {
|
|
400
394
|
return;
|
|
@@ -447,7 +441,6 @@ function RichTextWrapper({
|
|
|
447
441
|
onPaste: onPaste,
|
|
448
442
|
__unstableIsSelected: isSelected,
|
|
449
443
|
__unstableInputRule: inputRule,
|
|
450
|
-
__unstableMultilineTag: multilineTag,
|
|
451
444
|
__unstableOnEnterFormattedText: enterFormattedText,
|
|
452
445
|
__unstableOnExitFormattedText: exitFormattedText,
|
|
453
446
|
__unstableOnCreateUndoLevel: __unstableMarkLastChangeAsPersistent,
|
|
@@ -458,8 +451,7 @@ function RichTextWrapper({
|
|
|
458
451
|
preserveWhiteSpace: preserveWhiteSpace,
|
|
459
452
|
disabled: disabled,
|
|
460
453
|
unstableOnFocus: unstableOnFocus,
|
|
461
|
-
__unstableAllowPrefixTransformations: __unstableAllowPrefixTransformations
|
|
462
|
-
__unstableMultilineRootTag: __unstableMultilineRootTag
|
|
454
|
+
__unstableAllowPrefixTransformations: __unstableAllowPrefixTransformations
|
|
463
455
|
// Native props.
|
|
464
456
|
,
|
|
465
457
|
blockIsSelected: originalIsSelected !== undefined ? originalIsSelected : blockIsSelected,
|
|
@@ -532,7 +524,7 @@ function RichTextWrapper({
|
|
|
532
524
|
ref: embedHandlerPickerRef
|
|
533
525
|
})));
|
|
534
526
|
}
|
|
535
|
-
const ForwardedRichTextContainer = forwardRef(RichTextWrapper);
|
|
527
|
+
const ForwardedRichTextContainer = withDeprecations(forwardRef(RichTextWrapper));
|
|
536
528
|
ForwardedRichTextContainer.Content = Content;
|
|
537
529
|
ForwardedRichTextContainer.isEmpty = value => {
|
|
538
530
|
return !value || value.length === 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["classnames","Platform","useRef","useCallback","forwardRef","useDispatch","useSelect","pasteHandler","children","childrenSource","getBlockTransforms","findTransform","isUnmodifiedDefaultBlock","useInstanceId","useMergeRefs","__unstableCreateElement","isEmpty","insert","remove","create","split","toHTMLString","slice","isURL","Autocomplete","useBlockEditContext","RemoveBrowserShortcuts","filePasteHandler","FormatToolbarContainer","store","blockEditorStore","addActiveFormats","getMultilineTag","getAllowedFormats","createLinkInParagraph","EmbedHandlerPicker","Content","RichText","classes","RichTextWrapper","tagName","start","reversed","value","originalValue","onChange","originalOnChange","isSelected","originalIsSelected","multiline","inlineToolbar","wrapperClassName","autocompleters","onReplace","placeholder","allowedFormats","withoutInteractiveFormatting","onRemove","onMerge","onSplit","__unstableOnSplitAtEnd","onSplitAtEnd","__unstableOnSplitMiddle","onSplitMiddle","__unstableOnSplitAtDoubleLineEnd","onSplitAtDoubleLineEnd","identifier","preserveWhiteSpace","__unstablePastePlainText","pastePlainText","__unstableEmbedURLOnPaste","__unstableDisableFormats","disableFormats","disableLineBreaks","unstableOnFocus","__unstableAllowPrefixTransformations","__unstableMultilineRootTag","__unstableMobileNoFocusOnMount","deleteEnter","placeholderTextColor","textAlign","selectionColor","tagsToEliminate","disableEditingMenu","fontSize","fontFamily","fontWeight","fontStyle","minWidth","maxWidth","onBlur","setRef","disableSuggestions","disableAutocorrection","containerWidth","onEnter","onCustomEnter","props","forwardedRef","instanceId","fallbackRef","clientId","blockIsSelected","embedHandlerPickerRef","selector","select","getSelectionStart","getSelectionEnd","getSettings","didAutomaticChange","getBlock","isMultiSelecting","hasMultiSelection","selectionStart","selectionEnd","__experimentalUndo","undo","undefined","attributeKey","extraProps","OS","block","shouldBlurOnUnmount","offset","disabled","__unstableMarkLastChangeAsPersistent","enterFormattedText","exitFormattedText","selectionChange","__unstableMarkAutomaticChange","multilineTag","adjustedAllowedFormats","hasFormats","length","adjustedValue","adjustedOnChange","Array","isArray","toHTML","newValue","fromDOM","document","childNodes","onSelectionChange","selectionChangeStart","selectionChangeEnd","onDelete","isReverse","splitValue","record","pastedBlocks","blocks","before","after","hasPastedBlocks","lastPastedBlockIndex","isAfterOriginal","push","indexToSelect","initialPosition","shiftKey","canSplit","transforms","filter","type","transformation","item","regExp","test","text","transform","content","splitStart","end","splitEnd","canSplitAtEnd","onPaste","html","plainText","isInternal","files","activeFormats","pastedValue","multilineWrapperTags","HTML","mode","window","console","log","isPastedURL","trim","presentEmbedHandlerPicker","current","presentPicker","createEmbed","createLink","valueToInsert","canPasteEmbed","name","inputRule","valueToFormat","startPosition","characterBefore","trimmedTextBefore","prefixTransforms","prefix","mergedRef","createElement","ref","__unstableIsSelected","__unstableInputRule","__unstableMultilineTag","__unstableOnEnterFormattedText","__unstableOnExitFormattedText","__unstableOnCreateUndoLevel","__unstableDidAutomaticChange","__unstableUndo","id","style","nestedIsSelected","onFocus","editableProps","editableTagName","TagName","Fragment","inline","anchorRef","completers","contentRef","listBoxId","activeId","onKeyDown","className","event","ForwardedRichTextContainer","defaultProps","format","Raw","RichTextShortcut","RichTextToolbarButton","__unstableRichTextInputEvent"],"sources":["@wordpress/block-editor/src/components/rich-text/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Platform, useRef, useCallback, forwardRef } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tpasteHandler,\n\tchildren as childrenSource,\n\tgetBlockTransforms,\n\tfindTransform,\n\tisUnmodifiedDefaultBlock,\n} from '@wordpress/blocks';\nimport { useInstanceId, useMergeRefs } from '@wordpress/compose';\nimport {\n\t__unstableCreateElement,\n\tisEmpty,\n\tinsert,\n\tremove,\n\tcreate,\n\tsplit,\n\ttoHTMLString,\n\tslice,\n} from '@wordpress/rich-text';\nimport { isURL } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport Autocomplete from '../autocomplete';\nimport { useBlockEditContext } from '../block-edit';\nimport { RemoveBrowserShortcuts } from './remove-browser-shortcuts';\nimport { filePasteHandler } from './file-paste-handler';\nimport FormatToolbarContainer from './format-toolbar-container';\nimport { store as blockEditorStore } from '../../store';\nimport {\n\taddActiveFormats,\n\tgetMultilineTag,\n\tgetAllowedFormats,\n\tcreateLinkInParagraph,\n} from './utils';\nimport EmbedHandlerPicker from './embed-handler-picker';\nimport { Content } from './content';\nimport RichText from './native';\n\nconst classes = 'block-editor-rich-text__editable';\n\nfunction RichTextWrapper(\n\t{\n\t\tchildren,\n\t\ttagName,\n\t\tstart,\n\t\treversed,\n\t\tvalue: originalValue,\n\t\tonChange: originalOnChange,\n\t\tisSelected: originalIsSelected,\n\t\tmultiline,\n\t\tinlineToolbar,\n\t\twrapperClassName,\n\t\tautocompleters,\n\t\tonReplace,\n\t\tplaceholder,\n\t\tallowedFormats,\n\t\twithoutInteractiveFormatting,\n\t\tonRemove,\n\t\tonMerge,\n\t\tonSplit,\n\t\t__unstableOnSplitAtEnd: onSplitAtEnd,\n\t\t__unstableOnSplitMiddle: onSplitMiddle,\n\t\t__unstableOnSplitAtDoubleLineEnd: onSplitAtDoubleLineEnd,\n\t\tidentifier,\n\t\tpreserveWhiteSpace,\n\t\t__unstablePastePlainText: pastePlainText,\n\t\t__unstableEmbedURLOnPaste,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tdisableLineBreaks,\n\t\tunstableOnFocus,\n\t\t__unstableAllowPrefixTransformations,\n\t\t__unstableMultilineRootTag,\n\t\t// Native props.\n\t\t__unstableMobileNoFocusOnMount,\n\t\tdeleteEnter,\n\t\tplaceholderTextColor,\n\t\ttextAlign,\n\t\tselectionColor,\n\t\ttagsToEliminate,\n\t\tdisableEditingMenu,\n\t\tfontSize,\n\t\tfontFamily,\n\t\tfontWeight,\n\t\tfontStyle,\n\t\tminWidth,\n\t\tmaxWidth,\n\t\tonBlur,\n\t\tsetRef,\n\t\tdisableSuggestions,\n\t\tdisableAutocorrection,\n\t\tcontainerWidth,\n\t\tonEnter: onCustomEnter,\n\t\t...props\n\t},\n\tforwardedRef\n) {\n\tconst instanceId = useInstanceId( RichTextWrapper );\n\n\tidentifier = identifier || instanceId;\n\n\tconst fallbackRef = useRef();\n\tconst { clientId, isSelected: blockIsSelected } = useBlockEditContext();\n\tconst embedHandlerPickerRef = useRef();\n\tconst selector = ( select ) => {\n\t\tconst {\n\t\t\tgetSelectionStart,\n\t\t\tgetSelectionEnd,\n\t\t\tgetSettings,\n\t\t\tdidAutomaticChange,\n\t\t\tgetBlock,\n\t\t\tisMultiSelecting,\n\t\t\thasMultiSelection,\n\t\t} = select( blockEditorStore );\n\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\t\tconst { __experimentalUndo: undo } = getSettings();\n\n\t\tlet isSelected;\n\n\t\tif ( originalIsSelected === undefined ) {\n\t\t\tisSelected =\n\t\t\t\tselectionStart.clientId === clientId &&\n\t\t\t\tselectionStart.attributeKey === identifier;\n\t\t} else if ( originalIsSelected ) {\n\t\t\tisSelected = selectionStart.clientId === clientId;\n\t\t}\n\n\t\tlet extraProps = {};\n\t\tif ( Platform.OS === 'native' ) {\n\t\t\t// If the block of this RichText is unmodified then it's a candidate for replacing when adding a new block.\n\t\t\t// In order to fix https://github.com/wordpress-mobile/gutenberg-mobile/issues/1126, let's blur on unmount in that case.\n\t\t\t// This apparently assumes functionality the BlockHlder actually.\n\t\t\tconst block = clientId && getBlock( clientId );\n\t\t\tconst shouldBlurOnUnmount =\n\t\t\t\tblock && isSelected && isUnmodifiedDefaultBlock( block );\n\t\t\textraProps = {\n\t\t\t\tshouldBlurOnUnmount,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tselectionStart: isSelected ? selectionStart.offset : undefined,\n\t\t\tselectionEnd: isSelected ? selectionEnd.offset : undefined,\n\t\t\tisSelected,\n\t\t\tdidAutomaticChange: didAutomaticChange(),\n\t\t\tdisabled: isMultiSelecting() || hasMultiSelection(),\n\t\t\tundo,\n\t\t\t...extraProps,\n\t\t};\n\t};\n\t// This selector must run on every render so the right selection state is\n\t// retrieved from the store on merge.\n\t// To do: fix this somehow.\n\tconst {\n\t\tselectionStart,\n\t\tselectionEnd,\n\t\tisSelected,\n\t\tdidAutomaticChange,\n\t\tdisabled,\n\t\tundo,\n\t\tshouldBlurOnUnmount,\n\t} = useSelect( selector );\n\tconst {\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tenterFormattedText,\n\t\texitFormattedText,\n\t\tselectionChange,\n\t\t__unstableMarkAutomaticChange,\n\t} = useDispatch( blockEditorStore );\n\tconst multilineTag = getMultilineTag( multiline );\n\tconst adjustedAllowedFormats = getAllowedFormats( {\n\t\tallowedFormats,\n\t\tdisableFormats,\n\t} );\n\tconst hasFormats =\n\t\t! adjustedAllowedFormats || adjustedAllowedFormats.length > 0;\n\tlet adjustedValue = originalValue;\n\tlet adjustedOnChange = originalOnChange;\n\n\t// Handle deprecated format.\n\tif ( Array.isArray( originalValue ) ) {\n\t\tadjustedValue = childrenSource.toHTML( originalValue );\n\t\tadjustedOnChange = ( newValue ) =>\n\t\t\toriginalOnChange(\n\t\t\t\tchildrenSource.fromDOM(\n\t\t\t\t\t__unstableCreateElement( document, newValue ).childNodes\n\t\t\t\t)\n\t\t\t);\n\t}\n\n\tconst onSelectionChange = useCallback(\n\t\t( selectionChangeStart, selectionChangeEnd ) => {\n\t\t\tselectionChange(\n\t\t\t\tclientId,\n\t\t\t\tidentifier,\n\t\t\t\tselectionChangeStart,\n\t\t\t\tselectionChangeEnd\n\t\t\t);\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[ clientId, identifier ]\n\t);\n\n\tconst onDelete = useCallback(\n\t\t( { value, isReverse } ) => {\n\t\t\tif ( onMerge ) {\n\t\t\t\tonMerge( ! isReverse );\n\t\t\t}\n\n\t\t\t// Only handle remove on Backspace. This serves dual-purpose of being\n\t\t\t// an intentional user interaction distinguishing between Backspace and\n\t\t\t// Delete to remove the empty field, but also to avoid merge & remove\n\t\t\t// causing destruction of two fields (merge, then removed merged).\n\t\t\telse if ( onRemove && isEmpty( value ) && isReverse ) {\n\t\t\t\tonRemove( ! isReverse );\n\t\t\t}\n\t\t},\n\t\t[ onMerge, onRemove ]\n\t);\n\n\t/**\n\t * Signals to the RichText owner that the block can be replaced with two\n\t * blocks as a result of splitting the block by pressing enter, or with\n\t * blocks as a result of splitting the block by pasting block content in the\n\t * instance.\n\t *\n\t * @param {Object} record The rich text value to split.\n\t * @param {Array} pastedBlocks The pasted blocks to insert, if any.\n\t */\n\tconst splitValue = useCallback(\n\t\t( record, pastedBlocks = [] ) => {\n\t\t\tif ( ! onReplace || ! onSplit ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst blocks = [];\n\t\t\tconst [ before, after ] = split( record );\n\t\t\tconst hasPastedBlocks = pastedBlocks.length > 0;\n\t\t\tlet lastPastedBlockIndex = -1;\n\n\t\t\t// Consider the after value to be the original it is not empty and\n\t\t\t// the before value *is* empty.\n\t\t\tconst isAfterOriginal = isEmpty( before ) && ! isEmpty( after );\n\n\t\t\t// Create a block with the content before the caret if there's no pasted\n\t\t\t// blocks, or if there are pasted blocks and the value is not empty.\n\t\t\t// We do not want a leading empty block on paste, but we do if split\n\t\t\t// with e.g. the enter key.\n\t\t\tif ( ! hasPastedBlocks || ! isEmpty( before ) ) {\n\t\t\t\tblocks.push(\n\t\t\t\t\tonSplit(\n\t\t\t\t\t\ttoHTMLString( {\n\t\t\t\t\t\t\tvalue: before,\n\t\t\t\t\t\t\tmultilineTag,\n\t\t\t\t\t\t} ),\n\t\t\t\t\t\t! isAfterOriginal\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tlastPastedBlockIndex += 1;\n\t\t\t}\n\n\t\t\tif ( hasPastedBlocks ) {\n\t\t\t\tblocks.push( ...pastedBlocks );\n\t\t\t\tlastPastedBlockIndex += pastedBlocks.length;\n\t\t\t} else if ( onSplitMiddle ) {\n\t\t\t\tblocks.push( onSplitMiddle() );\n\t\t\t}\n\n\t\t\t// If there's pasted blocks, append a block with non empty content\n\t\t\t// after the caret. Otherwise, do append an empty block if there\n\t\t\t// is no `onSplitMiddle` prop, but if there is and the content is\n\t\t\t// empty, the middle block is enough to set focus in.\n\t\t\tif (\n\t\t\t\thasPastedBlocks\n\t\t\t\t\t? ! isEmpty( after )\n\t\t\t\t\t: ! onSplitMiddle || ! isEmpty( after )\n\t\t\t) {\n\t\t\t\tblocks.push(\n\t\t\t\t\tonSplit(\n\t\t\t\t\t\ttoHTMLString( {\n\t\t\t\t\t\t\tvalue: after,\n\t\t\t\t\t\t\tmultilineTag,\n\t\t\t\t\t\t} ),\n\t\t\t\t\t\tisAfterOriginal\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// If there are pasted blocks, set the selection to the last one.\n\t\t\t// Otherwise, set the selection to the second block.\n\t\t\tconst indexToSelect = hasPastedBlocks ? lastPastedBlockIndex : 1;\n\n\t\t\t// If there are pasted blocks, move the caret to the end of the selected block\n\t\t\t// Otherwise, retain the default value.\n\t\t\tconst initialPosition = hasPastedBlocks ? -1 : 0;\n\n\t\t\tonReplace( blocks, indexToSelect, initialPosition );\n\t\t},\n\t\t[ onReplace, onSplit, multilineTag, onSplitMiddle ]\n\t);\n\n\tconst onEnter = useCallback(\n\t\t( { value, onChange, shiftKey } ) => {\n\t\t\tconst canSplit = onReplace && onSplit;\n\n\t\t\tif ( onReplace ) {\n\t\t\t\tconst transforms = getBlockTransforms( 'from' ).filter(\n\t\t\t\t\t( { type } ) => type === 'enter'\n\t\t\t\t);\n\t\t\t\tconst transformation = findTransform( transforms, ( item ) => {\n\t\t\t\t\treturn item.regExp.test( value.text );\n\t\t\t\t} );\n\n\t\t\t\tif ( transformation ) {\n\t\t\t\t\tonReplace( [\n\t\t\t\t\t\ttransformation.transform( { content: value.text } ),\n\t\t\t\t\t] );\n\t\t\t\t\t__unstableMarkAutomaticChange();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( onCustomEnter ) {\n\t\t\t\tonCustomEnter();\n\t\t\t}\n\n\t\t\tconst { text, start: splitStart, end: splitEnd } = value;\n\t\t\tconst canSplitAtEnd =\n\t\t\t\tonSplitAtEnd &&\n\t\t\t\tsplitStart === splitEnd &&\n\t\t\t\tsplitEnd === text.length;\n\n\t\t\tif ( shiftKey ) {\n\t\t\t\tif ( ! disableLineBreaks ) {\n\t\t\t\t\tonChange( insert( value, '\\n' ) );\n\t\t\t\t}\n\t\t\t} else if ( canSplit ) {\n\t\t\t\tsplitValue( value );\n\t\t\t} else if ( canSplitAtEnd ) {\n\t\t\t\tonSplitAtEnd();\n\t\t\t} else if (\n\t\t\t\t// For some blocks it's desirable to split at the end of the\n\t\t\t\t// block when there are two line breaks at the end of the\n\t\t\t\t// block, so triple Enter exits the block.\n\t\t\t\tonSplitAtDoubleLineEnd &&\n\t\t\t\tsplitStart === splitEnd &&\n\t\t\t\tsplitEnd === text.length &&\n\t\t\t\ttext.slice( -2 ) === '\\n\\n'\n\t\t\t) {\n\t\t\t\tvalue.start = value.end - 2;\n\t\t\t\tonChange( remove( value ) );\n\t\t\t\tonSplitAtDoubleLineEnd();\n\t\t\t} else if ( ! disableLineBreaks ) {\n\t\t\t\tonChange( insert( value, '\\n' ) );\n\t\t\t}\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[\n\t\t\tonReplace,\n\t\t\tonSplit,\n\t\t\t__unstableMarkAutomaticChange,\n\t\t\tmultiline,\n\t\t\tsplitValue,\n\t\t\tonSplitAtEnd,\n\t\t]\n\t);\n\n\tconst onPaste = useCallback(\n\t\t( {\n\t\t\tvalue,\n\t\t\tonChange,\n\t\t\thtml,\n\t\t\tplainText,\n\t\t\tisInternal,\n\t\t\tfiles,\n\t\t\tactiveFormats,\n\t\t} ) => {\n\t\t\t// If the data comes from a rich text instance, we can directly use it\n\t\t\t// without filtering the data. The filters are only meant for externally\n\t\t\t// pasted content and remove inline styles.\n\t\t\tif ( isInternal ) {\n\t\t\t\tconst pastedValue = create( {\n\t\t\t\t\thtml,\n\t\t\t\t\tmultilineTag,\n\t\t\t\t\tmultilineWrapperTags:\n\t\t\t\t\t\tmultilineTag === 'li' ? [ 'ul', 'ol' ] : undefined,\n\t\t\t\t\tpreserveWhiteSpace,\n\t\t\t\t} );\n\t\t\t\taddActiveFormats( pastedValue, activeFormats );\n\t\t\t\tonChange( insert( value, pastedValue ) );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( pastePlainText ) {\n\t\t\t\tonChange( insert( value, create( { text: plainText } ) ) );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Only process file if no HTML is present.\n\t\t\t// Note: a pasted file may have the URL as plain text.\n\t\t\tif ( files && files.length && ! html ) {\n\t\t\t\tconst content = pasteHandler( {\n\t\t\t\t\tHTML: filePasteHandler( files ),\n\t\t\t\t\tmode: 'BLOCKS',\n\t\t\t\t\ttagName,\n\t\t\t\t\tpreserveWhiteSpace,\n\t\t\t\t} );\n\n\t\t\t\t// Allows us to ask for this information when we get a report.\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\twindow.console.log( 'Received items:\\n\\n', files );\n\n\t\t\t\tif ( onReplace && isEmpty( value ) ) {\n\t\t\t\t\tonReplace( content );\n\t\t\t\t} else {\n\t\t\t\t\tsplitValue( value, content );\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet mode = onReplace && onSplit ? 'AUTO' : 'INLINE';\n\n\t\t\tconst isPastedURL = isURL( plainText.trim() );\n\t\t\tconst presentEmbedHandlerPicker = () =>\n\t\t\t\tembedHandlerPickerRef.current?.presentPicker( {\n\t\t\t\t\tcreateEmbed: () =>\n\t\t\t\t\t\tonReplace( content, content.length - 1, -1 ),\n\t\t\t\t\tcreateLink: () =>\n\t\t\t\t\t\tcreateLinkInParagraph( plainText.trim(), onReplace ),\n\t\t\t\t} );\n\n\t\t\tif (\n\t\t\t\t__unstableEmbedURLOnPaste &&\n\t\t\t\tisEmpty( value ) &&\n\t\t\t\tisPastedURL\n\t\t\t) {\n\t\t\t\tmode = 'BLOCKS';\n\t\t\t}\n\n\t\t\tconst content = pasteHandler( {\n\t\t\t\tHTML: html,\n\t\t\t\tplainText,\n\t\t\t\tmode,\n\t\t\t\ttagName,\n\t\t\t\tpreserveWhiteSpace,\n\t\t\t} );\n\n\t\t\tif ( typeof content === 'string' ) {\n\t\t\t\tconst valueToInsert = create( { html: content } );\n\t\t\t\taddActiveFormats( valueToInsert, activeFormats );\n\t\t\t\tonChange( insert( value, valueToInsert ) );\n\t\t\t} else if ( content.length > 0 ) {\n\t\t\t\t// When an URL is pasted in an empty paragraph then the EmbedHandlerPicker should showcase options allowing the transformation of that URL\n\t\t\t\t// into either an Embed block or a link within the target paragraph. If the paragraph is non-empty, the URL is pasted as text.\n\t\t\t\tconst canPasteEmbed =\n\t\t\t\t\tisPastedURL &&\n\t\t\t\t\tcontent.length === 1 &&\n\t\t\t\t\tcontent[ 0 ].name === 'core/embed';\n\t\t\t\tif ( onReplace && isEmpty( value ) ) {\n\t\t\t\t\tif ( canPasteEmbed ) {\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tinsert( value, create( { text: plainText } ) )\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( __unstableEmbedURLOnPaste ) {\n\t\t\t\t\t\t\tpresentEmbedHandlerPicker();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tonReplace( content, content.length - 1, -1 );\n\t\t\t\t} else {\n\t\t\t\t\tif ( canPasteEmbed ) {\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tinsert( value, create( { text: plainText } ) )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tsplitValue( value, content );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\ttagName,\n\t\t\tonReplace,\n\t\t\tonSplit,\n\t\t\tsplitValue,\n\t\t\t__unstableEmbedURLOnPaste,\n\t\t\tmultilineTag,\n\t\t\tpreserveWhiteSpace,\n\t\t\tpastePlainText,\n\t\t]\n\t);\n\n\tconst inputRule = useCallback(\n\t\t( value, valueToFormat ) => {\n\t\t\tif ( ! onReplace ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { start: startPosition, text } = value;\n\t\t\tconst characterBefore = text.slice(\n\t\t\t\tstartPosition - 1,\n\t\t\t\tstartPosition\n\t\t\t);\n\n\t\t\t// The character right before the caret must be a plain space.\n\t\t\tif ( characterBefore !== ' ' ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst trimmedTextBefore = text.slice( 0, startPosition ).trim();\n\t\t\tconst prefixTransforms = getBlockTransforms( 'from' ).filter(\n\t\t\t\t( { type } ) => type === 'prefix'\n\t\t\t);\n\t\t\tconst transformation = findTransform(\n\t\t\t\tprefixTransforms,\n\t\t\t\t( { prefix } ) => {\n\t\t\t\t\treturn trimmedTextBefore === prefix;\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif ( ! transformation ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst content = valueToFormat(\n\t\t\t\tslice( value, startPosition, text.length )\n\t\t\t);\n\t\t\tconst block = transformation.transform( content );\n\n\t\t\tonReplace( [ block ] );\n\t\t\t__unstableMarkAutomaticChange();\n\t\t},\n\t\t[ onReplace, __unstableMarkAutomaticChange ]\n\t);\n\n\tconst mergedRef = useMergeRefs( [ forwardedRef, fallbackRef ] );\n\n\treturn (\n\t\t<RichText\n\t\t\tclientId={ clientId }\n\t\t\tidentifier={ identifier }\n\t\t\tref={ mergedRef }\n\t\t\tvalue={ adjustedValue }\n\t\t\tonChange={ adjustedOnChange }\n\t\t\tselectionStart={ selectionStart }\n\t\t\tselectionEnd={ selectionEnd }\n\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\ttagName={ tagName }\n\t\t\tstart={ start }\n\t\t\treversed={ reversed }\n\t\t\tplaceholder={ placeholder }\n\t\t\tallowedFormats={ adjustedAllowedFormats }\n\t\t\twithoutInteractiveFormatting={ withoutInteractiveFormatting }\n\t\t\tonEnter={ onEnter }\n\t\t\tonDelete={ onDelete }\n\t\t\tonPaste={ onPaste }\n\t\t\t__unstableIsSelected={ isSelected }\n\t\t\t__unstableInputRule={ inputRule }\n\t\t\t__unstableMultilineTag={ multilineTag }\n\t\t\t__unstableOnEnterFormattedText={ enterFormattedText }\n\t\t\t__unstableOnExitFormattedText={ exitFormattedText }\n\t\t\t__unstableOnCreateUndoLevel={ __unstableMarkLastChangeAsPersistent }\n\t\t\t__unstableMarkAutomaticChange={ __unstableMarkAutomaticChange }\n\t\t\t__unstableDidAutomaticChange={ didAutomaticChange }\n\t\t\t__unstableUndo={ undo }\n\t\t\t__unstableDisableFormats={ disableFormats }\n\t\t\tpreserveWhiteSpace={ preserveWhiteSpace }\n\t\t\tdisabled={ disabled }\n\t\t\tunstableOnFocus={ unstableOnFocus }\n\t\t\t__unstableAllowPrefixTransformations={\n\t\t\t\t__unstableAllowPrefixTransformations\n\t\t\t}\n\t\t\t__unstableMultilineRootTag={ __unstableMultilineRootTag }\n\t\t\t// Native props.\n\t\t\tblockIsSelected={\n\t\t\t\toriginalIsSelected !== undefined\n\t\t\t\t\t? originalIsSelected\n\t\t\t\t\t: blockIsSelected\n\t\t\t}\n\t\t\tshouldBlurOnUnmount={ shouldBlurOnUnmount }\n\t\t\t__unstableMobileNoFocusOnMount={ __unstableMobileNoFocusOnMount }\n\t\t\tdeleteEnter={ deleteEnter }\n\t\t\tplaceholderTextColor={ placeholderTextColor }\n\t\t\ttextAlign={ textAlign }\n\t\t\tselectionColor={ selectionColor }\n\t\t\ttagsToEliminate={ tagsToEliminate }\n\t\t\tdisableEditingMenu={ disableEditingMenu }\n\t\t\tfontSize={ fontSize }\n\t\t\tfontFamily={ fontFamily }\n\t\t\tfontWeight={ fontWeight }\n\t\t\tfontStyle={ fontStyle }\n\t\t\tminWidth={ minWidth }\n\t\t\tmaxWidth={ maxWidth }\n\t\t\tonBlur={ onBlur }\n\t\t\tsetRef={ setRef }\n\t\t\tdisableSuggestions={ disableSuggestions }\n\t\t\tdisableAutocorrection={ disableAutocorrection }\n\t\t\tcontainerWidth={ containerWidth }\n\t\t\t// Props to be set on the editable container are destructured on the\n\t\t\t// element itself for web (see below), but passed through rich text\n\t\t\t// for native.\n\t\t\tid={ props.id }\n\t\t\tstyle={ props.style }\n\t\t>\n\t\t\t{ ( {\n\t\t\t\tisSelected: nestedIsSelected,\n\t\t\t\tvalue,\n\t\t\t\tonChange,\n\t\t\t\tonFocus,\n\t\t\t\teditableProps,\n\t\t\t\teditableTagName: TagName,\n\t\t\t} ) => (\n\t\t\t\t<>\n\t\t\t\t\t{ children && children( { value, onChange, onFocus } ) }\n\t\t\t\t\t{ nestedIsSelected && hasFormats && (\n\t\t\t\t\t\t<FormatToolbarContainer\n\t\t\t\t\t\t\tinline={ inlineToolbar }\n\t\t\t\t\t\t\tanchorRef={ fallbackRef.current }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ nestedIsSelected && <RemoveBrowserShortcuts /> }\n\t\t\t\t\t<Autocomplete\n\t\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\t\tcompleters={ autocompleters }\n\t\t\t\t\t\trecord={ value }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tisSelected={ nestedIsSelected }\n\t\t\t\t\t\tcontentRef={ fallbackRef }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { listBoxId, activeId, onKeyDown } ) => (\n\t\t\t\t\t\t\t<TagName\n\t\t\t\t\t\t\t\t{ ...editableProps }\n\t\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\tprops.style\n\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t...props.style,\n\t\t\t\t\t\t\t\t\t\t\t\t...editableProps.style,\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t: editableProps.style\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\tclasses,\n\t\t\t\t\t\t\t\t\tprops.className,\n\t\t\t\t\t\t\t\t\teditableProps.className\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\taria-autocomplete={\n\t\t\t\t\t\t\t\t\tlistBoxId ? 'list' : undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\taria-owns={ listBoxId }\n\t\t\t\t\t\t\t\taria-activedescendant={ activeId }\n\t\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\t\tonKeyDown( event );\n\t\t\t\t\t\t\t\t\teditableProps.onKeyDown( event );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Autocomplete>\n\t\t\t\t\t<EmbedHandlerPicker ref={ embedHandlerPickerRef } />\n\t\t\t\t</>\n\t\t\t) }\n\t\t</RichText>\n\t);\n}\n\nconst ForwardedRichTextContainer = forwardRef( RichTextWrapper );\n\nForwardedRichTextContainer.Content = Content;\n\nForwardedRichTextContainer.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\nForwardedRichTextContainer.Content.defaultProps = {\n\tformat: 'string',\n\tvalue: '',\n};\n\nForwardedRichTextContainer.Raw = RichText;\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/rich-text/README.md\n */\nexport default ForwardedRichTextContainer;\nexport { RichTextShortcut } from './shortcut';\nexport { RichTextToolbarButton } from './toolbar-button';\nexport { __unstableRichTextInputEvent } from './input-event';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["classnames","Platform","useRef","useCallback","forwardRef","useDispatch","useSelect","pasteHandler","children","childrenSource","getBlockTransforms","findTransform","isUnmodifiedDefaultBlock","useInstanceId","useMergeRefs","__unstableCreateElement","isEmpty","insert","remove","create","split","toHTMLString","slice","isURL","Autocomplete","useBlockEditContext","RemoveBrowserShortcuts","filePasteHandler","FormatToolbarContainer","store","blockEditorStore","addActiveFormats","getAllowedFormats","createLinkInParagraph","EmbedHandlerPicker","Content","RichText","withDeprecations","classes","RichTextWrapper","tagName","start","reversed","value","originalValue","onChange","originalOnChange","isSelected","originalIsSelected","inlineToolbar","wrapperClassName","autocompleters","onReplace","placeholder","allowedFormats","withoutInteractiveFormatting","onRemove","onMerge","onSplit","__unstableOnSplitAtEnd","onSplitAtEnd","__unstableOnSplitMiddle","onSplitMiddle","__unstableOnSplitAtDoubleLineEnd","onSplitAtDoubleLineEnd","identifier","preserveWhiteSpace","__unstablePastePlainText","pastePlainText","__unstableEmbedURLOnPaste","__unstableDisableFormats","disableFormats","disableLineBreaks","unstableOnFocus","__unstableAllowPrefixTransformations","__unstableMobileNoFocusOnMount","deleteEnter","placeholderTextColor","textAlign","selectionColor","tagsToEliminate","disableEditingMenu","fontSize","fontFamily","fontWeight","fontStyle","minWidth","maxWidth","onBlur","setRef","disableSuggestions","disableAutocorrection","containerWidth","onEnter","onCustomEnter","props","forwardedRef","instanceId","fallbackRef","clientId","blockIsSelected","embedHandlerPickerRef","selector","select","getSelectionStart","getSelectionEnd","getSettings","didAutomaticChange","getBlock","isMultiSelecting","hasMultiSelection","selectionStart","selectionEnd","__experimentalUndo","undo","undefined","attributeKey","extraProps","OS","block","shouldBlurOnUnmount","offset","disabled","__unstableMarkLastChangeAsPersistent","enterFormattedText","exitFormattedText","selectionChange","__unstableMarkAutomaticChange","adjustedAllowedFormats","hasFormats","length","adjustedValue","adjustedOnChange","Array","isArray","toHTML","newValue","fromDOM","document","childNodes","onSelectionChange","selectionChangeStart","selectionChangeEnd","onDelete","isReverse","splitValue","record","pastedBlocks","blocks","before","after","hasPastedBlocks","lastPastedBlockIndex","isAfterOriginal","push","indexToSelect","initialPosition","shiftKey","canSplit","transforms","filter","type","transformation","item","regExp","test","text","transform","content","splitStart","end","splitEnd","canSplitAtEnd","onPaste","html","plainText","isInternal","files","activeFormats","pastedValue","HTML","mode","window","console","log","isPastedURL","trim","presentEmbedHandlerPicker","current","presentPicker","createEmbed","createLink","valueToInsert","canPasteEmbed","name","inputRule","valueToFormat","startPosition","characterBefore","trimmedTextBefore","prefixTransforms","prefix","mergedRef","createElement","ref","__unstableIsSelected","__unstableInputRule","__unstableOnEnterFormattedText","__unstableOnExitFormattedText","__unstableOnCreateUndoLevel","__unstableDidAutomaticChange","__unstableUndo","id","style","nestedIsSelected","onFocus","editableProps","editableTagName","TagName","Fragment","inline","anchorRef","completers","contentRef","listBoxId","activeId","onKeyDown","className","event","ForwardedRichTextContainer","defaultProps","format","Raw","RichTextShortcut","RichTextToolbarButton","__unstableRichTextInputEvent"],"sources":["@wordpress/block-editor/src/components/rich-text/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Platform, useRef, useCallback, forwardRef } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tpasteHandler,\n\tchildren as childrenSource,\n\tgetBlockTransforms,\n\tfindTransform,\n\tisUnmodifiedDefaultBlock,\n} from '@wordpress/blocks';\nimport { useInstanceId, useMergeRefs } from '@wordpress/compose';\nimport {\n\t__unstableCreateElement,\n\tisEmpty,\n\tinsert,\n\tremove,\n\tcreate,\n\tsplit,\n\ttoHTMLString,\n\tslice,\n} from '@wordpress/rich-text';\nimport { isURL } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport Autocomplete from '../autocomplete';\nimport { useBlockEditContext } from '../block-edit';\nimport { RemoveBrowserShortcuts } from './remove-browser-shortcuts';\nimport { filePasteHandler } from './file-paste-handler';\nimport FormatToolbarContainer from './format-toolbar-container';\nimport { store as blockEditorStore } from '../../store';\nimport {\n\taddActiveFormats,\n\tgetAllowedFormats,\n\tcreateLinkInParagraph,\n} from './utils';\nimport EmbedHandlerPicker from './embed-handler-picker';\nimport { Content } from './content';\nimport RichText from './native';\nimport { withDeprecations } from './with-deprecations';\n\nconst classes = 'block-editor-rich-text__editable';\n\nexport function RichTextWrapper(\n\t{\n\t\tchildren,\n\t\ttagName,\n\t\tstart,\n\t\treversed,\n\t\tvalue: originalValue,\n\t\tonChange: originalOnChange,\n\t\tisSelected: originalIsSelected,\n\t\tinlineToolbar,\n\t\twrapperClassName,\n\t\tautocompleters,\n\t\tonReplace,\n\t\tplaceholder,\n\t\tallowedFormats,\n\t\twithoutInteractiveFormatting,\n\t\tonRemove,\n\t\tonMerge,\n\t\tonSplit,\n\t\t__unstableOnSplitAtEnd: onSplitAtEnd,\n\t\t__unstableOnSplitMiddle: onSplitMiddle,\n\t\t__unstableOnSplitAtDoubleLineEnd: onSplitAtDoubleLineEnd,\n\t\tidentifier,\n\t\tpreserveWhiteSpace,\n\t\t__unstablePastePlainText: pastePlainText,\n\t\t__unstableEmbedURLOnPaste,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tdisableLineBreaks,\n\t\tunstableOnFocus,\n\t\t__unstableAllowPrefixTransformations,\n\t\t// Native props.\n\t\t__unstableMobileNoFocusOnMount,\n\t\tdeleteEnter,\n\t\tplaceholderTextColor,\n\t\ttextAlign,\n\t\tselectionColor,\n\t\ttagsToEliminate,\n\t\tdisableEditingMenu,\n\t\tfontSize,\n\t\tfontFamily,\n\t\tfontWeight,\n\t\tfontStyle,\n\t\tminWidth,\n\t\tmaxWidth,\n\t\tonBlur,\n\t\tsetRef,\n\t\tdisableSuggestions,\n\t\tdisableAutocorrection,\n\t\tcontainerWidth,\n\t\tonEnter: onCustomEnter,\n\t\t...props\n\t},\n\tforwardedRef\n) {\n\tconst instanceId = useInstanceId( RichTextWrapper );\n\n\tidentifier = identifier || instanceId;\n\n\tconst fallbackRef = useRef();\n\tconst { clientId, isSelected: blockIsSelected } = useBlockEditContext();\n\tconst embedHandlerPickerRef = useRef();\n\tconst selector = ( select ) => {\n\t\tconst {\n\t\t\tgetSelectionStart,\n\t\t\tgetSelectionEnd,\n\t\t\tgetSettings,\n\t\t\tdidAutomaticChange,\n\t\t\tgetBlock,\n\t\t\tisMultiSelecting,\n\t\t\thasMultiSelection,\n\t\t} = select( blockEditorStore );\n\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\t\tconst { __experimentalUndo: undo } = getSettings();\n\n\t\tlet isSelected;\n\n\t\tif ( originalIsSelected === undefined ) {\n\t\t\tisSelected =\n\t\t\t\tselectionStart.clientId === clientId &&\n\t\t\t\tselectionStart.attributeKey === identifier;\n\t\t} else if ( originalIsSelected ) {\n\t\t\tisSelected = selectionStart.clientId === clientId;\n\t\t}\n\n\t\tlet extraProps = {};\n\t\tif ( Platform.OS === 'native' ) {\n\t\t\t// If the block of this RichText is unmodified then it's a candidate for replacing when adding a new block.\n\t\t\t// In order to fix https://github.com/wordpress-mobile/gutenberg-mobile/issues/1126, let's blur on unmount in that case.\n\t\t\t// This apparently assumes functionality the BlockHlder actually.\n\t\t\tconst block = clientId && getBlock( clientId );\n\t\t\tconst shouldBlurOnUnmount =\n\t\t\t\tblock && isSelected && isUnmodifiedDefaultBlock( block );\n\t\t\textraProps = {\n\t\t\t\tshouldBlurOnUnmount,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tselectionStart: isSelected ? selectionStart.offset : undefined,\n\t\t\tselectionEnd: isSelected ? selectionEnd.offset : undefined,\n\t\t\tisSelected,\n\t\t\tdidAutomaticChange: didAutomaticChange(),\n\t\t\tdisabled: isMultiSelecting() || hasMultiSelection(),\n\t\t\tundo,\n\t\t\t...extraProps,\n\t\t};\n\t};\n\t// This selector must run on every render so the right selection state is\n\t// retrieved from the store on merge.\n\t// To do: fix this somehow.\n\tconst {\n\t\tselectionStart,\n\t\tselectionEnd,\n\t\tisSelected,\n\t\tdidAutomaticChange,\n\t\tdisabled,\n\t\tundo,\n\t\tshouldBlurOnUnmount,\n\t} = useSelect( selector );\n\tconst {\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tenterFormattedText,\n\t\texitFormattedText,\n\t\tselectionChange,\n\t\t__unstableMarkAutomaticChange,\n\t} = useDispatch( blockEditorStore );\n\tconst adjustedAllowedFormats = getAllowedFormats( {\n\t\tallowedFormats,\n\t\tdisableFormats,\n\t} );\n\tconst hasFormats =\n\t\t! adjustedAllowedFormats || adjustedAllowedFormats.length > 0;\n\tlet adjustedValue = originalValue;\n\tlet adjustedOnChange = originalOnChange;\n\n\t// Handle deprecated format.\n\tif ( Array.isArray( originalValue ) ) {\n\t\tadjustedValue = childrenSource.toHTML( originalValue );\n\t\tadjustedOnChange = ( newValue ) =>\n\t\t\toriginalOnChange(\n\t\t\t\tchildrenSource.fromDOM(\n\t\t\t\t\t__unstableCreateElement( document, newValue ).childNodes\n\t\t\t\t)\n\t\t\t);\n\t}\n\n\tconst onSelectionChange = useCallback(\n\t\t( selectionChangeStart, selectionChangeEnd ) => {\n\t\t\tselectionChange(\n\t\t\t\tclientId,\n\t\t\t\tidentifier,\n\t\t\t\tselectionChangeStart,\n\t\t\t\tselectionChangeEnd\n\t\t\t);\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[ clientId, identifier ]\n\t);\n\n\tconst onDelete = useCallback(\n\t\t( { value, isReverse } ) => {\n\t\t\tif ( onMerge ) {\n\t\t\t\tonMerge( ! isReverse );\n\t\t\t}\n\n\t\t\t// Only handle remove on Backspace. This serves dual-purpose of being\n\t\t\t// an intentional user interaction distinguishing between Backspace and\n\t\t\t// Delete to remove the empty field, but also to avoid merge & remove\n\t\t\t// causing destruction of two fields (merge, then removed merged).\n\t\t\telse if ( onRemove && isEmpty( value ) && isReverse ) {\n\t\t\t\tonRemove( ! isReverse );\n\t\t\t}\n\t\t},\n\t\t[ onMerge, onRemove ]\n\t);\n\n\t/**\n\t * Signals to the RichText owner that the block can be replaced with two\n\t * blocks as a result of splitting the block by pressing enter, or with\n\t * blocks as a result of splitting the block by pasting block content in the\n\t * instance.\n\t *\n\t * @param {Object} record The rich text value to split.\n\t * @param {Array} pastedBlocks The pasted blocks to insert, if any.\n\t */\n\tconst splitValue = useCallback(\n\t\t( record, pastedBlocks = [] ) => {\n\t\t\tif ( ! onReplace || ! onSplit ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst blocks = [];\n\t\t\tconst [ before, after ] = split( record );\n\t\t\tconst hasPastedBlocks = pastedBlocks.length > 0;\n\t\t\tlet lastPastedBlockIndex = -1;\n\n\t\t\t// Consider the after value to be the original it is not empty and\n\t\t\t// the before value *is* empty.\n\t\t\tconst isAfterOriginal = isEmpty( before ) && ! isEmpty( after );\n\n\t\t\t// Create a block with the content before the caret if there's no pasted\n\t\t\t// blocks, or if there are pasted blocks and the value is not empty.\n\t\t\t// We do not want a leading empty block on paste, but we do if split\n\t\t\t// with e.g. the enter key.\n\t\t\tif ( ! hasPastedBlocks || ! isEmpty( before ) ) {\n\t\t\t\tblocks.push(\n\t\t\t\t\tonSplit(\n\t\t\t\t\t\ttoHTMLString( { value: before } ),\n\t\t\t\t\t\t! isAfterOriginal\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tlastPastedBlockIndex += 1;\n\t\t\t}\n\n\t\t\tif ( hasPastedBlocks ) {\n\t\t\t\tblocks.push( ...pastedBlocks );\n\t\t\t\tlastPastedBlockIndex += pastedBlocks.length;\n\t\t\t} else if ( onSplitMiddle ) {\n\t\t\t\tblocks.push( onSplitMiddle() );\n\t\t\t}\n\n\t\t\t// If there's pasted blocks, append a block with non empty content\n\t\t\t// after the caret. Otherwise, do append an empty block if there\n\t\t\t// is no `onSplitMiddle` prop, but if there is and the content is\n\t\t\t// empty, the middle block is enough to set focus in.\n\t\t\tif (\n\t\t\t\thasPastedBlocks\n\t\t\t\t\t? ! isEmpty( after )\n\t\t\t\t\t: ! onSplitMiddle || ! isEmpty( after )\n\t\t\t) {\n\t\t\t\tblocks.push(\n\t\t\t\t\tonSplit( toHTMLString( { value: after } ), isAfterOriginal )\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// If there are pasted blocks, set the selection to the last one.\n\t\t\t// Otherwise, set the selection to the second block.\n\t\t\tconst indexToSelect = hasPastedBlocks ? lastPastedBlockIndex : 1;\n\n\t\t\t// If there are pasted blocks, move the caret to the end of the selected block\n\t\t\t// Otherwise, retain the default value.\n\t\t\tconst initialPosition = hasPastedBlocks ? -1 : 0;\n\n\t\t\tonReplace( blocks, indexToSelect, initialPosition );\n\t\t},\n\t\t[ onReplace, onSplit, onSplitMiddle ]\n\t);\n\n\tconst onEnter = useCallback(\n\t\t( { value, onChange, shiftKey } ) => {\n\t\t\tconst canSplit = onReplace && onSplit;\n\n\t\t\tif ( onReplace ) {\n\t\t\t\tconst transforms = getBlockTransforms( 'from' ).filter(\n\t\t\t\t\t( { type } ) => type === 'enter'\n\t\t\t\t);\n\t\t\t\tconst transformation = findTransform( transforms, ( item ) => {\n\t\t\t\t\treturn item.regExp.test( value.text );\n\t\t\t\t} );\n\n\t\t\t\tif ( transformation ) {\n\t\t\t\t\tonReplace( [\n\t\t\t\t\t\ttransformation.transform( { content: value.text } ),\n\t\t\t\t\t] );\n\t\t\t\t\t__unstableMarkAutomaticChange();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( onCustomEnter ) {\n\t\t\t\tonCustomEnter();\n\t\t\t}\n\n\t\t\tconst { text, start: splitStart, end: splitEnd } = value;\n\t\t\tconst canSplitAtEnd =\n\t\t\t\tonSplitAtEnd &&\n\t\t\t\tsplitStart === splitEnd &&\n\t\t\t\tsplitEnd === text.length;\n\n\t\t\tif ( shiftKey ) {\n\t\t\t\tif ( ! disableLineBreaks ) {\n\t\t\t\t\tonChange( insert( value, '\\n' ) );\n\t\t\t\t}\n\t\t\t} else if ( canSplit ) {\n\t\t\t\tsplitValue( value );\n\t\t\t} else if ( canSplitAtEnd ) {\n\t\t\t\tonSplitAtEnd();\n\t\t\t} else if (\n\t\t\t\t// For some blocks it's desirable to split at the end of the\n\t\t\t\t// block when there are two line breaks at the end of the\n\t\t\t\t// block, so triple Enter exits the block.\n\t\t\t\tonSplitAtDoubleLineEnd &&\n\t\t\t\tsplitStart === splitEnd &&\n\t\t\t\tsplitEnd === text.length &&\n\t\t\t\ttext.slice( -2 ) === '\\n\\n'\n\t\t\t) {\n\t\t\t\tvalue.start = value.end - 2;\n\t\t\t\tonChange( remove( value ) );\n\t\t\t\tonSplitAtDoubleLineEnd();\n\t\t\t} else if ( ! disableLineBreaks ) {\n\t\t\t\tonChange( insert( value, '\\n' ) );\n\t\t\t}\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[\n\t\t\tonReplace,\n\t\t\tonSplit,\n\t\t\t__unstableMarkAutomaticChange,\n\t\t\tsplitValue,\n\t\t\tonSplitAtEnd,\n\t\t]\n\t);\n\n\tconst onPaste = useCallback(\n\t\t( {\n\t\t\tvalue,\n\t\t\tonChange,\n\t\t\thtml,\n\t\t\tplainText,\n\t\t\tisInternal,\n\t\t\tfiles,\n\t\t\tactiveFormats,\n\t\t} ) => {\n\t\t\t// If the data comes from a rich text instance, we can directly use it\n\t\t\t// without filtering the data. The filters are only meant for externally\n\t\t\t// pasted content and remove inline styles.\n\t\t\tif ( isInternal ) {\n\t\t\t\tconst pastedValue = create( {\n\t\t\t\t\thtml,\n\t\t\t\t\tpreserveWhiteSpace,\n\t\t\t\t} );\n\t\t\t\taddActiveFormats( pastedValue, activeFormats );\n\t\t\t\tonChange( insert( value, pastedValue ) );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( pastePlainText ) {\n\t\t\t\tonChange( insert( value, create( { text: plainText } ) ) );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Only process file if no HTML is present.\n\t\t\t// Note: a pasted file may have the URL as plain text.\n\t\t\tif ( files && files.length && ! html ) {\n\t\t\t\tconst content = pasteHandler( {\n\t\t\t\t\tHTML: filePasteHandler( files ),\n\t\t\t\t\tmode: 'BLOCKS',\n\t\t\t\t\ttagName,\n\t\t\t\t\tpreserveWhiteSpace,\n\t\t\t\t} );\n\n\t\t\t\t// Allows us to ask for this information when we get a report.\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\twindow.console.log( 'Received items:\\n\\n', files );\n\n\t\t\t\tif ( onReplace && isEmpty( value ) ) {\n\t\t\t\t\tonReplace( content );\n\t\t\t\t} else {\n\t\t\t\t\tsplitValue( value, content );\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet mode = onReplace && onSplit ? 'AUTO' : 'INLINE';\n\n\t\t\tconst isPastedURL = isURL( plainText.trim() );\n\t\t\tconst presentEmbedHandlerPicker = () =>\n\t\t\t\tembedHandlerPickerRef.current?.presentPicker( {\n\t\t\t\t\tcreateEmbed: () =>\n\t\t\t\t\t\tonReplace( content, content.length - 1, -1 ),\n\t\t\t\t\tcreateLink: () =>\n\t\t\t\t\t\tcreateLinkInParagraph( plainText.trim(), onReplace ),\n\t\t\t\t} );\n\n\t\t\tif (\n\t\t\t\t__unstableEmbedURLOnPaste &&\n\t\t\t\tisEmpty( value ) &&\n\t\t\t\tisPastedURL\n\t\t\t) {\n\t\t\t\tmode = 'BLOCKS';\n\t\t\t}\n\n\t\t\tconst content = pasteHandler( {\n\t\t\t\tHTML: html,\n\t\t\t\tplainText,\n\t\t\t\tmode,\n\t\t\t\ttagName,\n\t\t\t\tpreserveWhiteSpace,\n\t\t\t} );\n\n\t\t\tif ( typeof content === 'string' ) {\n\t\t\t\tconst valueToInsert = create( { html: content } );\n\t\t\t\taddActiveFormats( valueToInsert, activeFormats );\n\t\t\t\tonChange( insert( value, valueToInsert ) );\n\t\t\t} else if ( content.length > 0 ) {\n\t\t\t\t// When an URL is pasted in an empty paragraph then the EmbedHandlerPicker should showcase options allowing the transformation of that URL\n\t\t\t\t// into either an Embed block or a link within the target paragraph. If the paragraph is non-empty, the URL is pasted as text.\n\t\t\t\tconst canPasteEmbed =\n\t\t\t\t\tisPastedURL &&\n\t\t\t\t\tcontent.length === 1 &&\n\t\t\t\t\tcontent[ 0 ].name === 'core/embed';\n\t\t\t\tif ( onReplace && isEmpty( value ) ) {\n\t\t\t\t\tif ( canPasteEmbed ) {\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tinsert( value, create( { text: plainText } ) )\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( __unstableEmbedURLOnPaste ) {\n\t\t\t\t\t\t\tpresentEmbedHandlerPicker();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tonReplace( content, content.length - 1, -1 );\n\t\t\t\t} else {\n\t\t\t\t\tif ( canPasteEmbed ) {\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tinsert( value, create( { text: plainText } ) )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tsplitValue( value, content );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\ttagName,\n\t\t\tonReplace,\n\t\t\tonSplit,\n\t\t\tsplitValue,\n\t\t\t__unstableEmbedURLOnPaste,\n\t\t\tpreserveWhiteSpace,\n\t\t\tpastePlainText,\n\t\t]\n\t);\n\n\tconst inputRule = useCallback(\n\t\t( value, valueToFormat ) => {\n\t\t\tif ( ! onReplace ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { start: startPosition, text } = value;\n\t\t\tconst characterBefore = text.slice(\n\t\t\t\tstartPosition - 1,\n\t\t\t\tstartPosition\n\t\t\t);\n\n\t\t\t// The character right before the caret must be a plain space.\n\t\t\tif ( characterBefore !== ' ' ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst trimmedTextBefore = text.slice( 0, startPosition ).trim();\n\t\t\tconst prefixTransforms = getBlockTransforms( 'from' ).filter(\n\t\t\t\t( { type } ) => type === 'prefix'\n\t\t\t);\n\t\t\tconst transformation = findTransform(\n\t\t\t\tprefixTransforms,\n\t\t\t\t( { prefix } ) => {\n\t\t\t\t\treturn trimmedTextBefore === prefix;\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif ( ! transformation ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst content = valueToFormat(\n\t\t\t\tslice( value, startPosition, text.length )\n\t\t\t);\n\t\t\tconst block = transformation.transform( content );\n\n\t\t\tonReplace( [ block ] );\n\t\t\t__unstableMarkAutomaticChange();\n\t\t},\n\t\t[ onReplace, __unstableMarkAutomaticChange ]\n\t);\n\n\tconst mergedRef = useMergeRefs( [ forwardedRef, fallbackRef ] );\n\n\treturn (\n\t\t<RichText\n\t\t\tclientId={ clientId }\n\t\t\tidentifier={ identifier }\n\t\t\tref={ mergedRef }\n\t\t\tvalue={ adjustedValue }\n\t\t\tonChange={ adjustedOnChange }\n\t\t\tselectionStart={ selectionStart }\n\t\t\tselectionEnd={ selectionEnd }\n\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\ttagName={ tagName }\n\t\t\tstart={ start }\n\t\t\treversed={ reversed }\n\t\t\tplaceholder={ placeholder }\n\t\t\tallowedFormats={ adjustedAllowedFormats }\n\t\t\twithoutInteractiveFormatting={ withoutInteractiveFormatting }\n\t\t\tonEnter={ onEnter }\n\t\t\tonDelete={ onDelete }\n\t\t\tonPaste={ onPaste }\n\t\t\t__unstableIsSelected={ isSelected }\n\t\t\t__unstableInputRule={ inputRule }\n\t\t\t__unstableOnEnterFormattedText={ enterFormattedText }\n\t\t\t__unstableOnExitFormattedText={ exitFormattedText }\n\t\t\t__unstableOnCreateUndoLevel={ __unstableMarkLastChangeAsPersistent }\n\t\t\t__unstableMarkAutomaticChange={ __unstableMarkAutomaticChange }\n\t\t\t__unstableDidAutomaticChange={ didAutomaticChange }\n\t\t\t__unstableUndo={ undo }\n\t\t\t__unstableDisableFormats={ disableFormats }\n\t\t\tpreserveWhiteSpace={ preserveWhiteSpace }\n\t\t\tdisabled={ disabled }\n\t\t\tunstableOnFocus={ unstableOnFocus }\n\t\t\t__unstableAllowPrefixTransformations={\n\t\t\t\t__unstableAllowPrefixTransformations\n\t\t\t}\n\t\t\t// Native props.\n\t\t\tblockIsSelected={\n\t\t\t\toriginalIsSelected !== undefined\n\t\t\t\t\t? originalIsSelected\n\t\t\t\t\t: blockIsSelected\n\t\t\t}\n\t\t\tshouldBlurOnUnmount={ shouldBlurOnUnmount }\n\t\t\t__unstableMobileNoFocusOnMount={ __unstableMobileNoFocusOnMount }\n\t\t\tdeleteEnter={ deleteEnter }\n\t\t\tplaceholderTextColor={ placeholderTextColor }\n\t\t\ttextAlign={ textAlign }\n\t\t\tselectionColor={ selectionColor }\n\t\t\ttagsToEliminate={ tagsToEliminate }\n\t\t\tdisableEditingMenu={ disableEditingMenu }\n\t\t\tfontSize={ fontSize }\n\t\t\tfontFamily={ fontFamily }\n\t\t\tfontWeight={ fontWeight }\n\t\t\tfontStyle={ fontStyle }\n\t\t\tminWidth={ minWidth }\n\t\t\tmaxWidth={ maxWidth }\n\t\t\tonBlur={ onBlur }\n\t\t\tsetRef={ setRef }\n\t\t\tdisableSuggestions={ disableSuggestions }\n\t\t\tdisableAutocorrection={ disableAutocorrection }\n\t\t\tcontainerWidth={ containerWidth }\n\t\t\t// Props to be set on the editable container are destructured on the\n\t\t\t// element itself for web (see below), but passed through rich text\n\t\t\t// for native.\n\t\t\tid={ props.id }\n\t\t\tstyle={ props.style }\n\t\t>\n\t\t\t{ ( {\n\t\t\t\tisSelected: nestedIsSelected,\n\t\t\t\tvalue,\n\t\t\t\tonChange,\n\t\t\t\tonFocus,\n\t\t\t\teditableProps,\n\t\t\t\teditableTagName: TagName,\n\t\t\t} ) => (\n\t\t\t\t<>\n\t\t\t\t\t{ children && children( { value, onChange, onFocus } ) }\n\t\t\t\t\t{ nestedIsSelected && hasFormats && (\n\t\t\t\t\t\t<FormatToolbarContainer\n\t\t\t\t\t\t\tinline={ inlineToolbar }\n\t\t\t\t\t\t\tanchorRef={ fallbackRef.current }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ nestedIsSelected && <RemoveBrowserShortcuts /> }\n\t\t\t\t\t<Autocomplete\n\t\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\t\tcompleters={ autocompleters }\n\t\t\t\t\t\trecord={ value }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tisSelected={ nestedIsSelected }\n\t\t\t\t\t\tcontentRef={ fallbackRef }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { listBoxId, activeId, onKeyDown } ) => (\n\t\t\t\t\t\t\t<TagName\n\t\t\t\t\t\t\t\t{ ...editableProps }\n\t\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\tprops.style\n\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t...props.style,\n\t\t\t\t\t\t\t\t\t\t\t\t...editableProps.style,\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t: editableProps.style\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\tclasses,\n\t\t\t\t\t\t\t\t\tprops.className,\n\t\t\t\t\t\t\t\t\teditableProps.className\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\taria-autocomplete={\n\t\t\t\t\t\t\t\t\tlistBoxId ? 'list' : undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\taria-owns={ listBoxId }\n\t\t\t\t\t\t\t\taria-activedescendant={ activeId }\n\t\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\t\tonKeyDown( event );\n\t\t\t\t\t\t\t\t\teditableProps.onKeyDown( event );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Autocomplete>\n\t\t\t\t\t<EmbedHandlerPicker ref={ embedHandlerPickerRef } />\n\t\t\t\t</>\n\t\t\t) }\n\t\t</RichText>\n\t);\n}\n\nconst ForwardedRichTextContainer = withDeprecations(\n\tforwardRef( RichTextWrapper )\n);\n\nForwardedRichTextContainer.Content = Content;\n\nForwardedRichTextContainer.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\nForwardedRichTextContainer.Content.defaultProps = {\n\tformat: 'string',\n\tvalue: '',\n};\n\nForwardedRichTextContainer.Raw = RichText;\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/rich-text/README.md\n */\nexport default ForwardedRichTextContainer;\nexport { RichTextShortcut } from './shortcut';\nexport { RichTextToolbarButton } from './toolbar-button';\nexport { __unstableRichTextInputEvent } from './input-event';\n"],"mappings":"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"}
|
|
@@ -4,31 +4,29 @@
|
|
|
4
4
|
import { getColorObjectByAttributeValues } from '../../../components/colors';
|
|
5
5
|
const FORMAT_TYPE = 'core/text-color';
|
|
6
6
|
const REGEX_TO_MATCH = /^has-(.*)-color$/;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
7
|
+
export function getFormatColors(formats, colors) {
|
|
8
|
+
const newFormats = formats.slice();
|
|
9
|
+
|
|
10
|
+
// We are looping through a sparse array where empty indices will be
|
|
11
|
+
// skipped.
|
|
12
|
+
newFormats.forEach(format => {
|
|
13
|
+
format.forEach(currentFormat => {
|
|
14
|
+
if (currentFormat?.type === FORMAT_TYPE) {
|
|
15
|
+
const className = currentFormat?.attributes?.class;
|
|
16
|
+
className?.split(' ').forEach(currentClass => {
|
|
17
|
+
const match = currentClass.match(REGEX_TO_MATCH);
|
|
18
|
+
if (match) {
|
|
19
|
+
const [, colorSlug] = currentClass.match(REGEX_TO_MATCH);
|
|
20
|
+
const colorObject = getColorObjectByAttributeValues(colors, colorSlug);
|
|
21
|
+
const currentStyles = currentFormat?.attributes?.style;
|
|
22
|
+
if (colorObject && (!currentStyles || currentStyles?.indexOf(colorObject.color) === -1)) {
|
|
23
|
+
currentFormat.attributes.style = [`color: ${colorObject.color}`, currentStyles].join(';');
|
|
25
24
|
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
29
28
|
});
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
return formats;
|
|
29
|
+
});
|
|
30
|
+
return newFormats;
|
|
33
31
|
}
|
|
34
32
|
//# sourceMappingURL=get-format-colors.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getColorObjectByAttributeValues","FORMAT_TYPE","REGEX_TO_MATCH","
|
|
1
|
+
{"version":3,"names":["getColorObjectByAttributeValues","FORMAT_TYPE","REGEX_TO_MATCH","getFormatColors","formats","colors","newFormats","slice","forEach","format","currentFormat","type","className","attributes","class","split","currentClass","match","colorSlug","colorObject","currentStyles","style","indexOf","color","join"],"sources":["@wordpress/block-editor/src/components/rich-text/native/get-format-colors.native.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { getColorObjectByAttributeValues } from '../../../components/colors';\n\nconst FORMAT_TYPE = 'core/text-color';\nconst REGEX_TO_MATCH = /^has-(.*)-color$/;\n\nexport function getFormatColors( formats, colors ) {\n\tconst newFormats = formats.slice();\n\n\t// We are looping through a sparse array where empty indices will be\n\t// skipped.\n\tnewFormats.forEach( ( format ) => {\n\t\tformat.forEach( ( currentFormat ) => {\n\t\t\tif ( currentFormat?.type === FORMAT_TYPE ) {\n\t\t\t\tconst className = currentFormat?.attributes?.class;\n\n\t\t\t\tclassName?.split( ' ' ).forEach( ( currentClass ) => {\n\t\t\t\t\tconst match = currentClass.match( REGEX_TO_MATCH );\n\t\t\t\t\tif ( match ) {\n\t\t\t\t\t\tconst [ , colorSlug ] =\n\t\t\t\t\t\t\tcurrentClass.match( REGEX_TO_MATCH );\n\t\t\t\t\t\tconst colorObject = getColorObjectByAttributeValues(\n\t\t\t\t\t\t\tcolors,\n\t\t\t\t\t\t\tcolorSlug\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst currentStyles = currentFormat?.attributes?.style;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcolorObject &&\n\t\t\t\t\t\t\t( ! currentStyles ||\n\t\t\t\t\t\t\t\tcurrentStyles?.indexOf( colorObject.color ) ===\n\t\t\t\t\t\t\t\t\t-1 )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tcurrentFormat.attributes.style = [\n\t\t\t\t\t\t\t\t`color: ${ colorObject.color }`,\n\t\t\t\t\t\t\t\tcurrentStyles,\n\t\t\t\t\t\t\t].join( ';' );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t} );\n\n\treturn newFormats;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,+BAA+B,QAAQ,4BAA4B;AAE5E,MAAMC,WAAW,GAAG,iBAAiB;AACrC,MAAMC,cAAc,GAAG,kBAAkB;AAEzC,OAAO,SAASC,eAAeA,CAAEC,OAAO,EAAEC,MAAM,EAAG;EAClD,MAAMC,UAAU,GAAGF,OAAO,CAACG,KAAK,CAAC,CAAC;;EAElC;EACA;EACAD,UAAU,CAACE,OAAO,CAAIC,MAAM,IAAM;IACjCA,MAAM,CAACD,OAAO,CAAIE,aAAa,IAAM;MACpC,IAAKA,aAAa,EAAEC,IAAI,KAAKV,WAAW,EAAG;QAC1C,MAAMW,SAAS,GAAGF,aAAa,EAAEG,UAAU,EAAEC,KAAK;QAElDF,SAAS,EAAEG,KAAK,CAAE,GAAI,CAAC,CAACP,OAAO,CAAIQ,YAAY,IAAM;UACpD,MAAMC,KAAK,GAAGD,YAAY,CAACC,KAAK,CAAEf,cAAe,CAAC;UAClD,IAAKe,KAAK,EAAG;YACZ,MAAM,GAAIC,SAAS,CAAE,GACpBF,YAAY,CAACC,KAAK,CAAEf,cAAe,CAAC;YACrC,MAAMiB,WAAW,GAAGnB,+BAA+B,CAClDK,MAAM,EACNa,SACD,CAAC;YACD,MAAME,aAAa,GAAGV,aAAa,EAAEG,UAAU,EAAEQ,KAAK;YACtD,IACCF,WAAW,KACT,CAAEC,aAAa,IAChBA,aAAa,EAAEE,OAAO,CAAEH,WAAW,CAACI,KAAM,CAAC,KAC1C,CAAC,CAAC,CAAE,EACL;cACDb,aAAa,CAACG,UAAU,CAACQ,KAAK,GAAG,CAC/B,UAAUF,WAAW,CAACI,KAAO,EAAC,EAC/BH,aAAa,CACb,CAACI,IAAI,CAAE,GAAI,CAAC;YACd;UACD;QACD,CAAE,CAAC;MACJ;IACD,CAAE,CAAC;EACJ,CAAE,CAAC;EAEH,OAAOlB,UAAU;AAClB"}
|
|
@@ -69,21 +69,11 @@ export class RichText extends Component {
|
|
|
69
69
|
constructor({
|
|
70
70
|
value,
|
|
71
71
|
selectionStart,
|
|
72
|
-
selectionEnd
|
|
73
|
-
__unstableMultilineTag: multiline
|
|
72
|
+
selectionEnd
|
|
74
73
|
}) {
|
|
75
74
|
super(...arguments);
|
|
76
|
-
this.isMultiline = false;
|
|
77
|
-
if (multiline === true || multiline === 'p' || multiline === 'li') {
|
|
78
|
-
this.multilineTag = multiline === true ? 'p' : multiline;
|
|
79
|
-
this.isMultiline = true;
|
|
80
|
-
}
|
|
81
|
-
if (this.multilineTag === 'li') {
|
|
82
|
-
this.multilineWrapperTags = ['ul', 'ol'];
|
|
83
|
-
}
|
|
84
75
|
this.isIOS = Platform.OS === 'ios';
|
|
85
76
|
this.createRecord = this.createRecord.bind(this);
|
|
86
|
-
this.restoreParagraphTags = this.restoreParagraphTags.bind(this);
|
|
87
77
|
this.onChangeFromAztec = this.onChangeFromAztec.bind(this);
|
|
88
78
|
this.onKeyDown = this.onKeyDown.bind(this);
|
|
89
79
|
this.handleEnter = this.handleEnter.bind(this);
|
|
@@ -151,7 +141,7 @@ export class RichText extends Component {
|
|
|
151
141
|
const {
|
|
152
142
|
activeFormats
|
|
153
143
|
} = this.state;
|
|
154
|
-
const newFormats = getFormatColors(
|
|
144
|
+
const newFormats = getFormatColors(formats, colorPalette);
|
|
155
145
|
return {
|
|
156
146
|
formats: newFormats,
|
|
157
147
|
replacements,
|
|
@@ -179,8 +169,6 @@ export class RichText extends Component {
|
|
|
179
169
|
...create({
|
|
180
170
|
html: this.value,
|
|
181
171
|
range: null,
|
|
182
|
-
multilineTag: this.multilineTag,
|
|
183
|
-
multilineWrapperTags: this.multilineWrapperTags,
|
|
184
172
|
preserveWhiteSpace
|
|
185
173
|
})
|
|
186
174
|
};
|
|
@@ -195,8 +183,7 @@ export class RichText extends Component {
|
|
|
195
183
|
valueToFormat(value) {
|
|
196
184
|
// Remove the outer root tags.
|
|
197
185
|
return this.removeRootTagsProducedByAztec(toHTMLString({
|
|
198
|
-
value
|
|
199
|
-
multilineTag: this.multilineTag
|
|
186
|
+
value
|
|
200
187
|
}));
|
|
201
188
|
}
|
|
202
189
|
getActiveFormatNames(record) {
|
|
@@ -293,24 +280,14 @@ export class RichText extends Component {
|
|
|
293
280
|
}
|
|
294
281
|
onTextUpdate(event) {
|
|
295
282
|
const contentWithoutRootTag = this.removeRootTagsProducedByAztec(unescapeSpaces(event.nativeEvent.text));
|
|
296
|
-
let formattedContent = contentWithoutRootTag;
|
|
297
|
-
if (!this.isIOS) {
|
|
298
|
-
formattedContent = this.restoreParagraphTags(contentWithoutRootTag, this.multilineTag);
|
|
299
|
-
}
|
|
300
283
|
this.debounceCreateUndoLevel();
|
|
301
|
-
const refresh = this.value !==
|
|
302
|
-
this.value =
|
|
284
|
+
const refresh = this.value !== contentWithoutRootTag;
|
|
285
|
+
this.value = contentWithoutRootTag;
|
|
303
286
|
|
|
304
287
|
// We don't want to refresh if our goal is just to create a record.
|
|
305
288
|
if (refresh) {
|
|
306
|
-
this.props.onChange(
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
restoreParagraphTags(value, tag) {
|
|
310
|
-
if (tag === 'p' && (!value || !value.startsWith('<p>'))) {
|
|
311
|
-
return '<p>' + value + '</p>';
|
|
289
|
+
this.props.onChange(contentWithoutRootTag);
|
|
312
290
|
}
|
|
313
|
-
return value;
|
|
314
291
|
}
|
|
315
292
|
|
|
316
293
|
/*
|
|
@@ -627,16 +604,12 @@ export class RichText extends Component {
|
|
|
627
604
|
if (Array.isArray(value)) {
|
|
628
605
|
return create({
|
|
629
606
|
html: childrenBlock.toHTML(value),
|
|
630
|
-
multilineTag: this.multilineTag,
|
|
631
|
-
multilineWrapperTags: this.multilineWrapperTags,
|
|
632
607
|
preserveWhiteSpace
|
|
633
608
|
});
|
|
634
609
|
}
|
|
635
610
|
if (this.props.format === 'string') {
|
|
636
611
|
return create({
|
|
637
612
|
html: value,
|
|
638
|
-
multilineTag: this.multilineTag,
|
|
639
|
-
multilineWrapperTags: this.multilineWrapperTags,
|
|
640
613
|
preserveWhiteSpace
|
|
641
614
|
});
|
|
642
615
|
}
|
|
@@ -1108,7 +1081,7 @@ export class RichText extends Component {
|
|
|
1108
1081
|
fontWeight: this.props.fontWeight,
|
|
1109
1082
|
fontStyle: this.props.fontStyle,
|
|
1110
1083
|
disableEditingMenu: disableEditingMenu,
|
|
1111
|
-
isMultiline:
|
|
1084
|
+
isMultiline: false,
|
|
1112
1085
|
textAlign: this.props.textAlign,
|
|
1113
1086
|
...(this.isIOS ? {
|
|
1114
1087
|
maxWidth
|