@wordpress/block-editor 12.14.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 +4 -0
- package/README.md +10 -5
- 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 +16 -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-parent-selector/index.js +1 -1
- package/build/components/block-parent-selector/index.js.map +1 -1
- package/build/components/block-pattern-setup/index.js +25 -16
- package/build/components/block-pattern-setup/index.js.map +1 -1
- package/build/components/block-pattern-setup/setup-toolbar.js +4 -2
- package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build/components/block-patterns-list/index.js +37 -20
- 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/index.js +28 -0
- package/build/components/block-rename/index.js.map +1 -0
- package/build/components/block-rename/is-empty-string.js +10 -0
- package/build/components/block-rename/is-empty-string.js.map +1 -0
- package/build/components/block-rename/modal.js +90 -0
- package/build/components/block-rename/modal.js.map +1 -0
- package/build/components/block-rename/rename-control.js +74 -0
- package/build/components/block-rename/rename-control.js.map +1 -0
- package/build/components/block-rename/use-block-rename.js +17 -0
- package/build/components/block-rename/use-block-rename.js.map +1 -0
- 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-settings-menu/block-settings-dropdown.js +33 -20
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +7 -0
- package/build/components/block-settings-menu-controls/index.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/block-toolbar-menu.native.js +1 -1
- package/build/components/block-toolbar/block-toolbar-menu.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.js +6 -2
- package/build/components/block-types-list/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/date-format-picker/index.js +8 -1
- package/build/components/date-format-picker/index.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/advanced-panel.js +1 -1
- package/build/components/global-styles/advanced-panel.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/image-size-control/index.js +0 -5
- package/build/components/image-size-control/index.js.map +1 -1
- package/build/components/index.native.js +8 -0
- package/build/components/index.native.js.map +1 -1
- package/build/components/inner-blocks/index.js +3 -1
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/warning-max-depth-exceeded.native.js +29 -31
- package/build/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/pattern-list.js +1 -1
- package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +1 -1
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/use-pattern-categories.js +1 -1
- package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/utils.js +3 -4
- package/build/components/inserter/block-patterns-tab/utils.js.map +1 -1
- package/build/components/inserter/hooks/use-patterns-state.js +2 -1
- package/build/components/inserter/hooks/use-patterns-state.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/inserter-listbox/index.js +11 -6
- package/build/components/inserter-listbox/index.js.map +1 -1
- package/build/components/inserter-listbox/item.js +24 -23
- package/build/components/inserter-listbox/item.js.map +1 -1
- package/build/components/inserter-listbox/row.js +5 -5
- package/build/components/inserter-listbox/row.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/list-view/use-list-view-expand-selected-item.js +2 -3
- package/build/components/list-view/use-list-view-expand-selected-item.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 -60
- 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 +10 -17
- 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 +41 -37
- package/build/components/rich-text/native/index.native.js.map +1 -1
- package/build/components/rich-text/use-input-rules.js +35 -2
- 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/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +74 -9
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-moving-animation/index.js +2 -1
- package/build/components/use-moving-animation/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 +16 -2
- 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 +38 -0
- 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 +64 -73
- 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 -15
- 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 +29 -108
- 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/layouts/constrained.js +4 -3
- package/build/layouts/constrained.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 -58
- 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/utils/transform-styles/index.js +26 -6
- package/build/utils/transform-styles/index.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 +16 -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-parent-selector/index.js +1 -1
- package/build-module/components/block-parent-selector/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/index.js +24 -15
- package/build-module/components/block-pattern-setup/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/setup-toolbar.js +4 -2
- package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js +37 -20
- 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/index.js +4 -0
- package/build-module/components/block-rename/index.js.map +1 -0
- package/build-module/components/block-rename/is-empty-string.js +4 -0
- package/build-module/components/block-rename/is-empty-string.js.map +1 -0
- package/build-module/components/block-rename/modal.js +82 -0
- package/build-module/components/block-rename/modal.js.map +1 -0
- package/build-module/components/block-rename/rename-control.js +66 -0
- package/build-module/components/block-rename/rename-control.js.map +1 -0
- package/build-module/components/block-rename/use-block-rename.js +10 -0
- package/build-module/components/block-rename/use-block-rename.js.map +1 -0
- 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-settings-menu/block-settings-dropdown.js +34 -21
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +7 -0
- package/build-module/components/block-settings-menu-controls/index.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/block-toolbar-menu.native.js +1 -1
- package/build-module/components/block-toolbar/block-toolbar-menu.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.js +6 -2
- package/build-module/components/block-types-list/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/date-format-picker/index.js +8 -1
- package/build-module/components/date-format-picker/index.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/advanced-panel.js +1 -1
- package/build-module/components/global-styles/advanced-panel.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/image-size-control/index.js +0 -5
- package/build-module/components/image-size-control/index.js.map +1 -1
- package/build-module/components/index.native.js +1 -0
- package/build-module/components/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +3 -1
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js +30 -32
- package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
- package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +4 -4
- package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js +2 -2
- package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/utils.js +3 -4
- package/build-module/components/inserter/block-patterns-tab/utils.js.map +1 -1
- package/build-module/components/inserter/hooks/use-patterns-state.js +2 -1
- package/build-module/components/inserter/hooks/use-patterns-state.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/inserter-listbox/index.js +13 -8
- package/build-module/components/inserter-listbox/index.js.map +1 -1
- package/build-module/components/inserter-listbox/item.js +25 -23
- package/build-module/components/inserter-listbox/item.js.map +1 -1
- package/build-module/components/inserter-listbox/row.js +6 -5
- package/build-module/components/inserter-listbox/row.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/list-view/use-list-view-expand-selected-item.js +2 -3
- package/build-module/components/list-view/use-list-view-expand-selected-item.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 -60
- 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 +11 -19
- 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 +41 -37
- package/build-module/components/rich-text/native/index.native.js.map +1 -1
- package/build-module/components/rich-text/use-input-rules.js +36 -3
- 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/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +73 -9
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-moving-animation/index.js +2 -1
- package/build-module/components/use-moving-animation/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 +15 -3
- 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 +36 -0
- 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 +60 -74
- 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 -15
- 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 +26 -105
- 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/layouts/constrained.js +4 -3
- package/build-module/layouts/constrained.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 -51
- 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-module/utils/transform-styles/index.js +24 -7
- package/build-module/utils/transform-styles/index.js.map +1 -1
- package/build-style/content-rtl.css +6 -6
- package/build-style/content.css +6 -6
- package/build-style/style-rtl.css +123 -298
- package/build-style/style.css +123 -298
- 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 +20 -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-parent-selector/index.js +1 -1
- package/src/components/block-pattern-setup/index.js +38 -22
- package/src/components/block-pattern-setup/setup-toolbar.js +2 -0
- package/src/components/block-pattern-setup/style.scss +4 -1
- package/src/components/block-patterns-list/README.md +4 -4
- package/src/components/block-patterns-list/index.js +61 -35
- package/src/components/block-patterns-list/style.scss +7 -0
- package/src/components/block-removal-warning-modal/index.js +7 -14
- package/src/components/block-rename/index.js +3 -0
- package/src/components/block-rename/is-empty-string.js +3 -0
- package/src/components/block-rename/modal.js +121 -0
- package/src/components/block-rename/rename-control.js +80 -0
- package/src/components/block-rename/use-block-rename.js +10 -0
- package/src/components/block-settings/container.native.js +3 -5
- package/src/components/block-settings-menu/block-settings-dropdown.js +38 -34
- package/src/components/block-settings-menu-controls/index.js +9 -0
- 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/block-toolbar-menu.native.js +1 -4
- 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.js +5 -4
- 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/button-block-appender/content.scss +2 -2
- package/src/components/colors-gradients/control.js +49 -30
- package/src/components/colors-gradients/style.scss +0 -7
- package/src/components/date-format-picker/index.js +7 -0
- package/src/components/duotone-control/index.js +2 -5
- package/src/components/duotone-control/style.scss +1 -6
- package/src/components/editable-text/README.md +0 -36
- package/src/components/global-styles/advanced-panel.js +1 -1
- 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/image-size-control/index.js +0 -6
- package/src/components/index.native.js +1 -0
- package/src/components/inner-blocks/README.md +13 -2
- package/src/components/inner-blocks/index.js +6 -2
- package/src/components/inner-blocks/warning-max-depth-exceeded.native.js +57 -33
- package/src/components/inserter/block-patterns-explorer/pattern-list.js +5 -1
- package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +7 -3
- package/src/components/inserter/block-patterns-tab/use-pattern-categories.js +6 -1
- package/src/components/inserter/block-patterns-tab/utils.js +6 -4
- package/src/components/inserter/hooks/use-patterns-state.js +3 -1
- 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/inserter-listbox/index.js +11 -7
- package/src/components/inserter-listbox/item.js +11 -12
- package/src/components/inserter-listbox/row.js +6 -12
- 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/list-view/use-list-view-expand-selected-item.js +7 -8
- package/src/components/navigable-toolbar/README.md +2 -0
- package/src/components/navigable-toolbar/index.js +2 -2
- package/src/components/plain-text/README.md +0 -28
- package/src/components/preview-options/index.js +6 -84
- package/src/components/rich-text/README.md +0 -58
- 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 +9 -26
- package/src/components/rich-text/native/get-format-colors.native.js +33 -40
- package/src/components/rich-text/native/index.native.js +52 -50
- package/src/components/rich-text/use-input-rules.js +36 -3
- package/src/components/rich-text/with-deprecations.js +51 -0
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
- package/src/components/url-input/README.md +1 -74
- package/src/components/use-block-drop-zone/index.js +118 -15
- package/src/components/use-moving-animation/index.js +1 -1
- 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 +17 -3
- package/src/components/use-settings/test/index.js +1 -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 +33 -0
- 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 +70 -94
- 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 -15
- package/src/hooks/index.native.js +6 -3
- package/src/hooks/layout-child.js +53 -0
- package/src/hooks/layout.js +25 -110
- 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/__snapshots__/align.native.js.snap +5 -5
- package/src/hooks/test/align.js +1 -178
- package/src/hooks/typography.js +20 -16
- package/src/hooks/utils.js +187 -6
- package/src/layouts/constrained.js +57 -50
- 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 -67
- package/src/store/utils.js +74 -0
- package/src/style.scss +1 -3
- package/src/utils/object.js +18 -69
- package/src/utils/selection.js +9 -2
- package/src/utils/test/transform-styles.js +49 -0
- package/src/utils/transform-styles/index.js +39 -13
- 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/hooks/block-rename-ui.js +0 -167
- package/build/hooks/block-rename-ui.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/build-module/hooks/block-rename-ui.js +0 -159
- package/build-module/hooks/block-rename-ui.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/block-rename-ui.js +0 -228
- package/src/hooks/test/color.js +0 -112
- /package/src/{hooks/block-rename-ui.scss → components/block-rename/style.scss} +0 -0
|
@@ -13,14 +13,11 @@ import {
|
|
|
13
13
|
createContext,
|
|
14
14
|
} from '@wordpress/element';
|
|
15
15
|
import { useDispatch, useSelect } from '@wordpress/data';
|
|
16
|
-
import {
|
|
17
|
-
import { useInstanceId, useMergeRefs } from '@wordpress/compose';
|
|
16
|
+
import { useMergeRefs } from '@wordpress/compose';
|
|
18
17
|
import {
|
|
19
18
|
__unstableUseRichText as useRichText,
|
|
20
|
-
__unstableCreateElement,
|
|
21
19
|
removeFormat,
|
|
22
20
|
} from '@wordpress/rich-text';
|
|
23
|
-
import deprecated from '@wordpress/deprecated';
|
|
24
21
|
import { Popover } from '@wordpress/components';
|
|
25
22
|
|
|
26
23
|
/**
|
|
@@ -46,7 +43,7 @@ import { useFirefoxCompat } from './use-firefox-compat';
|
|
|
46
43
|
import FormatEdit from './format-edit';
|
|
47
44
|
import { getAllowedFormats } from './utils';
|
|
48
45
|
import { Content } from './content';
|
|
49
|
-
import
|
|
46
|
+
import { withDeprecations } from './with-deprecations';
|
|
50
47
|
|
|
51
48
|
export const keyboardShortcutContext = createContext();
|
|
52
49
|
export const inputEventContext = createContext();
|
|
@@ -387,47 +384,9 @@ export function RichTextWrapper(
|
|
|
387
384
|
);
|
|
388
385
|
}
|
|
389
386
|
|
|
390
|
-
const
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
let value = props.value;
|
|
394
|
-
let onChange = props.onChange;
|
|
395
|
-
|
|
396
|
-
// Handle deprecated format.
|
|
397
|
-
if ( Array.isArray( value ) ) {
|
|
398
|
-
deprecated( 'wp.blockEditor.RichText value prop as children type', {
|
|
399
|
-
since: '6.1',
|
|
400
|
-
version: '6.3',
|
|
401
|
-
alternative: 'value prop as string',
|
|
402
|
-
link: 'https://developer.wordpress.org/block-editor/how-to-guides/block-tutorial/introducing-attributes-and-editable-fields/',
|
|
403
|
-
} );
|
|
404
|
-
|
|
405
|
-
value = childrenSource.toHTML( props.value );
|
|
406
|
-
onChange = ( newValue ) =>
|
|
407
|
-
props.onChange(
|
|
408
|
-
childrenSource.fromDOM(
|
|
409
|
-
__unstableCreateElement( document, newValue ).childNodes
|
|
410
|
-
)
|
|
411
|
-
);
|
|
412
|
-
}
|
|
413
|
-
|
|
414
|
-
const Component = props.multiline
|
|
415
|
-
? RichTextMultiline
|
|
416
|
-
: ForwardedRichTextWrapper;
|
|
417
|
-
const instanceId = useInstanceId( RichTextSwitcher );
|
|
418
|
-
|
|
419
|
-
return (
|
|
420
|
-
<Component
|
|
421
|
-
{ ...props }
|
|
422
|
-
identifier={ props.identifier || instanceId }
|
|
423
|
-
value={ value }
|
|
424
|
-
onChange={ onChange }
|
|
425
|
-
ref={ ref }
|
|
426
|
-
/>
|
|
427
|
-
);
|
|
428
|
-
}
|
|
429
|
-
|
|
430
|
-
const ForwardedRichTextContainer = forwardRef( RichTextSwitcher );
|
|
387
|
+
const ForwardedRichTextContainer = withDeprecations(
|
|
388
|
+
forwardRef( RichTextWrapper )
|
|
389
|
+
);
|
|
431
390
|
|
|
432
391
|
ForwardedRichTextContainer.Content = Content;
|
|
433
392
|
ForwardedRichTextContainer.isEmpty = ( value ) => {
|
|
@@ -39,17 +39,17 @@ import FormatToolbarContainer from './format-toolbar-container';
|
|
|
39
39
|
import { store as blockEditorStore } from '../../store';
|
|
40
40
|
import {
|
|
41
41
|
addActiveFormats,
|
|
42
|
-
getMultilineTag,
|
|
43
42
|
getAllowedFormats,
|
|
44
43
|
createLinkInParagraph,
|
|
45
44
|
} from './utils';
|
|
46
45
|
import EmbedHandlerPicker from './embed-handler-picker';
|
|
47
46
|
import { Content } from './content';
|
|
48
47
|
import RichText from './native';
|
|
48
|
+
import { withDeprecations } from './with-deprecations';
|
|
49
49
|
|
|
50
50
|
const classes = 'block-editor-rich-text__editable';
|
|
51
51
|
|
|
52
|
-
function RichTextWrapper(
|
|
52
|
+
export function RichTextWrapper(
|
|
53
53
|
{
|
|
54
54
|
children,
|
|
55
55
|
tagName,
|
|
@@ -58,7 +58,6 @@ function RichTextWrapper(
|
|
|
58
58
|
value: originalValue,
|
|
59
59
|
onChange: originalOnChange,
|
|
60
60
|
isSelected: originalIsSelected,
|
|
61
|
-
multiline,
|
|
62
61
|
inlineToolbar,
|
|
63
62
|
wrapperClassName,
|
|
64
63
|
autocompleters,
|
|
@@ -80,7 +79,6 @@ function RichTextWrapper(
|
|
|
80
79
|
disableLineBreaks,
|
|
81
80
|
unstableOnFocus,
|
|
82
81
|
__unstableAllowPrefixTransformations,
|
|
83
|
-
__unstableMultilineRootTag,
|
|
84
82
|
// Native props.
|
|
85
83
|
__unstableMobileNoFocusOnMount,
|
|
86
84
|
deleteEnter,
|
|
@@ -179,7 +177,6 @@ function RichTextWrapper(
|
|
|
179
177
|
selectionChange,
|
|
180
178
|
__unstableMarkAutomaticChange,
|
|
181
179
|
} = useDispatch( blockEditorStore );
|
|
182
|
-
const multilineTag = getMultilineTag( multiline );
|
|
183
180
|
const adjustedAllowedFormats = getAllowedFormats( {
|
|
184
181
|
allowedFormats,
|
|
185
182
|
disableFormats,
|
|
@@ -223,7 +220,7 @@ function RichTextWrapper(
|
|
|
223
220
|
// an intentional user interaction distinguishing between Backspace and
|
|
224
221
|
// Delete to remove the empty field, but also to avoid merge & remove
|
|
225
222
|
// causing destruction of two fields (merge, then removed merged).
|
|
226
|
-
if ( onRemove && isEmpty( value ) && isReverse ) {
|
|
223
|
+
else if ( onRemove && isEmpty( value ) && isReverse ) {
|
|
227
224
|
onRemove( ! isReverse );
|
|
228
225
|
}
|
|
229
226
|
},
|
|
@@ -261,10 +258,7 @@ function RichTextWrapper(
|
|
|
261
258
|
if ( ! hasPastedBlocks || ! isEmpty( before ) ) {
|
|
262
259
|
blocks.push(
|
|
263
260
|
onSplit(
|
|
264
|
-
toHTMLString( {
|
|
265
|
-
value: before,
|
|
266
|
-
multilineTag,
|
|
267
|
-
} ),
|
|
261
|
+
toHTMLString( { value: before } ),
|
|
268
262
|
! isAfterOriginal
|
|
269
263
|
)
|
|
270
264
|
);
|
|
@@ -288,13 +282,7 @@ function RichTextWrapper(
|
|
|
288
282
|
: ! onSplitMiddle || ! isEmpty( after )
|
|
289
283
|
) {
|
|
290
284
|
blocks.push(
|
|
291
|
-
onSplit(
|
|
292
|
-
toHTMLString( {
|
|
293
|
-
value: after,
|
|
294
|
-
multilineTag,
|
|
295
|
-
} ),
|
|
296
|
-
isAfterOriginal
|
|
297
|
-
)
|
|
285
|
+
onSplit( toHTMLString( { value: after } ), isAfterOriginal )
|
|
298
286
|
);
|
|
299
287
|
}
|
|
300
288
|
|
|
@@ -308,7 +296,7 @@ function RichTextWrapper(
|
|
|
308
296
|
|
|
309
297
|
onReplace( blocks, indexToSelect, initialPosition );
|
|
310
298
|
},
|
|
311
|
-
[ onReplace, onSplit,
|
|
299
|
+
[ onReplace, onSplit, onSplitMiddle ]
|
|
312
300
|
);
|
|
313
301
|
|
|
314
302
|
const onEnter = useCallback(
|
|
@@ -370,7 +358,6 @@ function RichTextWrapper(
|
|
|
370
358
|
onReplace,
|
|
371
359
|
onSplit,
|
|
372
360
|
__unstableMarkAutomaticChange,
|
|
373
|
-
multiline,
|
|
374
361
|
splitValue,
|
|
375
362
|
onSplitAtEnd,
|
|
376
363
|
]
|
|
@@ -392,9 +379,6 @@ function RichTextWrapper(
|
|
|
392
379
|
if ( isInternal ) {
|
|
393
380
|
const pastedValue = create( {
|
|
394
381
|
html,
|
|
395
|
-
multilineTag,
|
|
396
|
-
multilineWrapperTags:
|
|
397
|
-
multilineTag === 'li' ? [ 'ul', 'ol' ] : undefined,
|
|
398
382
|
preserveWhiteSpace,
|
|
399
383
|
} );
|
|
400
384
|
addActiveFormats( pastedValue, activeFormats );
|
|
@@ -496,7 +480,6 @@ function RichTextWrapper(
|
|
|
496
480
|
onSplit,
|
|
497
481
|
splitValue,
|
|
498
482
|
__unstableEmbedURLOnPaste,
|
|
499
|
-
multilineTag,
|
|
500
483
|
preserveWhiteSpace,
|
|
501
484
|
pastePlainText,
|
|
502
485
|
]
|
|
@@ -568,7 +551,6 @@ function RichTextWrapper(
|
|
|
568
551
|
onPaste={ onPaste }
|
|
569
552
|
__unstableIsSelected={ isSelected }
|
|
570
553
|
__unstableInputRule={ inputRule }
|
|
571
|
-
__unstableMultilineTag={ multilineTag }
|
|
572
554
|
__unstableOnEnterFormattedText={ enterFormattedText }
|
|
573
555
|
__unstableOnExitFormattedText={ exitFormattedText }
|
|
574
556
|
__unstableOnCreateUndoLevel={ __unstableMarkLastChangeAsPersistent }
|
|
@@ -582,7 +564,6 @@ function RichTextWrapper(
|
|
|
582
564
|
__unstableAllowPrefixTransformations={
|
|
583
565
|
__unstableAllowPrefixTransformations
|
|
584
566
|
}
|
|
585
|
-
__unstableMultilineRootTag={ __unstableMultilineRootTag }
|
|
586
567
|
// Native props.
|
|
587
568
|
blockIsSelected={
|
|
588
569
|
originalIsSelected !== undefined
|
|
@@ -675,7 +656,9 @@ function RichTextWrapper(
|
|
|
675
656
|
);
|
|
676
657
|
}
|
|
677
658
|
|
|
678
|
-
const ForwardedRichTextContainer =
|
|
659
|
+
const ForwardedRichTextContainer = withDeprecations(
|
|
660
|
+
forwardRef( RichTextWrapper )
|
|
661
|
+
);
|
|
679
662
|
|
|
680
663
|
ForwardedRichTextContainer.Content = Content;
|
|
681
664
|
|
|
@@ -5,50 +5,43 @@ import { getColorObjectByAttributeValues } from '../../../components/colors';
|
|
|
5
5
|
|
|
6
6
|
const FORMAT_TYPE = 'core/text-color';
|
|
7
7
|
const REGEX_TO_MATCH = /^has-(.*)-color$/;
|
|
8
|
-
const TAGS_TO_SEARCH = /\<mark/;
|
|
9
8
|
|
|
10
|
-
export function getFormatColors(
|
|
11
|
-
|
|
12
|
-
const newFormats = formats.slice();
|
|
9
|
+
export function getFormatColors( formats, colors ) {
|
|
10
|
+
const newFormats = formats.slice();
|
|
13
11
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
12
|
+
// We are looping through a sparse array where empty indices will be
|
|
13
|
+
// skipped.
|
|
14
|
+
newFormats.forEach( ( format ) => {
|
|
15
|
+
format.forEach( ( currentFormat ) => {
|
|
16
|
+
if ( currentFormat?.type === FORMAT_TYPE ) {
|
|
17
|
+
const className = currentFormat?.attributes?.class;
|
|
20
18
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
(
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
currentStyles,
|
|
42
|
-
].join( ';' );
|
|
43
|
-
}
|
|
19
|
+
className?.split( ' ' ).forEach( ( currentClass ) => {
|
|
20
|
+
const match = currentClass.match( REGEX_TO_MATCH );
|
|
21
|
+
if ( match ) {
|
|
22
|
+
const [ , colorSlug ] =
|
|
23
|
+
currentClass.match( REGEX_TO_MATCH );
|
|
24
|
+
const colorObject = getColorObjectByAttributeValues(
|
|
25
|
+
colors,
|
|
26
|
+
colorSlug
|
|
27
|
+
);
|
|
28
|
+
const currentStyles = currentFormat?.attributes?.style;
|
|
29
|
+
if (
|
|
30
|
+
colorObject &&
|
|
31
|
+
( ! currentStyles ||
|
|
32
|
+
currentStyles?.indexOf( colorObject.color ) ===
|
|
33
|
+
-1 )
|
|
34
|
+
) {
|
|
35
|
+
currentFormat.attributes.style = [
|
|
36
|
+
`color: ${ colorObject.color }`,
|
|
37
|
+
currentStyles,
|
|
38
|
+
].join( ';' );
|
|
44
39
|
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
40
|
+
}
|
|
41
|
+
} );
|
|
42
|
+
}
|
|
48
43
|
} );
|
|
44
|
+
} );
|
|
49
45
|
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
return formats;
|
|
46
|
+
return newFormats;
|
|
54
47
|
}
|
|
@@ -105,27 +105,11 @@ const DEFAULT_FONT_SIZE = 16;
|
|
|
105
105
|
const MIN_LINE_HEIGHT = 1;
|
|
106
106
|
|
|
107
107
|
export class RichText extends Component {
|
|
108
|
-
constructor( {
|
|
109
|
-
value,
|
|
110
|
-
selectionStart,
|
|
111
|
-
selectionEnd,
|
|
112
|
-
__unstableMultilineTag: multiline,
|
|
113
|
-
} ) {
|
|
108
|
+
constructor( { value, selectionStart, selectionEnd } ) {
|
|
114
109
|
super( ...arguments );
|
|
115
110
|
|
|
116
|
-
this.isMultiline = false;
|
|
117
|
-
if ( multiline === true || multiline === 'p' || multiline === 'li' ) {
|
|
118
|
-
this.multilineTag = multiline === true ? 'p' : multiline;
|
|
119
|
-
this.isMultiline = true;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
if ( this.multilineTag === 'li' ) {
|
|
123
|
-
this.multilineWrapperTags = [ 'ul', 'ol' ];
|
|
124
|
-
}
|
|
125
|
-
|
|
126
111
|
this.isIOS = Platform.OS === 'ios';
|
|
127
112
|
this.createRecord = this.createRecord.bind( this );
|
|
128
|
-
this.restoreParagraphTags = this.restoreParagraphTags.bind( this );
|
|
129
113
|
this.onChangeFromAztec = this.onChangeFromAztec.bind( this );
|
|
130
114
|
this.onKeyDown = this.onKeyDown.bind( this );
|
|
131
115
|
this.handleEnter = this.handleEnter.bind( this );
|
|
@@ -196,7 +180,7 @@ export class RichText extends Component {
|
|
|
196
180
|
|
|
197
181
|
const { formats, replacements, text } = currentValue;
|
|
198
182
|
const { activeFormats } = this.state;
|
|
199
|
-
const newFormats = getFormatColors(
|
|
183
|
+
const newFormats = getFormatColors( formats, colorPalette );
|
|
200
184
|
|
|
201
185
|
return {
|
|
202
186
|
formats: newFormats,
|
|
@@ -223,8 +207,6 @@ export class RichText extends Component {
|
|
|
223
207
|
...create( {
|
|
224
208
|
html: this.value,
|
|
225
209
|
range: null,
|
|
226
|
-
multilineTag: this.multilineTag,
|
|
227
|
-
multilineWrapperTags: this.multilineWrapperTags,
|
|
228
210
|
preserveWhiteSpace,
|
|
229
211
|
} ),
|
|
230
212
|
};
|
|
@@ -235,12 +217,7 @@ export class RichText extends Component {
|
|
|
235
217
|
|
|
236
218
|
valueToFormat( value ) {
|
|
237
219
|
// Remove the outer root tags.
|
|
238
|
-
return this.removeRootTagsProducedByAztec(
|
|
239
|
-
toHTMLString( {
|
|
240
|
-
value,
|
|
241
|
-
multilineTag: this.multilineTag,
|
|
242
|
-
} )
|
|
243
|
-
);
|
|
220
|
+
return this.removeRootTagsProducedByAztec( toHTMLString( { value } ) );
|
|
244
221
|
}
|
|
245
222
|
|
|
246
223
|
getActiveFormatNames( record ) {
|
|
@@ -357,31 +334,17 @@ export class RichText extends Component {
|
|
|
357
334
|
const contentWithoutRootTag = this.removeRootTagsProducedByAztec(
|
|
358
335
|
unescapeSpaces( event.nativeEvent.text )
|
|
359
336
|
);
|
|
360
|
-
let formattedContent = contentWithoutRootTag;
|
|
361
|
-
if ( ! this.isIOS ) {
|
|
362
|
-
formattedContent = this.restoreParagraphTags(
|
|
363
|
-
contentWithoutRootTag,
|
|
364
|
-
this.multilineTag
|
|
365
|
-
);
|
|
366
|
-
}
|
|
367
337
|
|
|
368
338
|
this.debounceCreateUndoLevel();
|
|
369
|
-
const refresh = this.value !==
|
|
370
|
-
this.value =
|
|
339
|
+
const refresh = this.value !== contentWithoutRootTag;
|
|
340
|
+
this.value = contentWithoutRootTag;
|
|
371
341
|
|
|
372
342
|
// We don't want to refresh if our goal is just to create a record.
|
|
373
343
|
if ( refresh ) {
|
|
374
|
-
this.props.onChange(
|
|
344
|
+
this.props.onChange( contentWithoutRootTag );
|
|
375
345
|
}
|
|
376
346
|
}
|
|
377
347
|
|
|
378
|
-
restoreParagraphTags( value, tag ) {
|
|
379
|
-
if ( tag === 'p' && ( ! value || ! value.startsWith( '<p>' ) ) ) {
|
|
380
|
-
return '<p>' + value + '</p>';
|
|
381
|
-
}
|
|
382
|
-
return value;
|
|
383
|
-
}
|
|
384
|
-
|
|
385
348
|
/*
|
|
386
349
|
* Handles any case where the content of the AztecRN instance has changed in size
|
|
387
350
|
*/
|
|
@@ -650,6 +613,40 @@ export class RichText extends Component {
|
|
|
650
613
|
return shouldDrop;
|
|
651
614
|
}
|
|
652
615
|
|
|
616
|
+
/**
|
|
617
|
+
* Determines whether the text input should receive focus after an update.
|
|
618
|
+
* For cases where a RichText with a value is merged with an empty one.
|
|
619
|
+
*
|
|
620
|
+
* @param {Object} prevProps - The previous props of the component.
|
|
621
|
+
* @return {boolean} True if the text input should receive focus, false otherwise.
|
|
622
|
+
*/
|
|
623
|
+
shouldFocusTextInputAfterMerge( prevProps ) {
|
|
624
|
+
const {
|
|
625
|
+
__unstableIsSelected: isSelected,
|
|
626
|
+
blockIsSelected,
|
|
627
|
+
selectionStart,
|
|
628
|
+
selectionEnd,
|
|
629
|
+
__unstableMobileNoFocusOnMount,
|
|
630
|
+
} = this.props;
|
|
631
|
+
|
|
632
|
+
const {
|
|
633
|
+
__unstableIsSelected: prevIsSelected,
|
|
634
|
+
blockIsSelected: prevBlockIsSelected,
|
|
635
|
+
} = prevProps;
|
|
636
|
+
|
|
637
|
+
const noSelectionValues =
|
|
638
|
+
selectionStart === undefined && selectionEnd === undefined;
|
|
639
|
+
const textInputWasNotFocused = ! prevIsSelected && ! isSelected;
|
|
640
|
+
|
|
641
|
+
return (
|
|
642
|
+
! __unstableMobileNoFocusOnMount &&
|
|
643
|
+
noSelectionValues &&
|
|
644
|
+
textInputWasNotFocused &&
|
|
645
|
+
! prevBlockIsSelected &&
|
|
646
|
+
blockIsSelected
|
|
647
|
+
);
|
|
648
|
+
}
|
|
649
|
+
|
|
653
650
|
onSelectionChangeFromAztec( start, end, text, event ) {
|
|
654
651
|
if ( this.shouldDropEventFromAztec( event, 'onSelectionChange' ) ) {
|
|
655
652
|
return;
|
|
@@ -705,8 +702,6 @@ export class RichText extends Component {
|
|
|
705
702
|
if ( Array.isArray( value ) ) {
|
|
706
703
|
return create( {
|
|
707
704
|
html: childrenBlock.toHTML( value ),
|
|
708
|
-
multilineTag: this.multilineTag,
|
|
709
|
-
multilineWrapperTags: this.multilineWrapperTags,
|
|
710
705
|
preserveWhiteSpace,
|
|
711
706
|
} );
|
|
712
707
|
}
|
|
@@ -714,8 +709,6 @@ export class RichText extends Component {
|
|
|
714
709
|
if ( this.props.format === 'string' ) {
|
|
715
710
|
return create( {
|
|
716
711
|
html: value,
|
|
717
|
-
multilineTag: this.multilineTag,
|
|
718
|
-
multilineWrapperTags: this.multilineWrapperTags,
|
|
719
712
|
preserveWhiteSpace,
|
|
720
713
|
} );
|
|
721
714
|
}
|
|
@@ -843,9 +836,8 @@ export class RichText extends Component {
|
|
|
843
836
|
if ( this.props.value !== this.value ) {
|
|
844
837
|
this.value = this.props.value;
|
|
845
838
|
}
|
|
846
|
-
const { __unstableIsSelected: isSelected } = this.props;
|
|
847
|
-
|
|
848
839
|
const { __unstableIsSelected: prevIsSelected } = prevProps;
|
|
840
|
+
const { __unstableIsSelected: isSelected } = this.props;
|
|
849
841
|
|
|
850
842
|
if ( isSelected && ! prevIsSelected ) {
|
|
851
843
|
this._editor.focus();
|
|
@@ -855,6 +847,16 @@ export class RichText extends Component {
|
|
|
855
847
|
this.props.selectionStart || 0,
|
|
856
848
|
this.props.selectionEnd || 0
|
|
857
849
|
);
|
|
850
|
+
} else if ( this.shouldFocusTextInputAfterMerge( prevProps ) ) {
|
|
851
|
+
// Since this is happening when merging blocks, the selection should be at the last character position.
|
|
852
|
+
// As a fallback the internal selectionEnd value is used.
|
|
853
|
+
const lastCharacterPosition =
|
|
854
|
+
this.value?.length ?? this.selectionEnd;
|
|
855
|
+
this._editor.focus();
|
|
856
|
+
this.props.onSelectionChange(
|
|
857
|
+
lastCharacterPosition,
|
|
858
|
+
lastCharacterPosition
|
|
859
|
+
);
|
|
858
860
|
} else if ( ! isSelected && prevIsSelected ) {
|
|
859
861
|
this._editor.blur();
|
|
860
862
|
}
|
|
@@ -1280,7 +1282,7 @@ export class RichText extends Component {
|
|
|
1280
1282
|
fontWeight={ this.props.fontWeight }
|
|
1281
1283
|
fontStyle={ this.props.fontStyle }
|
|
1282
1284
|
disableEditingMenu={ disableEditingMenu }
|
|
1283
|
-
isMultiline={
|
|
1285
|
+
isMultiline={ false }
|
|
1284
1286
|
textAlign={ this.props.textAlign }
|
|
1285
1287
|
{ ...( this.isIOS ? { maxWidth } : {} ) }
|
|
1286
1288
|
minWidth={ minWidth }
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { useRef } from '@wordpress/element';
|
|
5
5
|
import { useRefEffect } from '@wordpress/compose';
|
|
6
|
-
import { insert, toHTMLString } from '@wordpress/rich-text';
|
|
6
|
+
import { insert, isCollapsed, toHTMLString } from '@wordpress/rich-text';
|
|
7
7
|
import { getBlockTransforms, findTransform } from '@wordpress/blocks';
|
|
8
8
|
import { useDispatch } from '@wordpress/data';
|
|
9
9
|
|
|
@@ -28,7 +28,12 @@ function findSelection( blocks ) {
|
|
|
28
28
|
if ( attributeKey ) {
|
|
29
29
|
blocks[ i ].attributes[ attributeKey ] = blocks[ i ].attributes[
|
|
30
30
|
attributeKey
|
|
31
|
-
]
|
|
31
|
+
]
|
|
32
|
+
// To do: refactor this to use rich text's selection instead, so
|
|
33
|
+
// we no longer have to use on this hack inserting a special
|
|
34
|
+
// character.
|
|
35
|
+
.toString()
|
|
36
|
+
.replace( START_OF_SELECTED_AREA, '' );
|
|
32
37
|
return [ blocks[ i ].clientId, attributeKey, 0, 0 ];
|
|
33
38
|
}
|
|
34
39
|
|
|
@@ -42,6 +47,34 @@ function findSelection( blocks ) {
|
|
|
42
47
|
return [];
|
|
43
48
|
}
|
|
44
49
|
|
|
50
|
+
/**
|
|
51
|
+
* An input rule that replaces two spaces with an en space, and an en space
|
|
52
|
+
* followed by a space with an em space.
|
|
53
|
+
*
|
|
54
|
+
* @param {Object} value Value to replace spaces in.
|
|
55
|
+
*
|
|
56
|
+
* @return {Object} Value with spaces replaced.
|
|
57
|
+
*/
|
|
58
|
+
function replacePrecedingSpaces( value ) {
|
|
59
|
+
if ( ! isCollapsed( value ) ) {
|
|
60
|
+
return value;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
const { text, start } = value;
|
|
64
|
+
const lastTwoCharacters = text.slice( start - 2, start );
|
|
65
|
+
|
|
66
|
+
// Replace two spaces with an em space.
|
|
67
|
+
if ( lastTwoCharacters === ' ' ) {
|
|
68
|
+
return insert( value, '\u2002', start - 2, start );
|
|
69
|
+
}
|
|
70
|
+
// Replace an en space followed by a space with an em space.
|
|
71
|
+
else if ( lastTwoCharacters === '\u2002 ' ) {
|
|
72
|
+
return insert( value, '\u2003', start - 2, start );
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return value;
|
|
76
|
+
}
|
|
77
|
+
|
|
45
78
|
export function useInputRules( props ) {
|
|
46
79
|
const {
|
|
47
80
|
__unstableMarkLastChangeAsPersistent,
|
|
@@ -122,7 +155,7 @@ export function useInputRules( props ) {
|
|
|
122
155
|
|
|
123
156
|
return accumlator;
|
|
124
157
|
},
|
|
125
|
-
preventEventDiscovery( value )
|
|
158
|
+
preventEventDiscovery( replacePrecedingSpaces( value ) )
|
|
126
159
|
);
|
|
127
160
|
|
|
128
161
|
if ( transformed !== value ) {
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { forwardRef } from '@wordpress/element';
|
|
5
|
+
import { children as childrenSource } from '@wordpress/blocks';
|
|
6
|
+
import { useInstanceId } from '@wordpress/compose';
|
|
7
|
+
import { __unstableCreateElement } from '@wordpress/rich-text';
|
|
8
|
+
import deprecated from '@wordpress/deprecated';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Internal dependencies
|
|
12
|
+
*/
|
|
13
|
+
import RichTextMultiline from './multiline';
|
|
14
|
+
|
|
15
|
+
export function withDeprecations( Component ) {
|
|
16
|
+
return forwardRef( ( props, ref ) => {
|
|
17
|
+
let value = props.value;
|
|
18
|
+
let onChange = props.onChange;
|
|
19
|
+
|
|
20
|
+
// Handle deprecated format.
|
|
21
|
+
if ( Array.isArray( value ) ) {
|
|
22
|
+
deprecated( 'wp.blockEditor.RichText value prop as children type', {
|
|
23
|
+
since: '6.1',
|
|
24
|
+
version: '6.3',
|
|
25
|
+
alternative: 'value prop as string',
|
|
26
|
+
link: 'https://developer.wordpress.org/block-editor/how-to-guides/block-tutorial/introducing-attributes-and-editable-fields/',
|
|
27
|
+
} );
|
|
28
|
+
|
|
29
|
+
value = childrenSource.toHTML( props.value );
|
|
30
|
+
onChange = ( newValue ) =>
|
|
31
|
+
props.onChange(
|
|
32
|
+
childrenSource.fromDOM(
|
|
33
|
+
__unstableCreateElement( document, newValue ).childNodes
|
|
34
|
+
)
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const NewComponent = props.multiline ? RichTextMultiline : Component;
|
|
39
|
+
const instanceId = useInstanceId( NewComponent );
|
|
40
|
+
|
|
41
|
+
return (
|
|
42
|
+
<NewComponent
|
|
43
|
+
{ ...props }
|
|
44
|
+
identifier={ props.identifier || instanceId }
|
|
45
|
+
value={ value }
|
|
46
|
+
onChange={ onChange }
|
|
47
|
+
ref={ ref }
|
|
48
|
+
/>
|
|
49
|
+
);
|
|
50
|
+
} );
|
|
51
|
+
}
|
|
@@ -139,7 +139,7 @@ export default function SpacingInputControl( {
|
|
|
139
139
|
useMemo(
|
|
140
140
|
() => parseQuantityAndUnitFromRawValue( currentValue ),
|
|
141
141
|
[ currentValue ]
|
|
142
|
-
)[ 1 ] || units[ 0 ]
|
|
142
|
+
)[ 1 ] || units[ 0 ]?.value;
|
|
143
143
|
|
|
144
144
|
const setInitialValue = () => {
|
|
145
145
|
if ( value === undefined ) {
|