@wordpress/block-editor 12.23.0 → 12.25.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 +5 -1
- package/build/autocompleters/block.js.map +1 -1
- package/build/autocompleters/link.js.map +1 -1
- package/build/components/alignment-control/index.js.map +1 -1
- package/build/components/alignment-control/ui.js +3 -1
- package/build/components/alignment-control/ui.js.map +1 -1
- package/build/components/autocomplete/index.js.map +1 -1
- package/build/components/block-actions/index.js.map +1 -1
- package/build/components/block-alignment-control/constants.js.map +1 -1
- package/build/components/block-alignment-control/index.js.map +1 -1
- package/build/components/block-alignment-control/ui.js.map +1 -1
- package/build/components/block-alignment-control/ui.native.js.map +1 -1
- package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
- package/build/components/block-alignment-matrix-control/index.js.map +1 -1
- package/build/components/block-bindings-toolbar-indicator/index.js.map +1 -1
- package/build/components/block-breadcrumb/index.js.map +1 -1
- package/build/components/block-canvas/index.js.map +1 -1
- package/build/components/block-caption/index.native.js.map +1 -1
- package/build/components/block-card/index.js.map +1 -1
- package/build/components/block-compare/block-view.js.map +1 -1
- package/build/components/block-compare/index.js.map +1 -1
- package/build/components/block-content-overlay/index.js.map +1 -1
- package/build/components/block-context/index.js.map +1 -1
- package/build/components/block-controls/fill.js.map +1 -1
- package/build/components/block-controls/groups.js.map +1 -1
- package/build/components/block-controls/hook.js.map +1 -1
- package/build/components/block-controls/index.js.map +1 -1
- package/build/components/block-controls/slot.js.map +1 -1
- package/build/components/block-controls/slot.native.js.map +1 -1
- package/build/components/block-controls/use-has-block-controls.js.map +1 -1
- package/build/components/block-draggable/draggable-chip.js.map +1 -1
- package/build/components/block-draggable/draggable-chip.native.js.map +1 -1
- package/build/components/block-draggable/dropping-insertion-point.native.js +1 -1
- package/build/components/block-draggable/dropping-insertion-point.native.js.map +1 -1
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-draggable/index.native.js +1 -1
- package/build/components/block-draggable/index.native.js.map +1 -1
- package/build/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
- package/build/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -1
- package/build/components/block-edit/context.js +2 -1
- package/build/components/block-edit/context.js.map +1 -1
- package/build/components/block-edit/edit.js.map +1 -1
- package/build/components/block-edit/edit.native.js.map +1 -1
- package/build/components/block-edit/index.js +4 -2
- package/build/components/block-edit/index.js.map +1 -1
- package/build/components/block-edit-visually-button/index.js.map +1 -1
- package/build/components/block-editing-mode/index.js.map +1 -1
- package/build/components/block-full-height-alignment-control/index.js.map +1 -1
- package/build/components/block-heading-level-dropdown/heading-level-icon.js.map +1 -1
- package/build/components/block-heading-level-dropdown/index.js.map +1 -1
- package/build/components/block-heading-level-dropdown/index.native.js.map +1 -1
- package/build/components/block-icon/index.js.map +1 -1
- package/build/components/block-icon/index.native.js.map +1 -1
- package/build/components/block-info-slot-fill/index.js.map +1 -1
- package/build/components/block-inspector/index.js +5 -4
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-inspector/useBlockInspectorAnimationSettings.js.map +1 -1
- package/build/components/block-list/block-crash-boundary.js.map +1 -1
- package/build/components/block-list/block-crash-boundary.native.js.map +1 -1
- package/build/components/block-list/block-crash-warning.js.map +1 -1
- package/build/components/block-list/block-crash-warning.native.js.map +1 -1
- package/build/components/block-list/block-html.js.map +1 -1
- package/build/components/block-list/block-invalid-warning.js.map +1 -1
- package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
- package/build/components/block-list/block-list-context.native.js.map +1 -1
- package/build/components/block-list/block-list-item-cell.native.js.map +1 -1
- package/build/components/block-list/block-list-item.native.js.map +1 -1
- package/build/components/block-list/block-outline.native.js.map +1 -1
- package/build/components/block-list/block-selection-button.native.js.map +1 -1
- package/build/components/block-list/block.js +44 -35
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +2 -2
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/grid-item.native.js.map +1 -1
- package/build/components/block-list/index.js +18 -6
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list/index.native.js +1 -9
- package/build/components/block-list/index.native.js.map +1 -1
- package/build/components/block-list/insertion-point.native.js.map +1 -1
- package/build/components/block-list/layout.js.map +1 -1
- package/build/components/block-list/private-block-context.js.map +1 -1
- package/build/components/block-list/subdirectory-icon.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +8 -7
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/index.native.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-refs.js +17 -46
- package/build/components/block-list/use-block-props/use-block-refs.js.map +1 -1
- package/build/components/block-list/use-block-props/use-focus-first-element.js +3 -2
- 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-focus-handler.js.map +1 -1
- package/build/components/block-list/use-block-props/use-intersection-observer.js.map +1 -1
- package/build/components/block-list/use-block-props/use-is-hovered.js +10 -14
- package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build/components/block-list/use-block-props/use-nav-mode-exit.js.map +1 -1
- package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-list/use-scroll-upon-insertion.native.js.map +1 -1
- package/build/components/block-list-appender/index.js.map +1 -1
- package/build/components/block-list-appender/index.native.js.map +1 -1
- package/build/components/block-lock/index.js.map +1 -1
- package/build/components/block-lock/menu-item.js.map +1 -1
- package/build/components/block-lock/modal.js.map +1 -1
- package/build/components/block-lock/toolbar.js.map +1 -1
- package/build/components/block-lock/use-block-lock.js.map +1 -1
- package/build/components/block-media-update-progress/index.native.js.map +1 -1
- package/build/components/block-mover/button.js.map +1 -1
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-mover/index.native.js +3 -1
- package/build/components/block-mover/index.native.js.map +1 -1
- package/build/components/block-mover/mover-description.js.map +1 -1
- package/build/components/block-mover/mover-description.native.js.map +1 -1
- package/build/components/block-navigation/dropdown.js.map +1 -1
- package/build/components/block-parent-selector/index.js.map +1 -1
- package/build/components/block-pattern-setup/constants.js.map +1 -1
- package/build/components/block-pattern-setup/index.js.map +1 -1
- package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build/components/block-pattern-setup/use-patterns-setup.js.map +1 -1
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-patterns-paging/index.js +8 -4
- package/build/components/block-patterns-paging/index.js.map +1 -1
- package/build/components/block-popover/cover.js.map +1 -1
- package/build/components/block-popover/drop-zone.js.map +1 -1
- package/build/components/block-popover/inbetween.js.map +1 -1
- package/build/components/block-popover/index.js.map +1 -1
- package/build/components/block-popover/use-popover-scroll.js.map +1 -1
- package/build/components/block-preview/auto.js.map +1 -1
- package/build/components/block-preview/index.js.map +1 -1
- package/build/components/block-quick-navigation/index.js.map +1 -1
- package/build/components/block-removal-warning-modal/index.js.map +1 -1
- package/build/components/block-rename/index.js.map +1 -1
- package/build/components/block-rename/is-empty-string.js.map +1 -1
- package/build/components/block-rename/modal.js +13 -9
- package/build/components/block-rename/modal.js.map +1 -1
- package/build/components/block-rename/rename-control.js +3 -1
- package/build/components/block-rename/rename-control.js.map +1 -1
- package/build/components/block-rename/use-block-rename.js.map +1 -1
- package/build/components/block-selection-clearer/index.js.map +1 -1
- package/build/components/block-settings/button.native.js.map +1 -1
- package/build/components/block-settings/container.native.js.map +1 -1
- package/build/components/block-settings/index.native.js +1 -1
- package/build/components/block-settings/index.native.js.map +1 -1
- package/build/components/block-settings-menu/block-html-convert-button.js.map +1 -1
- package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
- package/build/components/block-settings-menu/block-parent-selector-menu-item.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +0 -25
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-menu-first-item.js.map +1 -1
- package/build/components/block-settings-menu/index.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-styles/index.js.map +1 -1
- package/build/components/block-styles/index.native.js.map +1 -1
- package/build/components/block-styles/menu-items.js.map +1 -1
- package/build/components/block-styles/preview-panel.js.map +1 -1
- package/build/components/block-styles/preview.native.js.map +1 -1
- package/build/components/block-styles/use-styles-for-block.js.map +1 -1
- package/build/components/block-styles/utils.js.map +1 -1
- package/build/components/block-switcher/block-styles-menu.js.map +1 -1
- package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build/components/block-switcher/block-transformations-menu.native.js.map +1 -1
- package/build/components/block-switcher/block-variation-transformations.js.map +1 -1
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-switcher/pattern-transformations-menu.js +3 -1
- package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build/components/block-switcher/preview-block-popover.js.map +1 -1
- package/build/components/block-switcher/use-transformed-patterns.js +6 -2
- package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
- package/build/components/block-switcher/utils.js +15 -5
- package/build/components/block-switcher/utils.js.map +1 -1
- package/build/components/block-title/index.js.map +1 -1
- package/build/components/block-title/use-block-display-title.js.map +1 -1
- package/build/components/block-toolbar/block-name-context.js.map +1 -1
- package/build/components/block-toolbar/block-toolbar-last-item.js.map +1 -1
- package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
- package/build/components/block-toolbar/index.js +1 -1
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-toolbar/index.native.js.map +1 -1
- package/build/components/block-toolbar/shuffle.js.map +1 -1
- package/build/components/block-toolbar/use-has-block-toolbar.js +20 -12
- package/build/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
- package/build/components/block-toolbar/utils.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +16 -12
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
- package/build/components/block-tools/block-toolbar-popover.js.map +1 -1
- package/build/components/block-tools/empty-block-inserter.js.map +1 -1
- package/build/components/block-tools/index.js +4 -2
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
- package/build/components/block-tools/use-selected-block-tool-props.js.map +1 -1
- package/build/components/block-tools/use-show-block-tools.js +9 -18
- package/build/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserters.js +5 -1
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build/components/block-types-list/index.js.map +1 -1
- package/build/components/block-types-list/index.native.js.map +1 -1
- package/build/components/block-variation-picker/index.js +3 -2
- package/build/components/block-variation-picker/index.js.map +1 -1
- package/build/components/block-variation-picker/index.native.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +7 -2
- package/build/components/block-variation-transforms/index.js.map +1 -1
- package/build/components/block-vertical-alignment-control/icons.js.map +1 -1
- package/build/components/block-vertical-alignment-control/index.js.map +1 -1
- package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
- package/build/components/border-radius-control/all-input-control.js.map +1 -1
- package/build/components/border-radius-control/index.js.map +1 -1
- package/build/components/border-radius-control/input-controls.js.map +1 -1
- package/build/components/border-radius-control/linked-button.js.map +1 -1
- package/build/components/border-radius-control/utils.js.map +1 -1
- package/build/components/button-block-appender/index.js.map +1 -1
- package/build/components/button-block-appender/index.native.js +11 -1
- package/build/components/button-block-appender/index.native.js.map +1 -1
- package/build/components/caption/index.native.js.map +1 -1
- package/build/components/child-layout-control/index.js.map +1 -1
- package/build/components/color-palette/control.js.map +1 -1
- package/build/components/color-palette/index.js.map +1 -1
- package/build/components/color-palette/with-color-context.js.map +1 -1
- package/build/components/color-style-selector/index.js.map +1 -1
- package/build/components/colors/index.js +1 -1
- package/build/components/colors/index.js.map +1 -1
- package/build/components/colors/utils.js.map +1 -1
- package/build/components/colors/with-colors.js.map +1 -1
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/colors-gradients/dropdown.js.map +1 -1
- package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
- package/build/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
- package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
- package/build/components/contrast-checker/index.js.map +1 -1
- package/build/components/contrast-checker/index.native.js.map +1 -1
- package/build/components/convert-to-group-buttons/index.js.map +1 -1
- package/build/components/convert-to-group-buttons/index.native.js.map +1 -1
- package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
- package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
- package/build/components/copy-handler/index.js.map +1 -1
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/default-block-appender/index.js.map +1 -1
- package/build/components/default-block-appender/index.native.js.map +1 -1
- package/build/components/dimensions-tool/aspect-ratio-tool.js.map +1 -1
- package/build/components/dimensions-tool/index.js.map +1 -1
- package/build/components/dimensions-tool/scale-tool.js.map +1 -1
- package/build/components/dimensions-tool/width-height-tool.js +6 -2
- package/build/components/dimensions-tool/width-height-tool.js.map +1 -1
- package/build/components/duotone/utils.js.map +1 -1
- package/build/components/duotone-control/index.js.map +1 -1
- package/build/components/editable-text/index.js.map +1 -1
- package/build/components/editor-styles/index.js +2 -1
- package/build/components/editor-styles/index.js.map +1 -1
- package/build/components/floating-toolbar/index.native.js +9 -5
- package/build/components/floating-toolbar/index.native.js.map +1 -1
- package/build/components/floating-toolbar/nav-up-icon.js.map +1 -1
- package/build/components/font-appearance-control/index.js.map +1 -1
- package/build/components/font-family/index.js.map +1 -1
- package/build/components/font-sizes/fluid-utils.js.map +1 -1
- package/build/components/font-sizes/font-size-picker.js.map +1 -1
- package/build/components/font-sizes/index.js.map +1 -1
- package/build/components/font-sizes/index.native.js.map +1 -1
- package/build/components/font-sizes/utils.js.map +1 -1
- package/build/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build/components/global-styles/advanced-panel.js.map +1 -1
- package/build/components/global-styles/background-panel.js +20 -17
- package/build/components/global-styles/background-panel.js.map +1 -1
- package/build/components/global-styles/border-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.js +3 -1
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.native.js.map +1 -1
- package/build/components/global-styles/context.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +16 -0
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/get-block-css-selector.js.map +1 -1
- package/build/components/global-styles/get-global-styles-changes.js.map +1 -1
- package/build/components/global-styles/hooks.js +3 -2
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/image-settings-panel.js.map +1 -1
- package/build/components/global-styles/index.js +1 -1
- package/build/components/global-styles/index.js.map +1 -1
- package/build/components/global-styles/shadow-panel-components.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +23 -23
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/typography-utils.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +153 -136
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +45 -0
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/gradients/index.js.map +1 -1
- package/build/components/gradients/index.native.js.map +1 -1
- package/build/components/gradients/use-gradient.js.map +1 -1
- package/build/components/gradients/with-gradient.js.map +1 -1
- package/build/components/grid-visualizer/grid-item-resizer.js.map +1 -1
- package/build/components/grid-visualizer/grid-visualizer.js.map +1 -1
- package/build/components/grid-visualizer/index.js.map +1 -1
- package/build/components/grid-visualizer/utils.js.map +1 -1
- package/build/components/height-control/index.js.map +1 -1
- package/build/components/iframe/get-compatibility-styles.js.map +1 -1
- package/build/components/iframe/index.js +12 -13
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
- package/build/components/image-editor/constants.js.map +1 -1
- package/build/components/image-editor/context.js.map +1 -1
- package/build/components/image-editor/cropper.js +6 -2
- package/build/components/image-editor/cropper.js.map +1 -1
- package/build/components/image-editor/form-controls.js.map +1 -1
- package/build/components/image-editor/index.js +0 -2
- package/build/components/image-editor/index.js.map +1 -1
- package/build/components/image-editor/rotation-button.js.map +1 -1
- package/build/components/image-editor/use-save-image.js.map +1 -1
- package/build/components/image-editor/use-transform-image.js.map +1 -1
- package/build/components/image-editor/zoom-dropdown.js.map +1 -1
- package/build/components/image-link-destinations/index.native.js.map +1 -1
- package/build/components/image-size-control/index.js.map +1 -1
- package/build/components/image-size-control/use-dimension-handler.js.map +1 -1
- package/build/components/index.js +1 -1
- package/build/components/index.js.map +1 -1
- package/build/components/index.native.js +1 -1
- package/build/components/index.native.js.map +1 -1
- package/build/components/inner-blocks/button-block-appender.js.map +1 -1
- package/build/components/inner-blocks/constants.native.js.map +1 -1
- package/build/components/inner-blocks/default-block-appender.js.map +1 -1
- package/build/components/inner-blocks/index.js +16 -2
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/index.native.js.map +1 -1
- package/build/components/inner-blocks/use-block-context.js.map +1 -1
- package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
- package/build/components/inner-blocks/with-client-id.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/index.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/index.js +19 -25
- package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +2 -24
- package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +1 -3
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +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.map +1 -1
- package/build/components/inserter/block-types-tab.js +4 -0
- package/build/components/inserter/block-types-tab.js.map +1 -1
- package/build/components/inserter/block-types-tab.native.js.map +1 -1
- package/build/components/inserter/category-tabs/index.js +56 -0
- package/build/components/inserter/category-tabs/index.js.map +1 -0
- package/build/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
- package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build/components/inserter/hooks/use-clipboard-block.native.js.map +1 -1
- package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build/components/inserter/hooks/use-patterns-paging.js.map +1 -1
- package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/index.native.js.map +1 -1
- package/build/components/inserter/library.js.map +1 -1
- package/build/components/inserter/media-tab/hooks.js.map +1 -1
- package/build/components/inserter/media-tab/index.js +2 -2
- package/build/components/inserter/media-tab/index.js.map +1 -1
- package/build/components/inserter/media-tab/media-list.js.map +1 -1
- package/build/components/inserter/media-tab/media-panel.js +0 -25
- package/build/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build/components/inserter/media-tab/media-preview.js +13 -3
- package/build/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build/components/inserter/media-tab/media-tab.js +15 -29
- package/build/components/inserter/media-tab/media-tab.js.map +1 -1
- package/build/components/inserter/media-tab/utils.js.map +1 -1
- package/build/components/inserter/menu.js +73 -77
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/menu.native.js.map +1 -1
- package/build/components/inserter/mobile-tab-navigation.js.map +1 -1
- package/build/components/inserter/no-results.js.map +1 -1
- package/build/components/inserter/no-results.native.js.map +1 -1
- package/build/components/inserter/panel.js.map +1 -1
- package/build/components/inserter/preview-panel.js.map +1 -1
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter/reusable-block-rename-hint.js.map +1 -1
- package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build/components/inserter/search-items.js.map +1 -1
- package/build/components/inserter/search-results.js.map +1 -1
- package/build/components/inserter/search-results.native.js.map +1 -1
- package/build/components/inserter/tabs.js +13 -9
- package/build/components/inserter/tabs.js.map +1 -1
- package/build/components/inserter/tabs.native.js.map +1 -1
- package/build/components/inserter/tips.js.map +1 -1
- package/build/components/inserter/utils.native.js.map +1 -1
- package/build/components/inserter-button/index.native.js.map +1 -1
- package/build/components/inserter-button/sparkles.js.map +1 -1
- package/build/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build/components/inserter-list-item/index.js.map +1 -1
- package/build/components/inserter-listbox/context.js.map +1 -1
- package/build/components/inserter-listbox/group.js.map +1 -1
- package/build/components/inserter-listbox/index.js.map +1 -1
- package/build/components/inserter-listbox/item.js.map +1 -1
- package/build/components/inserter-listbox/row.js.map +1 -1
- package/build/components/inserter-menu-extension/index.js.map +1 -1
- package/build/components/inspector-controls/block-support-slot-container.js.map +1 -1
- package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build/components/inspector-controls/fill.js.map +1 -1
- package/build/components/inspector-controls/fill.native.js.map +1 -1
- package/build/components/inspector-controls/groups.js.map +1 -1
- package/build/components/inspector-controls/index.js.map +1 -1
- package/build/components/inspector-controls/slot.js.map +1 -1
- package/build/components/inspector-controls/slot.native.js.map +1 -1
- package/build/components/inspector-controls-tabs/advanced-controls-panel.js +1 -1
- package/build/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -1
- package/build/components/inspector-controls-tabs/advanced-controls-panel.native.js.map +1 -1
- package/build/components/inspector-controls-tabs/index.js.map +1 -1
- package/build/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
- package/build/components/inspector-controls-tabs/settings-tab-hint.js.map +1 -1
- package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
- package/build/components/inspector-controls-tabs/styles-tab.js +1 -1
- package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
- package/build/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js.map +1 -1
- package/build/components/inspector-controls-tabs/utils.js.map +1 -1
- package/build/components/inspector-popover-header/index.js.map +1 -1
- package/build/components/justify-content-control/index.js.map +1 -1
- package/build/components/justify-content-control/ui.js.map +1 -1
- package/build/components/keyboard-shortcuts/index.js.map +1 -1
- package/build/components/letter-spacing-control/index.js.map +1 -1
- package/build/components/line-height-control/index.js +6 -2
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/line-height-control/index.native.js.map +1 -1
- package/build/components/line-height-control/utils.js.map +1 -1
- package/build/components/link-control/constants.js.map +1 -1
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/is-url-like.js.map +1 -1
- package/build/components/link-control/link-preview.js.map +1 -1
- package/build/components/link-control/search-create-button.js.map +1 -1
- package/build/components/link-control/search-input.js.map +1 -1
- package/build/components/link-control/search-item.js +9 -3
- package/build/components/link-control/search-item.js.map +1 -1
- package/build/components/link-control/search-results.js.map +1 -1
- package/build/components/link-control/settings-drawer.js.map +1 -1
- package/build/components/link-control/settings.js.map +1 -1
- package/build/components/link-control/use-create-page.js.map +1 -1
- package/build/components/link-control/use-internal-value.js.map +1 -1
- package/build/components/link-control/use-rich-url-data.js.map +1 -1
- package/build/components/link-control/use-search-handler.js.map +1 -1
- package/build/components/link-control/viewer-slot.js.map +1 -1
- package/build/components/list-view/appender.js.map +1 -1
- package/build/components/list-view/aria-referenced-text.js.map +1 -1
- package/build/components/list-view/block-contents.js.map +1 -1
- package/build/components/list-view/block-select-button.js +5 -142
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +166 -14
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/context.js.map +1 -1
- package/build/components/list-view/drop-indicator.js.map +1 -1
- package/build/components/list-view/expander.js.map +1 -1
- package/build/components/list-view/index.js +1 -1
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/list-view/leaf.js.map +1 -1
- package/build/components/list-view/use-block-selection.js.map +1 -1
- package/build/components/list-view/use-clipboard-handler.js.map +1 -1
- package/build/components/list-view/use-list-view-block-indexes.js.map +1 -1
- package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
- package/build/components/list-view/use-list-view-collapse-items.js.map +1 -1
- package/build/components/list-view/use-list-view-drop-zone.js +6 -1
- package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
- package/build/components/list-view/use-list-view-images.js.map +1 -1
- package/build/components/list-view/use-list-view-scroll-into-view.js.map +1 -1
- package/build/components/list-view/utils.js +3 -1
- package/build/components/list-view/utils.js.map +1 -1
- package/build/components/media-placeholder/index.js +3 -3
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/media-placeholder/index.native.js.map +1 -1
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/media-replace-flow/index.native.js.map +1 -1
- package/build/components/media-upload/check.js.map +1 -1
- package/build/components/media-upload/constants.native.js.map +1 -1
- package/build/components/media-upload/index.js.map +1 -1
- package/build/components/media-upload/index.native.js.map +1 -1
- package/build/components/media-upload-progress/constants.js.map +1 -1
- package/build/components/media-upload-progress/index.native.js.map +1 -1
- package/build/components/multi-selection-inspector/index.js.map +1 -1
- package/build/components/navigable-toolbar/index.js +3 -1
- package/build/components/navigable-toolbar/index.js.map +1 -1
- package/build/components/observe-typing/index.js.map +1 -1
- package/build/components/panel-color-settings/index.js.map +1 -1
- package/build/components/plain-text/index.js.map +1 -1
- package/build/components/plain-text/index.native.js.map +1 -1
- package/build/components/preview-options/index.js.map +1 -1
- package/build/components/provider/block-refs-provider.js +3 -4
- package/build/components/provider/block-refs-provider.js.map +1 -1
- package/build/components/provider/index.js.map +1 -1
- package/build/components/provider/index.native.js.map +1 -1
- package/build/components/provider/use-block-sync.js +3 -12
- package/build/components/provider/use-block-sync.js.map +1 -1
- package/build/components/provider/with-registry-provider.js.map +1 -1
- package/build/components/publish-date-time-picker/index.js.map +1 -1
- package/build/components/recursion-provider/index.js +2 -2
- package/build/components/recursion-provider/index.js.map +1 -1
- package/build/components/resizable-box-popover/index.js.map +1 -1
- package/build/components/resolution-tool/index.js.map +1 -1
- package/build/components/responsive-block-control/index.js.map +1 -1
- package/build/components/responsive-block-control/label.js.map +1 -1
- package/build/components/rich-text/content.js +26 -19
- package/build/components/rich-text/content.js.map +1 -1
- package/build/components/rich-text/embed-handler-picker.native.js.map +1 -1
- package/build/components/rich-text/event-listeners/before-input-rules.js +93 -0
- package/build/components/rich-text/event-listeners/before-input-rules.js.map +1 -0
- package/build/components/rich-text/event-listeners/delete.js +58 -0
- package/build/components/rich-text/event-listeners/delete.js.map +1 -0
- package/build/components/rich-text/event-listeners/enter.js +98 -0
- package/build/components/rich-text/event-listeners/enter.js.map +1 -0
- package/build/components/rich-text/event-listeners/firefox-compat.js +36 -0
- package/build/components/rich-text/event-listeners/firefox-compat.js.map +1 -0
- package/build/components/rich-text/event-listeners/index.js +44 -0
- package/build/components/rich-text/event-listeners/index.js.map +1 -0
- package/build/components/rich-text/event-listeners/input-events.js +22 -0
- package/build/components/rich-text/event-listeners/input-events.js.map +1 -0
- package/build/components/rich-text/event-listeners/input-rules.js +135 -0
- package/build/components/rich-text/event-listeners/input-rules.js.map +1 -0
- package/build/components/rich-text/event-listeners/insert-replacement-text.js +33 -0
- package/build/components/rich-text/event-listeners/insert-replacement-text.js.map +1 -0
- package/build/components/rich-text/event-listeners/paste-handler.js +146 -0
- package/build/components/rich-text/event-listeners/paste-handler.js.map +1 -0
- package/build/components/rich-text/event-listeners/remove-browser-shortcuts.js +27 -0
- package/build/components/rich-text/event-listeners/remove-browser-shortcuts.js.map +1 -0
- package/build/components/rich-text/event-listeners/shortcuts.js +22 -0
- package/build/components/rich-text/event-listeners/shortcuts.js.map +1 -0
- package/build/components/rich-text/event-listeners/undo-automatic-change.js +51 -0
- package/build/components/rich-text/event-listeners/undo-automatic-change.js.map +1 -0
- package/build/components/rich-text/file-paste-handler.native.js.map +1 -1
- package/build/components/rich-text/format-edit.js.map +1 -1
- package/build/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build/components/rich-text/format-toolbar/index.native.js.map +1 -1
- package/build/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build/components/rich-text/format-toolbar-container.native.js.map +1 -1
- package/build/components/rich-text/get-rich-text-values.js.map +1 -1
- package/build/components/rich-text/index.js +51 -31
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +16 -4
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/input-event.js.map +1 -1
- package/build/components/rich-text/input-event.native.js.map +1 -1
- package/build/components/rich-text/multiline.js +6 -2
- package/build/components/rich-text/multiline.js.map +1 -1
- package/build/components/rich-text/native/format-edit.js.map +1 -1
- package/build/components/rich-text/native/get-format-colors.native.js.map +1 -1
- package/build/components/rich-text/native/index.js.map +1 -1
- package/build/components/rich-text/native/index.native.js +12 -0
- package/build/components/rich-text/native/index.native.js.map +1 -1
- package/build/components/rich-text/native/toolbar-button-with-options.native.js.map +1 -1
- package/build/components/rich-text/native/use-format-types.js.map +1 -1
- package/build/components/rich-text/prevent-event-discovery.js.map +1 -1
- package/build/components/rich-text/remove-browser-shortcuts.native.js.map +1 -1
- package/build/components/rich-text/shortcut.js.map +1 -1
- package/build/components/rich-text/shortcut.native.js.map +1 -1
- package/build/components/rich-text/split-value.js.map +1 -1
- package/build/components/rich-text/toolbar-button.js.map +1 -1
- package/build/components/rich-text/use-format-types.js +8 -4
- package/build/components/rich-text/use-format-types.js.map +1 -1
- package/build/components/rich-text/use-mark-persistent.js.map +1 -1
- package/build/components/rich-text/utils.js.map +1 -1
- package/build/components/rich-text/with-deprecations.js.map +1 -1
- package/build/components/segmented-text-control/index.js +62 -0
- package/build/components/segmented-text-control/index.js.map +1 -0
- package/build/components/selection-scroll-into-view/index.js.map +1 -1
- package/build/components/skip-to-selected-block/index.js.map +1 -1
- package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
- package/build/components/spacing-sizes-control/index.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/single.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +16 -2
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build/components/spacing-sizes-control/sides-dropdown/index.js.map +1 -1
- package/build/components/spacing-sizes-control/utils.js.map +1 -1
- package/build/components/text-alignment-control/index.js +76 -0
- package/build/components/text-alignment-control/index.js.map +1 -0
- package/build/components/text-decoration-control/index.js +21 -25
- package/build/components/text-decoration-control/index.js.map +1 -1
- package/build/components/text-transform-control/index.js +18 -22
- package/build/components/text-transform-control/index.js.map +1 -1
- package/build/components/tool-selector/index.js.map +1 -1
- package/build/components/typewriter/index.js.map +1 -1
- package/build/components/ungroup-button/index.native.js.map +1 -1
- package/build/components/unit-control/index.js.map +1 -1
- package/build/components/unsupported-block-details/index.native.js.map +1 -1
- package/build/components/url-input/button.js.map +1 -1
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/url-input/index.native.js.map +1 -1
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/components/url-popover/index.js.map +1 -1
- package/build/components/url-popover/link-editor.js.map +1 -1
- package/build/components/url-popover/link-viewer-url.js.map +1 -1
- package/build/components/url-popover/link-viewer.js.map +1 -1
- package/build/components/use-block-commands/index.js +20 -2
- package/build/components/use-block-commands/index.js.map +1 -1
- package/build/components/use-block-display-information/index.js +9 -3
- package/build/components/use-block-display-information/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.native.js.map +1 -1
- package/build/components/use-flash-editable-blocks/index.js.map +1 -1
- package/build/components/use-moving-animation/index.js.map +1 -1
- package/build/components/use-on-block-drop/index.js +3 -1
- package/build/components/use-on-block-drop/index.js.map +1 -1
- package/build/components/use-on-block-drop/index.native.js.map +1 -1
- package/build/components/use-on-block-drop/types.js.map +1 -1
- package/build/components/use-paste-styles/index.js +1 -0
- package/build/components/use-paste-styles/index.js.map +1 -1
- package/build/components/use-resize-canvas/index.js.map +1 -1
- package/build/components/use-settings/index.js.map +1 -1
- package/build/components/use-unsupported-block-editor/index.native.js.map +1 -1
- package/build/components/video-player/gridicon-play.native.js.map +1 -1
- package/build/components/video-player/index.native.js.map +1 -1
- package/build/components/warning/index.js.map +1 -1
- package/build/components/warning/index.native.js.map +1 -1
- package/build/components/writing-flow/index.js.map +1 -1
- package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build/components/writing-flow/use-click-selection.js.map +1 -1
- package/build/components/writing-flow/use-clipboard-handler.js.map +1 -1
- package/build/components/writing-flow/use-drag-selection.js +3 -1
- package/build/components/writing-flow/use-drag-selection.js.map +1 -1
- package/build/components/writing-flow/use-input.js.map +1 -1
- package/build/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build/components/writing-flow/use-select-all.js.map +1 -1
- package/build/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +3 -1
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/components/writing-flow/utils.js.map +1 -1
- package/build/components/writing-mode-control/index.js +16 -20
- package/build/components/writing-mode-control/index.js.map +1 -1
- package/build/elements/index.js.map +1 -1
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/align.native.js +1 -1
- package/build/hooks/align.native.js.map +1 -1
- package/build/hooks/anchor.js.map +1 -1
- package/build/hooks/aria-label.js.map +1 -1
- package/build/hooks/background.js +3 -3
- package/build/hooks/background.js.map +1 -1
- package/build/hooks/block-hooks.js.map +1 -1
- package/build/hooks/block-renaming.js +0 -37
- package/build/hooks/block-renaming.js.map +1 -1
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color.js +1 -1
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/compat.js.map +1 -1
- package/build/hooks/content-lock-ui.js +5 -5
- package/build/hooks/content-lock-ui.js.map +1 -1
- package/build/hooks/contrast-checker.js.map +1 -1
- package/build/hooks/custom-class-name.js.map +1 -1
- package/build/hooks/custom-class-name.native.js.map +1 -1
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/duotone.js +3 -1
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/gap.js.map +1 -1
- package/build/hooks/generated-class-name.js.map +1 -1
- package/build/hooks/index.js +6 -5
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/index.native.js.map +1 -1
- package/build/hooks/layout-child.js.map +1 -1
- package/build/hooks/layout.js +38 -19
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/layout.native.js.map +1 -1
- package/build/hooks/line-height.js.map +1 -1
- package/build/hooks/lock.js.map +1 -1
- package/build/hooks/metadata.js.map +1 -1
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/settings.js.map +1 -1
- package/build/hooks/spacing-visualizer.js.map +1 -1
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/supports.js +27 -4
- package/build/hooks/supports.js.map +1 -1
- package/build/hooks/text-align.js +156 -0
- package/build/hooks/text-align.js.map +1 -0
- package/build/hooks/typography.js +3 -2
- package/build/hooks/typography.js.map +1 -1
- package/build/hooks/typography.native.js.map +1 -1
- package/build/hooks/use-bindings-attributes.js +66 -129
- package/build/hooks/use-bindings-attributes.js.map +1 -1
- package/build/hooks/use-border-props.js.map +1 -1
- package/build/hooks/use-cached-truthy.js.map +1 -1
- package/build/hooks/use-color-props.js.map +1 -1
- package/build/hooks/use-editor-wrapper-styles.native.js.map +1 -1
- package/build/hooks/use-shadow-props.js.map +1 -1
- package/build/hooks/use-spacing-props.js.map +1 -1
- package/build/hooks/use-typography-props.js +2 -1
- package/build/hooks/use-typography-props.js.map +1 -1
- package/build/hooks/use-zoom-out.js +22 -15
- package/build/hooks/use-zoom-out.js.map +1 -1
- package/build/hooks/utils.js +37 -8
- package/build/hooks/utils.js.map +1 -1
- package/build/index.js.map +1 -1
- package/build/index.native.js.map +1 -1
- package/build/layouts/constrained.js.map +1 -1
- package/build/layouts/definitions.js +8 -6
- package/build/layouts/definitions.js.map +1 -1
- package/build/layouts/flex.js.map +1 -1
- package/build/layouts/flow.js.map +1 -1
- package/build/layouts/grid.js +52 -9
- package/build/layouts/grid.js.map +1 -1
- package/build/layouts/index.js.map +1 -1
- package/build/layouts/utils.js.map +1 -1
- package/build/lock-unlock.js.map +1 -1
- package/build/private-apis.js +5 -3
- package/build/private-apis.js.map +1 -1
- package/build/private-apis.native.js +1 -1
- package/build/private-apis.native.js.map +1 -1
- package/build/store/actions.js +47 -9
- package/build/store/actions.js.map +1 -1
- package/build/store/array.js.map +1 -1
- package/build/store/constants.js.map +1 -1
- package/build/store/defaults.js.map +1 -1
- package/build/store/defaults.native.js.map +1 -1
- package/build/store/get-block-settings.js.map +1 -1
- package/build/store/index.js +1 -1
- package/build/store/index.js.map +1 -1
- package/build/store/private-actions.js +5 -2
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-keys.js.map +1 -1
- package/build/store/private-selectors.js +121 -44
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +11 -8
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +143 -88
- package/build/store/selectors.js.map +1 -1
- package/build/store/undo-ignore.js.map +1 -1
- package/build/store/utils.js.map +1 -1
- package/build/utils/dom.js.map +1 -1
- package/build/utils/get-px-from-css-unit.js.map +1 -1
- package/build/utils/index.js.map +1 -1
- package/build/utils/math.js.map +1 -1
- package/build/utils/object.js +17 -0
- package/build/utils/object.js.map +1 -1
- package/build/utils/order-inserter-block-items.js +6 -2
- package/build/utils/order-inserter-block-items.js.map +1 -1
- package/build/utils/pasting.js +6 -2
- package/build/utils/pasting.js.map +1 -1
- package/build/utils/selection.js.map +1 -1
- package/build/utils/sorting.js.map +1 -1
- package/build/utils/transform-styles/index.js +1 -1
- package/build/utils/transform-styles/index.js.map +1 -1
- package/build/utils/use-notify-copy.js.map +1 -1
- package/build-module/autocompleters/block.js.map +1 -1
- package/build-module/autocompleters/link.js.map +1 -1
- package/build-module/components/alignment-control/index.js.map +1 -1
- package/build-module/components/alignment-control/ui.js +3 -1
- package/build-module/components/alignment-control/ui.js.map +1 -1
- package/build-module/components/autocomplete/index.js.map +1 -1
- package/build-module/components/block-actions/index.js.map +1 -1
- package/build-module/components/block-alignment-control/constants.js.map +1 -1
- package/build-module/components/block-alignment-control/index.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.native.js.map +1 -1
- package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
- package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
- package/build-module/components/block-bindings-toolbar-indicator/index.js.map +1 -1
- package/build-module/components/block-breadcrumb/index.js.map +1 -1
- package/build-module/components/block-canvas/index.js.map +1 -1
- package/build-module/components/block-caption/index.native.js.map +1 -1
- package/build-module/components/block-card/index.js.map +1 -1
- package/build-module/components/block-compare/block-view.js.map +1 -1
- package/build-module/components/block-compare/index.js.map +1 -1
- package/build-module/components/block-content-overlay/index.js.map +1 -1
- package/build-module/components/block-context/index.js.map +1 -1
- package/build-module/components/block-controls/fill.js.map +1 -1
- package/build-module/components/block-controls/groups.js.map +1 -1
- package/build-module/components/block-controls/hook.js.map +1 -1
- package/build-module/components/block-controls/index.js.map +1 -1
- package/build-module/components/block-controls/slot.js.map +1 -1
- package/build-module/components/block-controls/slot.native.js.map +1 -1
- package/build-module/components/block-controls/use-has-block-controls.js.map +1 -1
- package/build-module/components/block-draggable/draggable-chip.js.map +1 -1
- package/build-module/components/block-draggable/draggable-chip.native.js.map +1 -1
- package/build-module/components/block-draggable/dropping-insertion-point.native.js.map +1 -1
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-draggable/index.native.js.map +1 -1
- package/build-module/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
- package/build-module/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -1
- package/build-module/components/block-edit/context.js +1 -0
- package/build-module/components/block-edit/context.js.map +1 -1
- package/build-module/components/block-edit/edit.js.map +1 -1
- package/build-module/components/block-edit/edit.native.js.map +1 -1
- package/build-module/components/block-edit/index.js +5 -3
- package/build-module/components/block-edit/index.js.map +1 -1
- package/build-module/components/block-edit-visually-button/index.js.map +1 -1
- package/build-module/components/block-editing-mode/index.js.map +1 -1
- package/build-module/components/block-full-height-alignment-control/index.js.map +1 -1
- package/build-module/components/block-heading-level-dropdown/heading-level-icon.js.map +1 -1
- package/build-module/components/block-heading-level-dropdown/index.js.map +1 -1
- package/build-module/components/block-heading-level-dropdown/index.native.js.map +1 -1
- package/build-module/components/block-icon/index.js.map +1 -1
- package/build-module/components/block-icon/index.native.js.map +1 -1
- package/build-module/components/block-info-slot-fill/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +5 -4
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-inspector/useBlockInspectorAnimationSettings.js.map +1 -1
- package/build-module/components/block-list/block-crash-boundary.js.map +1 -1
- package/build-module/components/block-list/block-crash-boundary.native.js.map +1 -1
- package/build-module/components/block-list/block-crash-warning.js.map +1 -1
- package/build-module/components/block-list/block-crash-warning.native.js.map +1 -1
- package/build-module/components/block-list/block-html.js.map +1 -1
- package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
- package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
- package/build-module/components/block-list/block-list-context.native.js.map +1 -1
- package/build-module/components/block-list/block-list-item-cell.native.js.map +1 -1
- package/build-module/components/block-list/block-list-item.native.js.map +1 -1
- package/build-module/components/block-list/block-outline.native.js.map +1 -1
- package/build-module/components/block-list/block-selection-button.native.js.map +1 -1
- package/build-module/components/block-list/block.js +44 -35
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +2 -2
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/grid-item.native.js.map +1 -1
- package/build-module/components/block-list/index.js +18 -6
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list/index.native.js +1 -9
- package/build-module/components/block-list/index.native.js.map +1 -1
- package/build-module/components/block-list/insertion-point.native.js.map +1 -1
- package/build-module/components/block-list/layout.js.map +1 -1
- package/build-module/components/block-list/private-block-context.js.map +1 -1
- package/build-module/components/block-list/subdirectory-icon.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +8 -7
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.native.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-block-refs.js +19 -48
- package/build-module/components/block-list/use-block-props/use-block-refs.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js +3 -2
- 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-focus-handler.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-intersection-observer.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-is-hovered.js +10 -14
- package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-nav-mode-exit.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-list/use-scroll-upon-insertion.native.js.map +1 -1
- package/build-module/components/block-list-appender/index.js.map +1 -1
- package/build-module/components/block-list-appender/index.native.js.map +1 -1
- package/build-module/components/block-lock/index.js.map +1 -1
- package/build-module/components/block-lock/menu-item.js.map +1 -1
- package/build-module/components/block-lock/modal.js.map +1 -1
- package/build-module/components/block-lock/toolbar.js.map +1 -1
- package/build-module/components/block-lock/use-block-lock.js.map +1 -1
- package/build-module/components/block-media-update-progress/index.native.js.map +1 -1
- package/build-module/components/block-mover/button.js.map +1 -1
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-mover/index.native.js +3 -1
- package/build-module/components/block-mover/index.native.js.map +1 -1
- package/build-module/components/block-mover/mover-description.js.map +1 -1
- package/build-module/components/block-mover/mover-description.native.js.map +1 -1
- package/build-module/components/block-navigation/dropdown.js.map +1 -1
- package/build-module/components/block-parent-selector/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/constants.js.map +1 -1
- package/build-module/components/block-pattern-setup/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build-module/components/block-pattern-setup/use-patterns-setup.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-patterns-paging/index.js +8 -4
- package/build-module/components/block-patterns-paging/index.js.map +1 -1
- package/build-module/components/block-popover/cover.js.map +1 -1
- package/build-module/components/block-popover/drop-zone.js.map +1 -1
- package/build-module/components/block-popover/inbetween.js.map +1 -1
- package/build-module/components/block-popover/index.js.map +1 -1
- package/build-module/components/block-popover/use-popover-scroll.js.map +1 -1
- package/build-module/components/block-preview/auto.js.map +1 -1
- package/build-module/components/block-preview/index.js.map +1 -1
- package/build-module/components/block-quick-navigation/index.js.map +1 -1
- package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
- package/build-module/components/block-rename/index.js.map +1 -1
- package/build-module/components/block-rename/is-empty-string.js.map +1 -1
- package/build-module/components/block-rename/modal.js +14 -10
- package/build-module/components/block-rename/modal.js.map +1 -1
- package/build-module/components/block-rename/rename-control.js +3 -1
- package/build-module/components/block-rename/rename-control.js.map +1 -1
- package/build-module/components/block-rename/use-block-rename.js.map +1 -1
- package/build-module/components/block-selection-clearer/index.js.map +1 -1
- package/build-module/components/block-settings/button.native.js.map +1 -1
- package/build-module/components/block-settings/container.native.js.map +1 -1
- package/build-module/components/block-settings/index.native.js.map +1 -1
- package/build-module/components/block-settings-menu/block-html-convert-button.js.map +1 -1
- package/build-module/components/block-settings-menu/block-mode-toggle.js.map +1 -1
- package/build-module/components/block-settings-menu/block-parent-selector-menu-item.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +1 -26
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-menu-first-item.js.map +1 -1
- package/build-module/components/block-settings-menu/index.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-styles/index.js.map +1 -1
- package/build-module/components/block-styles/index.native.js.map +1 -1
- package/build-module/components/block-styles/menu-items.js.map +1 -1
- package/build-module/components/block-styles/preview-panel.js.map +1 -1
- package/build-module/components/block-styles/preview.native.js.map +1 -1
- package/build-module/components/block-styles/use-styles-for-block.js.map +1 -1
- package/build-module/components/block-styles/utils.js.map +1 -1
- package/build-module/components/block-switcher/block-styles-menu.js.map +1 -1
- package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build-module/components/block-switcher/block-transformations-menu.native.js.map +1 -1
- package/build-module/components/block-switcher/block-variation-transformations.js.map +1 -1
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-switcher/pattern-transformations-menu.js +3 -1
- package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build-module/components/block-switcher/preview-block-popover.js.map +1 -1
- package/build-module/components/block-switcher/use-transformed-patterns.js +6 -2
- package/build-module/components/block-switcher/use-transformed-patterns.js.map +1 -1
- package/build-module/components/block-switcher/utils.js +15 -5
- package/build-module/components/block-switcher/utils.js.map +1 -1
- package/build-module/components/block-title/index.js.map +1 -1
- package/build-module/components/block-title/use-block-display-title.js.map +1 -1
- package/build-module/components/block-toolbar/block-name-context.js.map +1 -1
- package/build-module/components/block-toolbar/block-toolbar-last-item.js.map +1 -1
- package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +1 -1
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-toolbar/index.native.js.map +1 -1
- package/build-module/components/block-toolbar/shuffle.js.map +1 -1
- package/build-module/components/block-toolbar/use-has-block-toolbar.js +20 -12
- package/build-module/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
- package/build-module/components/block-toolbar/utils.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +16 -12
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
- package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -1
- package/build-module/components/block-tools/empty-block-inserter.js.map +1 -1
- package/build-module/components/block-tools/index.js +3 -1
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
- package/build-module/components/block-tools/use-selected-block-tool-props.js.map +1 -1
- package/build-module/components/block-tools/use-show-block-tools.js +9 -18
- package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-mode-inserters.js +5 -1
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build-module/components/block-types-list/index.js.map +1 -1
- package/build-module/components/block-types-list/index.native.js.map +1 -1
- package/build-module/components/block-variation-picker/index.js +3 -2
- package/build-module/components/block-variation-picker/index.js.map +1 -1
- package/build-module/components/block-variation-picker/index.native.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +7 -2
- package/build-module/components/block-variation-transforms/index.js.map +1 -1
- package/build-module/components/block-vertical-alignment-control/icons.js.map +1 -1
- package/build-module/components/block-vertical-alignment-control/index.js.map +1 -1
- package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
- package/build-module/components/border-radius-control/all-input-control.js.map +1 -1
- package/build-module/components/border-radius-control/index.js.map +1 -1
- package/build-module/components/border-radius-control/input-controls.js.map +1 -1
- package/build-module/components/border-radius-control/linked-button.js.map +1 -1
- package/build-module/components/border-radius-control/utils.js.map +1 -1
- package/build-module/components/button-block-appender/index.js.map +1 -1
- package/build-module/components/button-block-appender/index.native.js +11 -1
- package/build-module/components/button-block-appender/index.native.js.map +1 -1
- package/build-module/components/caption/index.native.js.map +1 -1
- package/build-module/components/child-layout-control/index.js.map +1 -1
- package/build-module/components/color-palette/control.js.map +1 -1
- package/build-module/components/color-palette/index.js.map +1 -1
- package/build-module/components/color-palette/with-color-context.js.map +1 -1
- package/build-module/components/color-style-selector/index.js.map +1 -1
- package/build-module/components/colors/index.js.map +1 -1
- package/build-module/components/colors/utils.js.map +1 -1
- package/build-module/components/colors/with-colors.js.map +1 -1
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/colors-gradients/dropdown.js.map +1 -1
- package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
- package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
- package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
- package/build-module/components/contrast-checker/index.js.map +1 -1
- package/build-module/components/contrast-checker/index.native.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/index.native.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
- package/build-module/components/copy-handler/index.js.map +1 -1
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/default-block-appender/index.js.map +1 -1
- package/build-module/components/default-block-appender/index.native.js.map +1 -1
- package/build-module/components/dimensions-tool/aspect-ratio-tool.js.map +1 -1
- package/build-module/components/dimensions-tool/index.js.map +1 -1
- package/build-module/components/dimensions-tool/scale-tool.js.map +1 -1
- package/build-module/components/dimensions-tool/width-height-tool.js.map +1 -1
- package/build-module/components/duotone/utils.js.map +1 -1
- package/build-module/components/duotone-control/index.js.map +1 -1
- package/build-module/components/editable-text/index.js.map +1 -1
- package/build-module/components/editor-styles/index.js +3 -2
- package/build-module/components/editor-styles/index.js.map +1 -1
- package/build-module/components/floating-toolbar/index.native.js +9 -5
- package/build-module/components/floating-toolbar/index.native.js.map +1 -1
- package/build-module/components/floating-toolbar/nav-up-icon.js.map +1 -1
- package/build-module/components/font-appearance-control/index.js.map +1 -1
- package/build-module/components/font-family/index.js.map +1 -1
- package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
- package/build-module/components/font-sizes/font-size-picker.js.map +1 -1
- package/build-module/components/font-sizes/index.js.map +1 -1
- package/build-module/components/font-sizes/index.native.js.map +1 -1
- package/build-module/components/font-sizes/utils.js.map +1 -1
- package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build-module/components/global-styles/advanced-panel.js.map +1 -1
- package/build-module/components/global-styles/background-panel.js +20 -17
- package/build-module/components/global-styles/background-panel.js.map +1 -1
- package/build-module/components/global-styles/border-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +3 -1
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.native.js.map +1 -1
- package/build-module/components/global-styles/context.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +17 -1
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/get-block-css-selector.js.map +1 -1
- package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +3 -2
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
- package/build-module/components/global-styles/index.js.map +1 -1
- package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +24 -24
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/typography-utils.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +153 -136
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +44 -0
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/gradients/index.js.map +1 -1
- package/build-module/components/gradients/index.native.js.map +1 -1
- package/build-module/components/gradients/use-gradient.js.map +1 -1
- package/build-module/components/gradients/with-gradient.js.map +1 -1
- package/build-module/components/grid-visualizer/grid-item-resizer.js.map +1 -1
- package/build-module/components/grid-visualizer/grid-visualizer.js.map +1 -1
- package/build-module/components/grid-visualizer/index.js.map +1 -1
- package/build-module/components/grid-visualizer/utils.js.map +1 -1
- package/build-module/components/height-control/index.js.map +1 -1
- package/build-module/components/iframe/get-compatibility-styles.js.map +1 -1
- package/build-module/components/iframe/index.js +12 -13
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
- package/build-module/components/image-editor/constants.js.map +1 -1
- package/build-module/components/image-editor/context.js.map +1 -1
- package/build-module/components/image-editor/cropper.js +7 -3
- package/build-module/components/image-editor/cropper.js.map +1 -1
- package/build-module/components/image-editor/form-controls.js.map +1 -1
- package/build-module/components/image-editor/index.js +0 -2
- package/build-module/components/image-editor/index.js.map +1 -1
- package/build-module/components/image-editor/rotation-button.js.map +1 -1
- package/build-module/components/image-editor/use-save-image.js.map +1 -1
- package/build-module/components/image-editor/use-transform-image.js.map +1 -1
- package/build-module/components/image-editor/zoom-dropdown.js.map +1 -1
- package/build-module/components/image-link-destinations/index.native.js.map +1 -1
- package/build-module/components/image-size-control/index.js.map +1 -1
- package/build-module/components/image-size-control/use-dimension-handler.js.map +1 -1
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/button-block-appender.js.map +1 -1
- package/build-module/components/inner-blocks/constants.native.js.map +1 -1
- package/build-module/components/inner-blocks/default-block-appender.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +16 -2
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/use-block-context.js.map +1 -1
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
- package/build-module/components/inner-blocks/with-client-id.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/index.js +20 -26
- package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +2 -24
- package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +2 -4
- package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- 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.map +1 -1
- package/build-module/components/inserter/block-types-tab.js +4 -0
- package/build-module/components/inserter/block-types-tab.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
- package/build-module/components/inserter/category-tabs/index.js +49 -0
- package/build-module/components/inserter/category-tabs/index.js.map +1 -0
- package/build-module/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
- package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build-module/components/inserter/hooks/use-clipboard-block.native.js.map +1 -1
- package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build-module/components/inserter/hooks/use-patterns-paging.js.map +1 -1
- package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/index.native.js.map +1 -1
- package/build-module/components/inserter/library.js.map +1 -1
- package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
- package/build-module/components/inserter/media-tab/index.js +1 -1
- package/build-module/components/inserter/media-tab/index.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-panel.js +0 -24
- package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-preview.js +13 -3
- package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-tab.js +17 -31
- package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
- package/build-module/components/inserter/media-tab/utils.js.map +1 -1
- package/build-module/components/inserter/menu.js +75 -79
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/menu.native.js.map +1 -1
- package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -1
- package/build-module/components/inserter/no-results.js.map +1 -1
- package/build-module/components/inserter/no-results.native.js.map +1 -1
- package/build-module/components/inserter/panel.js.map +1 -1
- package/build-module/components/inserter/preview-panel.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter/reusable-block-rename-hint.js.map +1 -1
- package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build-module/components/inserter/search-items.js.map +1 -1
- package/build-module/components/inserter/search-results.js.map +1 -1
- package/build-module/components/inserter/search-results.native.js.map +1 -1
- package/build-module/components/inserter/tabs.js +13 -9
- package/build-module/components/inserter/tabs.js.map +1 -1
- package/build-module/components/inserter/tabs.native.js.map +1 -1
- package/build-module/components/inserter/tips.js.map +1 -1
- package/build-module/components/inserter/utils.native.js.map +1 -1
- package/build-module/components/inserter-button/index.native.js.map +1 -1
- package/build-module/components/inserter-button/sparkles.js.map +1 -1
- package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build-module/components/inserter-list-item/index.js.map +1 -1
- package/build-module/components/inserter-listbox/context.js.map +1 -1
- package/build-module/components/inserter-listbox/group.js.map +1 -1
- package/build-module/components/inserter-listbox/index.js.map +1 -1
- package/build-module/components/inserter-listbox/item.js.map +1 -1
- package/build-module/components/inserter-listbox/row.js.map +1 -1
- package/build-module/components/inserter-menu-extension/index.js.map +1 -1
- package/build-module/components/inspector-controls/block-support-slot-container.js.map +1 -1
- package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build-module/components/inspector-controls/fill.js.map +1 -1
- package/build-module/components/inspector-controls/fill.native.js.map +1 -1
- package/build-module/components/inspector-controls/groups.js.map +1 -1
- package/build-module/components/inspector-controls/index.js.map +1 -1
- package/build-module/components/inspector-controls/slot.js.map +1 -1
- package/build-module/components/inspector-controls/slot.native.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/advanced-controls-panel.native.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/settings-tab-hint.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/styles-tab.js +1 -1
- package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/utils.js.map +1 -1
- package/build-module/components/inspector-popover-header/index.js.map +1 -1
- package/build-module/components/justify-content-control/index.js.map +1 -1
- package/build-module/components/justify-content-control/ui.js.map +1 -1
- package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
- package/build-module/components/letter-spacing-control/index.js.map +1 -1
- package/build-module/components/line-height-control/index.js +6 -2
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/line-height-control/index.native.js.map +1 -1
- package/build-module/components/line-height-control/utils.js.map +1 -1
- package/build-module/components/link-control/constants.js.map +1 -1
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/is-url-like.js.map +1 -1
- package/build-module/components/link-control/link-preview.js.map +1 -1
- package/build-module/components/link-control/search-create-button.js.map +1 -1
- package/build-module/components/link-control/search-input.js.map +1 -1
- package/build-module/components/link-control/search-item.js +9 -3
- package/build-module/components/link-control/search-item.js.map +1 -1
- package/build-module/components/link-control/search-results.js.map +1 -1
- package/build-module/components/link-control/settings-drawer.js.map +1 -1
- package/build-module/components/link-control/settings.js.map +1 -1
- package/build-module/components/link-control/use-create-page.js.map +1 -1
- package/build-module/components/link-control/use-internal-value.js.map +1 -1
- package/build-module/components/link-control/use-rich-url-data.js.map +1 -1
- package/build-module/components/link-control/use-search-handler.js.map +1 -1
- package/build-module/components/link-control/viewer-slot.js.map +1 -1
- package/build-module/components/list-view/appender.js.map +1 -1
- package/build-module/components/list-view/aria-referenced-text.js.map +1 -1
- package/build-module/components/list-view/block-contents.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +7 -144
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +167 -15
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/context.js.map +1 -1
- package/build-module/components/list-view/drop-indicator.js.map +1 -1
- package/build-module/components/list-view/expander.js.map +1 -1
- package/build-module/components/list-view/index.js +1 -1
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/list-view/leaf.js.map +1 -1
- package/build-module/components/list-view/use-block-selection.js.map +1 -1
- package/build-module/components/list-view/use-clipboard-handler.js.map +1 -1
- package/build-module/components/list-view/use-list-view-block-indexes.js.map +1 -1
- package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
- package/build-module/components/list-view/use-list-view-collapse-items.js.map +1 -1
- package/build-module/components/list-view/use-list-view-drop-zone.js +6 -1
- package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build-module/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
- package/build-module/components/list-view/use-list-view-images.js.map +1 -1
- package/build-module/components/list-view/use-list-view-scroll-into-view.js.map +1 -1
- package/build-module/components/list-view/utils.js +3 -1
- package/build-module/components/list-view/utils.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +3 -3
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/media-placeholder/index.native.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/media-replace-flow/index.native.js.map +1 -1
- package/build-module/components/media-upload/check.js.map +1 -1
- package/build-module/components/media-upload/constants.native.js.map +1 -1
- package/build-module/components/media-upload/index.js.map +1 -1
- package/build-module/components/media-upload/index.native.js.map +1 -1
- package/build-module/components/media-upload-progress/constants.js.map +1 -1
- package/build-module/components/media-upload-progress/index.native.js.map +1 -1
- package/build-module/components/multi-selection-inspector/index.js.map +1 -1
- package/build-module/components/navigable-toolbar/index.js +3 -1
- package/build-module/components/navigable-toolbar/index.js.map +1 -1
- package/build-module/components/observe-typing/index.js.map +1 -1
- package/build-module/components/panel-color-settings/index.js.map +1 -1
- package/build-module/components/plain-text/index.js.map +1 -1
- package/build-module/components/plain-text/index.native.js.map +1 -1
- package/build-module/components/preview-options/index.js.map +1 -1
- package/build-module/components/provider/block-refs-provider.js +3 -4
- package/build-module/components/provider/block-refs-provider.js.map +1 -1
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/provider/index.native.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +4 -13
- package/build-module/components/provider/use-block-sync.js.map +1 -1
- package/build-module/components/provider/with-registry-provider.js.map +1 -1
- package/build-module/components/publish-date-time-picker/index.js.map +1 -1
- package/build-module/components/recursion-provider/index.js +2 -2
- package/build-module/components/recursion-provider/index.js.map +1 -1
- package/build-module/components/resizable-box-popover/index.js.map +1 -1
- package/build-module/components/resolution-tool/index.js.map +1 -1
- package/build-module/components/responsive-block-control/index.js.map +1 -1
- package/build-module/components/responsive-block-control/label.js.map +1 -1
- package/build-module/components/rich-text/content.js +25 -19
- package/build-module/components/rich-text/content.js.map +1 -1
- package/build-module/components/rich-text/embed-handler-picker.native.js.map +1 -1
- package/build-module/components/rich-text/event-listeners/before-input-rules.js +86 -0
- package/build-module/components/rich-text/event-listeners/before-input-rules.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/delete.js +51 -0
- package/build-module/components/rich-text/event-listeners/delete.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/enter.js +92 -0
- package/build-module/components/rich-text/event-listeners/enter.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/firefox-compat.js +29 -0
- package/build-module/components/rich-text/event-listeners/firefox-compat.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/index.js +36 -0
- package/build-module/components/rich-text/event-listeners/index.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/input-events.js +15 -0
- package/build-module/components/rich-text/event-listeners/input-events.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/input-rules.js +127 -0
- package/build-module/components/rich-text/event-listeners/input-rules.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/insert-replacement-text.js +27 -0
- package/build-module/components/rich-text/event-listeners/insert-replacement-text.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/paste-handler.js +142 -0
- package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.js +21 -0
- package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/shortcuts.js +15 -0
- package/build-module/components/rich-text/event-listeners/shortcuts.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/undo-automatic-change.js +45 -0
- package/build-module/components/rich-text/event-listeners/undo-automatic-change.js.map +1 -0
- package/build-module/components/rich-text/file-paste-handler.native.js.map +1 -1
- package/build-module/components/rich-text/format-edit.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar/index.native.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar-container.native.js.map +1 -1
- package/build-module/components/rich-text/get-rich-text-values.js.map +1 -1
- package/build-module/components/rich-text/index.js +54 -34
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +16 -4
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/input-event.js.map +1 -1
- package/build-module/components/rich-text/input-event.native.js.map +1 -1
- package/build-module/components/rich-text/multiline.js +6 -2
- package/build-module/components/rich-text/multiline.js.map +1 -1
- package/build-module/components/rich-text/native/format-edit.js.map +1 -1
- package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -1
- package/build-module/components/rich-text/native/index.js.map +1 -1
- package/build-module/components/rich-text/native/index.native.js +12 -0
- package/build-module/components/rich-text/native/index.native.js.map +1 -1
- package/build-module/components/rich-text/native/toolbar-button-with-options.native.js.map +1 -1
- package/build-module/components/rich-text/native/use-format-types.js.map +1 -1
- package/build-module/components/rich-text/prevent-event-discovery.js.map +1 -1
- package/build-module/components/rich-text/remove-browser-shortcuts.native.js.map +1 -1
- package/build-module/components/rich-text/shortcut.js.map +1 -1
- package/build-module/components/rich-text/shortcut.native.js.map +1 -1
- package/build-module/components/rich-text/split-value.js.map +1 -1
- package/build-module/components/rich-text/toolbar-button.js.map +1 -1
- package/build-module/components/rich-text/use-format-types.js +8 -4
- package/build-module/components/rich-text/use-format-types.js.map +1 -1
- package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
- package/build-module/components/rich-text/utils.js.map +1 -1
- package/build-module/components/rich-text/with-deprecations.js.map +1 -1
- package/build-module/components/segmented-text-control/index.js +55 -0
- package/build-module/components/segmented-text-control/index.js.map +1 -0
- package/build-module/components/selection-scroll-into-view/index.js.map +1 -1
- package/build-module/components/skip-to-selected-block/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
- package/build-module/components/spacing-sizes-control/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/single.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +16 -2
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build-module/components/spacing-sizes-control/sides-dropdown/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
- package/build-module/components/text-alignment-control/index.js +68 -0
- package/build-module/components/text-alignment-control/index.js.map +1 -0
- package/build-module/components/text-decoration-control/index.js +21 -25
- package/build-module/components/text-decoration-control/index.js.map +1 -1
- package/build-module/components/text-transform-control/index.js +18 -22
- package/build-module/components/text-transform-control/index.js.map +1 -1
- package/build-module/components/tool-selector/index.js.map +1 -1
- package/build-module/components/typewriter/index.js.map +1 -1
- package/build-module/components/ungroup-button/index.native.js.map +1 -1
- package/build-module/components/unit-control/index.js.map +1 -1
- package/build-module/components/unsupported-block-details/index.native.js.map +1 -1
- package/build-module/components/url-input/button.js.map +1 -1
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/url-input/index.native.js.map +1 -1
- package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build-module/components/url-popover/index.js.map +1 -1
- package/build-module/components/url-popover/link-editor.js.map +1 -1
- package/build-module/components/url-popover/link-viewer-url.js.map +1 -1
- package/build-module/components/url-popover/link-viewer.js.map +1 -1
- package/build-module/components/use-block-commands/index.js +20 -2
- package/build-module/components/use-block-commands/index.js.map +1 -1
- package/build-module/components/use-block-display-information/index.js +9 -3
- package/build-module/components/use-block-display-information/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.native.js.map +1 -1
- package/build-module/components/use-flash-editable-blocks/index.js.map +1 -1
- package/build-module/components/use-moving-animation/index.js.map +1 -1
- package/build-module/components/use-on-block-drop/index.js +3 -1
- package/build-module/components/use-on-block-drop/index.js.map +1 -1
- package/build-module/components/use-on-block-drop/index.native.js.map +1 -1
- package/build-module/components/use-on-block-drop/types.js.map +1 -1
- package/build-module/components/use-paste-styles/index.js +2 -1
- package/build-module/components/use-paste-styles/index.js.map +1 -1
- package/build-module/components/use-resize-canvas/index.js.map +1 -1
- package/build-module/components/use-settings/index.js.map +1 -1
- package/build-module/components/use-unsupported-block-editor/index.native.js.map +1 -1
- package/build-module/components/video-player/gridicon-play.native.js.map +1 -1
- package/build-module/components/video-player/index.native.js.map +1 -1
- package/build-module/components/warning/index.js.map +1 -1
- package/build-module/components/warning/index.native.js.map +1 -1
- package/build-module/components/writing-flow/index.js.map +1 -1
- package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build-module/components/writing-flow/use-click-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-clipboard-handler.js.map +1 -1
- package/build-module/components/writing-flow/use-drag-selection.js +3 -1
- package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-input.js.map +1 -1
- package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-select-all.js.map +1 -1
- package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +3 -1
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/components/writing-flow/utils.js.map +1 -1
- package/build-module/components/writing-mode-control/index.js +16 -20
- package/build-module/components/writing-mode-control/index.js.map +1 -1
- package/build-module/elements/index.js.map +1 -1
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/align.native.js.map +1 -1
- package/build-module/hooks/anchor.js.map +1 -1
- package/build-module/hooks/aria-label.js.map +1 -1
- package/build-module/hooks/background.js +2 -2
- package/build-module/hooks/background.js.map +1 -1
- package/build-module/hooks/block-hooks.js.map +1 -1
- package/build-module/hooks/block-renaming.js +0 -36
- package/build-module/hooks/block-renaming.js.map +1 -1
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/compat.js.map +1 -1
- package/build-module/hooks/content-lock-ui.js +5 -5
- package/build-module/hooks/content-lock-ui.js.map +1 -1
- package/build-module/hooks/contrast-checker.js.map +1 -1
- package/build-module/hooks/custom-class-name.js.map +1 -1
- package/build-module/hooks/custom-class-name.native.js.map +1 -1
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/duotone.js +3 -1
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/gap.js.map +1 -1
- package/build-module/hooks/generated-class-name.js.map +1 -1
- package/build-module/hooks/index.js +5 -4
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/index.native.js.map +1 -1
- package/build-module/hooks/layout-child.js.map +1 -1
- package/build-module/hooks/layout.js +38 -19
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/layout.native.js.map +1 -1
- package/build-module/hooks/line-height.js.map +1 -1
- package/build-module/hooks/lock.js.map +1 -1
- package/build-module/hooks/metadata.js.map +1 -1
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/settings.js.map +1 -1
- package/build-module/hooks/spacing-visualizer.js.map +1 -1
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/supports.js +22 -1
- package/build-module/hooks/supports.js.map +1 -1
- package/build-module/hooks/text-align.js +145 -0
- package/build-module/hooks/text-align.js.map +1 -0
- package/build-module/hooks/typography.js +2 -1
- package/build-module/hooks/typography.js.map +1 -1
- package/build-module/hooks/typography.native.js.map +1 -1
- package/build-module/hooks/use-bindings-attributes.js +68 -132
- package/build-module/hooks/use-bindings-attributes.js.map +1 -1
- package/build-module/hooks/use-border-props.js.map +1 -1
- package/build-module/hooks/use-cached-truthy.js.map +1 -1
- package/build-module/hooks/use-color-props.js.map +1 -1
- package/build-module/hooks/use-editor-wrapper-styles.native.js.map +1 -1
- package/build-module/hooks/use-shadow-props.js.map +1 -1
- package/build-module/hooks/use-spacing-props.js.map +1 -1
- package/build-module/hooks/use-typography-props.js +2 -1
- package/build-module/hooks/use-typography-props.js.map +1 -1
- package/build-module/hooks/use-zoom-out.js +23 -16
- package/build-module/hooks/use-zoom-out.js.map +1 -1
- package/build-module/hooks/utils.js +38 -9
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/index.js.map +1 -1
- package/build-module/index.native.js.map +1 -1
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/layouts/definitions.js +8 -6
- package/build-module/layouts/definitions.js.map +1 -1
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/layouts/flow.js.map +1 -1
- package/build-module/layouts/grid.js +52 -9
- package/build-module/layouts/grid.js.map +1 -1
- package/build-module/layouts/index.js.map +1 -1
- package/build-module/layouts/utils.js.map +1 -1
- package/build-module/lock-unlock.js.map +1 -1
- package/build-module/private-apis.js +4 -2
- package/build-module/private-apis.js.map +1 -1
- package/build-module/private-apis.native.js.map +1 -1
- package/build-module/store/actions.js +47 -9
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/array.js.map +1 -1
- package/build-module/store/constants.js.map +1 -1
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/defaults.native.js.map +1 -1
- package/build-module/store/get-block-settings.js.map +1 -1
- package/build-module/store/index.js.map +1 -1
- package/build-module/store/private-actions.js +5 -2
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-keys.js.map +1 -1
- package/build-module/store/private-selectors.js +113 -37
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +11 -8
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +116 -62
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/store/undo-ignore.js.map +1 -1
- package/build-module/store/utils.js.map +1 -1
- package/build-module/utils/dom.js.map +1 -1
- package/build-module/utils/get-px-from-css-unit.js.map +1 -1
- package/build-module/utils/index.js.map +1 -1
- package/build-module/utils/math.js.map +1 -1
- package/build-module/utils/object.js +16 -0
- package/build-module/utils/object.js.map +1 -1
- package/build-module/utils/order-inserter-block-items.js +6 -2
- package/build-module/utils/order-inserter-block-items.js.map +1 -1
- package/build-module/utils/pasting.js +6 -2
- package/build-module/utils/pasting.js.map +1 -1
- package/build-module/utils/selection.js.map +1 -1
- package/build-module/utils/sorting.js.map +1 -1
- package/build-module/utils/transform-styles/index.js.map +1 -1
- package/build-module/utils/use-notify-copy.js.map +1 -1
- package/build-style/content-rtl.css +77 -86
- package/build-style/content.css +77 -86
- package/build-style/default-editor-styles-rtl.css +1 -1
- package/build-style/default-editor-styles.css +1 -1
- package/build-style/style-rtl.css +158 -242
- package/build-style/style.css +158 -242
- package/package.json +32 -33
- package/src/components/alignment-control/ui.js +3 -1
- package/src/components/block-bindings-toolbar-indicator/style.scss +2 -5
- package/src/components/block-canvas/style.scss +1 -3
- package/src/components/block-draggable/test/helpers.native.js +8 -8
- package/src/components/block-edit/context.js +1 -0
- package/src/components/block-edit/index.js +4 -0
- package/src/components/block-inspector/index.js +7 -6
- package/src/components/block-list/block.js +47 -35
- package/src/components/block-list/block.native.js +3 -2
- package/src/components/block-list/content.scss +46 -20
- package/src/components/block-list/index.js +26 -10
- package/src/components/block-list/index.native.js +1 -6
- package/src/components/block-list/use-block-props/index.js +17 -5
- package/src/components/block-list/use-block-props/use-block-refs.js +17 -57
- package/src/components/block-list/use-block-props/use-focus-first-element.js +7 -3
- package/src/components/block-list/use-block-props/use-is-hovered.js +11 -16
- package/src/components/block-mover/index.native.js +3 -1
- package/src/components/block-patterns-list/style.scss +1 -3
- package/src/components/block-patterns-paging/index.js +4 -0
- package/src/components/block-preview/style.scss +13 -15
- package/src/components/block-rename/modal.js +17 -13
- package/src/components/block-rename/rename-control.js +8 -1
- package/src/components/block-settings-menu/block-settings-dropdown.js +1 -51
- package/src/components/block-switcher/pattern-transformations-menu.js +3 -1
- package/src/components/block-switcher/use-transformed-patterns.js +6 -2
- package/src/components/block-switcher/utils.js +14 -5
- package/src/components/block-toolbar/index.js +26 -22
- package/src/components/block-toolbar/style.scss +8 -11
- package/src/components/block-toolbar/use-has-block-toolbar.js +26 -19
- package/src/components/block-tools/block-selection-button.js +55 -43
- package/src/components/block-tools/index.js +3 -1
- package/src/components/block-tools/use-show-block-tools.js +36 -51
- package/src/components/block-tools/zoom-out-mode-inserters.js +5 -1
- package/src/components/block-variation-picker/content.scss +22 -72
- package/src/components/block-variation-picker/index.js +3 -2
- package/src/components/block-variation-transforms/index.js +6 -2
- package/src/components/button-block-appender/index.native.js +16 -1
- package/src/components/default-block-appender/content.scss +1 -1
- package/src/components/editor-styles/index.js +4 -2
- package/src/components/floating-toolbar/index.native.js +5 -2
- package/src/components/global-styles/background-panel.js +31 -29
- package/src/components/global-styles/color-panel.js +3 -1
- package/src/components/global-styles/dimensions-panel.js +18 -1
- package/src/components/global-styles/hooks.js +2 -0
- package/src/components/global-styles/style.scss +2 -8
- package/src/components/global-styles/test/use-global-styles-output.js +8 -17
- package/src/components/global-styles/test/utils.js +21 -0
- package/src/components/global-styles/typography-panel.js +27 -23
- package/src/components/global-styles/use-global-styles-output.js +216 -192
- package/src/components/global-styles/utils.js +55 -0
- package/src/components/iframe/index.js +20 -27
- package/src/components/image-editor/cropper.js +11 -2
- package/src/components/image-editor/index.js +0 -2
- package/src/components/inner-blocks/index.js +14 -1
- package/src/components/inserter/block-patterns-tab/index.js +32 -68
- package/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +9 -36
- package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +2 -2
- package/src/components/inserter/block-types-tab.js +5 -0
- package/src/components/inserter/category-tabs/index.js +74 -0
- package/src/components/inserter/media-tab/index.js +1 -1
- package/src/components/inserter/media-tab/media-panel.js +0 -22
- package/src/components/inserter/media-tab/media-preview.js +15 -7
- package/src/components/inserter/media-tab/media-tab.js +44 -83
- package/src/components/inserter/menu.js +155 -122
- package/src/components/inserter/style.scss +161 -217
- package/src/components/inserter/tabs.js +12 -15
- package/src/components/inspector-controls-tabs/styles-tab.js +1 -1
- package/src/components/line-height-control/index.js +6 -2
- package/src/components/link-control/search-item.js +9 -3
- package/src/components/link-control/style.scss +10 -2
- package/src/components/link-control/test/index.js +1 -1
- package/src/components/list-view/block-select-button.js +73 -237
- package/src/components/list-view/block.js +218 -28
- package/src/components/list-view/index.js +1 -1
- package/src/components/list-view/style.scss +20 -28
- package/src/components/list-view/use-list-view-drop-zone.js +6 -1
- package/src/components/list-view/utils.js +3 -1
- package/src/components/media-placeholder/content.scss +0 -11
- package/src/components/media-placeholder/index.js +3 -3
- package/src/components/navigable-toolbar/index.js +3 -1
- package/src/components/provider/block-refs-provider.js +3 -8
- package/src/components/provider/test/use-block-sync.js +7 -0
- package/src/components/provider/use-block-sync.js +3 -20
- package/src/components/recursion-provider/index.js +2 -2
- package/src/components/rich-text/README.md +4 -0
- package/src/components/rich-text/content.js +26 -19
- package/src/components/rich-text/event-listeners/before-input-rules.js +92 -0
- package/src/components/rich-text/event-listeners/delete.js +53 -0
- package/src/components/rich-text/event-listeners/enter.js +104 -0
- package/src/components/rich-text/event-listeners/firefox-compat.js +31 -0
- package/src/components/rich-text/event-listeners/index.js +56 -0
- package/src/components/rich-text/event-listeners/input-events.js +13 -0
- package/src/components/rich-text/event-listeners/input-rules.js +146 -0
- package/src/components/rich-text/event-listeners/insert-replacement-text.js +28 -0
- package/src/components/rich-text/event-listeners/paste-handler.js +169 -0
- package/src/components/rich-text/event-listeners/remove-browser-shortcuts.js +24 -0
- package/src/components/rich-text/event-listeners/shortcuts.js +13 -0
- package/src/components/rich-text/event-listeners/undo-automatic-change.js +45 -0
- package/src/components/rich-text/index.js +53 -36
- package/src/components/rich-text/index.native.js +14 -1
- package/src/components/rich-text/multiline.js +6 -2
- package/src/components/rich-text/native/index.native.js +11 -0
- package/src/components/rich-text/use-format-types.js +6 -2
- package/src/components/segmented-text-control/index.js +63 -0
- package/src/components/{writing-mode-control → segmented-text-control}/style.scss +2 -5
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +16 -1
- package/src/components/text-alignment-control/index.js +91 -0
- package/src/components/text-alignment-control/stories/index.story.js +39 -0
- package/src/components/text-decoration-control/index.js +20 -33
- package/src/components/text-transform-control/index.js +17 -30
- package/src/components/use-block-commands/index.js +46 -28
- package/src/components/use-block-display-information/index.js +9 -3
- package/src/components/use-on-block-drop/index.js +3 -1
- package/src/components/use-paste-styles/index.js +2 -0
- package/src/components/writing-flow/use-drag-selection.js +3 -1
- package/src/components/writing-flow/use-tab-nav.js +3 -1
- package/src/components/writing-mode-control/index.js +15 -28
- package/src/hooks/background.js +2 -2
- package/src/hooks/block-renaming.js +0 -33
- package/src/hooks/content-lock-ui.js +5 -7
- package/src/hooks/duotone.js +3 -1
- package/src/hooks/index.js +5 -2
- package/src/hooks/layout.js +57 -25
- package/src/hooks/supports.js +24 -0
- package/src/hooks/test/text-align.js +114 -0
- package/src/hooks/test/use-typography-props.js +3 -1
- package/src/hooks/text-align.js +178 -0
- package/src/hooks/typography.js +2 -0
- package/src/hooks/use-bindings-attributes.js +90 -161
- package/src/hooks/use-typography-props.js +4 -1
- package/src/hooks/use-zoom-out.js +25 -15
- package/src/hooks/utils.js +57 -5
- package/src/layouts/definitions.js +6 -6
- package/src/layouts/grid.js +106 -47
- package/src/private-apis.js +4 -2
- package/src/store/actions.js +52 -12
- package/src/store/private-actions.js +6 -3
- package/src/store/private-selectors.js +155 -39
- package/src/store/reducer.js +13 -23
- package/src/store/selectors.js +162 -93
- package/src/style.scss +1 -2
- package/src/utils/object.js +16 -0
- package/src/utils/order-inserter-block-items.js +6 -2
- package/src/utils/pasting.js +6 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/block-list/use-block-props/use-block-moving-mode-class-names.js +0 -54
- package/build/components/block-list/use-block-props/use-block-moving-mode-class-names.js.map +0 -1
- package/build/components/rich-text/use-before-input-rules.js +0 -98
- package/build/components/rich-text/use-before-input-rules.js.map +0 -1
- package/build/components/rich-text/use-delete.js +0 -64
- package/build/components/rich-text/use-delete.js.map +0 -1
- package/build/components/rich-text/use-enter.js +0 -109
- package/build/components/rich-text/use-enter.js.map +0 -1
- package/build/components/rich-text/use-firefox-compat.js +0 -44
- package/build/components/rich-text/use-firefox-compat.js.map +0 -1
- package/build/components/rich-text/use-input-events.js +0 -25
- package/build/components/rich-text/use-input-events.js.map +0 -1
- package/build/components/rich-text/use-input-rules.js +0 -139
- package/build/components/rich-text/use-input-rules.js.map +0 -1
- package/build/components/rich-text/use-insert-replacement-text.js +0 -38
- package/build/components/rich-text/use-insert-replacement-text.js.map +0 -1
- package/build/components/rich-text/use-paste-handler.js +0 -158
- package/build/components/rich-text/use-paste-handler.js.map +0 -1
- package/build/components/rich-text/use-remove-browser-shortcuts.js +0 -32
- package/build/components/rich-text/use-remove-browser-shortcuts.js.map +0 -1
- package/build/components/rich-text/use-shortcuts.js +0 -25
- package/build/components/rich-text/use-shortcuts.js.map +0 -1
- package/build/components/rich-text/use-undo-automatic-change.js +0 -53
- package/build/components/rich-text/use-undo-automatic-change.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-block-moving-mode-class-names.js +0 -47
- package/build-module/components/block-list/use-block-props/use-block-moving-mode-class-names.js.map +0 -1
- package/build-module/components/rich-text/use-before-input-rules.js +0 -92
- package/build-module/components/rich-text/use-before-input-rules.js.map +0 -1
- package/build-module/components/rich-text/use-delete.js +0 -57
- package/build-module/components/rich-text/use-delete.js.map +0 -1
- package/build-module/components/rich-text/use-enter.js +0 -102
- package/build-module/components/rich-text/use-enter.js.map +0 -1
- package/build-module/components/rich-text/use-firefox-compat.js +0 -37
- package/build-module/components/rich-text/use-firefox-compat.js.map +0 -1
- package/build-module/components/rich-text/use-input-events.js +0 -18
- package/build-module/components/rich-text/use-input-events.js.map +0 -1
- package/build-module/components/rich-text/use-input-rules.js +0 -132
- package/build-module/components/rich-text/use-input-rules.js.map +0 -1
- package/build-module/components/rich-text/use-insert-replacement-text.js +0 -32
- package/build-module/components/rich-text/use-insert-replacement-text.js.map +0 -1
- package/build-module/components/rich-text/use-paste-handler.js +0 -152
- package/build-module/components/rich-text/use-paste-handler.js.map +0 -1
- package/build-module/components/rich-text/use-remove-browser-shortcuts.js +0 -26
- package/build-module/components/rich-text/use-remove-browser-shortcuts.js.map +0 -1
- package/build-module/components/rich-text/use-shortcuts.js +0 -18
- package/build-module/components/rich-text/use-shortcuts.js.map +0 -1
- package/build-module/components/rich-text/use-undo-automatic-change.js +0 -46
- package/build-module/components/rich-text/use-undo-automatic-change.js.map +0 -1
- package/src/components/block-list/use-block-props/use-block-moving-mode-class-names.js +0 -55
- package/src/components/rich-text/use-before-input-rules.js +0 -99
- package/src/components/rich-text/use-delete.js +0 -59
- package/src/components/rich-text/use-enter.js +0 -110
- package/src/components/rich-text/use-firefox-compat.js +0 -39
- package/src/components/rich-text/use-input-events.js +0 -19
- package/src/components/rich-text/use-input-rules.js +0 -150
- package/src/components/rich-text/use-insert-replacement-text.js +0 -31
- package/src/components/rich-text/use-paste-handler.js +0 -180
- package/src/components/rich-text/use-remove-browser-shortcuts.js +0 -29
- package/src/components/rich-text/use-shortcuts.js +0 -19
- package/src/components/rich-text/use-undo-automatic-change.js +0 -50
- package/src/components/text-decoration-control/style.scss +0 -18
- package/src/components/text-transform-control/style.scss +0 -18
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_deprecated","_interopRequireDefault","_data","_","_store","_blockEdit","_utils","RichTextMultiline","children","identifier","tagName","TagName","value","onChange","multiline","props","forwardedRef","deprecated","since","version","alternative","link","clientId","useBlockEditContext","selectionChange","useDispatch","blockEditorStore","multilineTagName","getMultilineTag","padded","values","split","shift","pop","_onChange","newValues","join","_react","createElement","ref","map","_value","index","RichTextWrapper","key","newValue","slice","isSelected","undefined","onSplit","v","onReplace","array","splice","onMerge","forward","offset","length","_default","exports","default","forwardRef"],"sources":["@wordpress/block-editor/src/components/rich-text/multiline.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\nimport { useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { RichTextWrapper } from './';\nimport { store as blockEditorStore } from '../../store';\nimport { useBlockEditContext } from '../block-edit';\nimport { getMultilineTag } from './utils';\n\nfunction RichTextMultiline(\n\t{\n\t\tchildren,\n\t\tidentifier,\n\t\ttagName: TagName = 'div',\n\t\tvalue = '',\n\t\tonChange,\n\t\tmultiline,\n\t\t...props\n\t},\n\tforwardedRef\n) {\n\tdeprecated( 'wp.blockEditor.RichText multiline prop', {\n\t\tsince: '6.1',\n\t\tversion: '6.3',\n\t\talternative: 'nested blocks (InnerBlocks)',\n\t\tlink: 'https://developer.wordpress.org/block-editor/how-to-guides/block-tutorial/nested-blocks-inner-blocks/',\n\t} );\n\n\tconst { clientId } = useBlockEditContext();\n\tconst { selectionChange } = useDispatch( blockEditorStore );\n\n\tconst multilineTagName = getMultilineTag( multiline );\n\tvalue = value || `<${ multilineTagName }></${ multilineTagName }>`;\n\tconst padded = `</${ multilineTagName }>${ value }<${ multilineTagName }>`;\n\tconst values = padded.split(\n\t\t`</${ multilineTagName }><${ multilineTagName }>`\n\t);\n\n\tvalues.shift();\n\tvalues.pop();\n\n\tfunction _onChange( newValues ) {\n\t\tonChange(\n\t\t\t`<${ multilineTagName }>${ newValues.join(\n\t\t\t\t`</${ multilineTagName }><${ multilineTagName }>`\n\t\t\t) }</${ multilineTagName }>`\n\t\t);\n\t}\n\n\treturn (\n\t\t<TagName ref={ forwardedRef }>\n\t\t\t{ values.map( ( _value, index ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<RichTextWrapper\n\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\tidentifier={ `${ identifier }-${ index }` }\n\t\t\t\t\t\ttagName={ multilineTagName }\n\t\t\t\t\t\tvalue={ _value }\n\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\tconst newValues = values.slice();\n\t\t\t\t\t\t\tnewValues[ index ] = newValue;\n\t\t\t\t\t\t\t_onChange( newValues );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisSelected={ undefined }\n\t\t\t\t\t\tonSplit={ ( v ) => v }\n\t\t\t\t\t\tonReplace={ ( array ) => {\n\t\t\t\t\t\t\tconst newValues = values.slice();\n\t\t\t\t\t\t\tnewValues.splice( index, 1, ...array );\n\t\t\t\t\t\t\t_onChange( newValues );\n\t\t\t\t\t\t\tselectionChange(\n\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\t`${ identifier }-${ index + 1 }`,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t0\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonMerge={ ( forward ) => {\n\t\t\t\t\t\t\tconst newValues = values.slice();\n\t\t\t\t\t\t\tlet offset = 0;\n\t\t\t\t\t\t\tif ( forward ) {\n\t\t\t\t\t\t\t\tif ( ! newValues[ index + 1 ] )
|
|
1
|
+
{"version":3,"names":["_element","require","_deprecated","_interopRequireDefault","_data","_","_store","_blockEdit","_utils","RichTextMultiline","children","identifier","tagName","TagName","value","onChange","multiline","props","forwardedRef","deprecated","since","version","alternative","link","clientId","useBlockEditContext","selectionChange","useDispatch","blockEditorStore","multilineTagName","getMultilineTag","padded","values","split","shift","pop","_onChange","newValues","join","_react","createElement","ref","map","_value","index","RichTextWrapper","key","newValue","slice","isSelected","undefined","onSplit","v","onReplace","array","splice","onMerge","forward","offset","length","_default","exports","default","forwardRef"],"sources":["@wordpress/block-editor/src/components/rich-text/multiline.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\nimport { useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { RichTextWrapper } from './';\nimport { store as blockEditorStore } from '../../store';\nimport { useBlockEditContext } from '../block-edit';\nimport { getMultilineTag } from './utils';\n\nfunction RichTextMultiline(\n\t{\n\t\tchildren,\n\t\tidentifier,\n\t\ttagName: TagName = 'div',\n\t\tvalue = '',\n\t\tonChange,\n\t\tmultiline,\n\t\t...props\n\t},\n\tforwardedRef\n) {\n\tdeprecated( 'wp.blockEditor.RichText multiline prop', {\n\t\tsince: '6.1',\n\t\tversion: '6.3',\n\t\talternative: 'nested blocks (InnerBlocks)',\n\t\tlink: 'https://developer.wordpress.org/block-editor/how-to-guides/block-tutorial/nested-blocks-inner-blocks/',\n\t} );\n\n\tconst { clientId } = useBlockEditContext();\n\tconst { selectionChange } = useDispatch( blockEditorStore );\n\n\tconst multilineTagName = getMultilineTag( multiline );\n\tvalue = value || `<${ multilineTagName }></${ multilineTagName }>`;\n\tconst padded = `</${ multilineTagName }>${ value }<${ multilineTagName }>`;\n\tconst values = padded.split(\n\t\t`</${ multilineTagName }><${ multilineTagName }>`\n\t);\n\n\tvalues.shift();\n\tvalues.pop();\n\n\tfunction _onChange( newValues ) {\n\t\tonChange(\n\t\t\t`<${ multilineTagName }>${ newValues.join(\n\t\t\t\t`</${ multilineTagName }><${ multilineTagName }>`\n\t\t\t) }</${ multilineTagName }>`\n\t\t);\n\t}\n\n\treturn (\n\t\t<TagName ref={ forwardedRef }>\n\t\t\t{ values.map( ( _value, index ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<RichTextWrapper\n\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\tidentifier={ `${ identifier }-${ index }` }\n\t\t\t\t\t\ttagName={ multilineTagName }\n\t\t\t\t\t\tvalue={ _value }\n\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\tconst newValues = values.slice();\n\t\t\t\t\t\t\tnewValues[ index ] = newValue;\n\t\t\t\t\t\t\t_onChange( newValues );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisSelected={ undefined }\n\t\t\t\t\t\tonSplit={ ( v ) => v }\n\t\t\t\t\t\tonReplace={ ( array ) => {\n\t\t\t\t\t\t\tconst newValues = values.slice();\n\t\t\t\t\t\t\tnewValues.splice( index, 1, ...array );\n\t\t\t\t\t\t\t_onChange( newValues );\n\t\t\t\t\t\t\tselectionChange(\n\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\t`${ identifier }-${ index + 1 }`,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t0\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonMerge={ ( forward ) => {\n\t\t\t\t\t\t\tconst newValues = values.slice();\n\t\t\t\t\t\t\tlet offset = 0;\n\t\t\t\t\t\t\tif ( forward ) {\n\t\t\t\t\t\t\t\tif ( ! newValues[ index + 1 ] ) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tnewValues.splice(\n\t\t\t\t\t\t\t\t\tindex,\n\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\tnewValues[ index ] + newValues[ index + 1 ]\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\toffset = newValues[ index ].length - 1;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif ( ! newValues[ index - 1 ] ) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tnewValues.splice(\n\t\t\t\t\t\t\t\t\tindex - 1,\n\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\tnewValues[ index - 1 ] + newValues[ index ]\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\toffset = newValues[ index - 1 ].length - 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t_onChange( newValues );\n\t\t\t\t\t\t\tselectionChange(\n\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\t`${ identifier }-${\n\t\t\t\t\t\t\t\t\tindex - ( forward ? 0 : 1 )\n\t\t\t\t\t\t\t\t}`,\n\t\t\t\t\t\t\t\toffset,\n\t\t\t\t\t\t\t\toffset\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</TagName>\n\t);\n}\n\nexport default forwardRef( RichTextMultiline );\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_richText","require","FormatEdit","formatTypes","onChange","onFocus","value","forwardedRef","map","settings","name","edit","Edit","activeFormat","getActiveFormat","isActive","undefined","activeObject","getActiveObject","isObjectActive","type","_react","createElement","key","activeAttributes","attributes","activeObjectAttributes","contentRef"],"sources":["@wordpress/block-editor/src/components/rich-text/native/format-edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getActiveFormat, getActiveObject } from '@wordpress/rich-text';\n\nexport default function FormatEdit( {\n\tformatTypes,\n\tonChange,\n\tonFocus,\n\tvalue,\n\tforwardedRef,\n} ) {\n\treturn formatTypes.map( ( settings ) => {\n\t\tconst { name, edit: Edit } = settings;\n\n\t\tif ( ! Edit ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst activeFormat = getActiveFormat( value, name );\n\t\tconst isActive = activeFormat !== undefined;\n\t\tconst activeObject = getActiveObject( value );\n\t\tconst isObjectActive =\n\t\t\tactiveObject !== undefined && activeObject.type === name;\n\n\t\treturn (\n\t\t\t<Edit\n\t\t\t\tkey={ name }\n\t\t\t\tisActive={ isActive }\n\t\t\t\tactiveAttributes={\n\t\t\t\t\tisActive ? activeFormat.attributes || {} : {}\n\t\t\t\t}\n\t\t\t\tisObjectActive={ isObjectActive }\n\t\t\t\tactiveObjectAttributes={\n\t\t\t\t\tisObjectActive ? activeObject.attributes || {} : {}\n\t\t\t\t}\n\t\t\t\tvalue={ value }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tonFocus={ onFocus }\n\t\t\t\tcontentRef={ forwardedRef }\n\t\t\t/>\n\t\t);\n\t} );\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,SAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGe,SAASC,UAAUA,CAAE;EACnCC,WAAW;EACXC,QAAQ;EACRC,OAAO;EACPC,KAAK;EACLC;AACD,CAAC,EAAG;EACH,OAAOJ,WAAW,CAACK,GAAG,CAAIC,QAAQ,IAAM;IACvC,MAAM;MAAEC,IAAI;MAAEC,IAAI,EAAEC;IAAK,CAAC,GAAGH,QAAQ;IAErC,IAAK,CAAEG,IAAI,EAAG;MACb,OAAO,IAAI;IACZ;IAEA,MAAMC,YAAY,GAAG,IAAAC,yBAAe,EAAER,KAAK,EAAEI,IAAK,CAAC;IACnD,MAAMK,QAAQ,GAAGF,YAAY,KAAKG,SAAS;IAC3C,MAAMC,YAAY,GAAG,IAAAC,yBAAe,EAAEZ,KAAM,CAAC;IAC7C,MAAMa,cAAc,GACnBF,YAAY,KAAKD,SAAS,IAAIC,YAAY,CAACG,IAAI,KAAKV,IAAI;IAEzD,OACC,IAAAW,MAAA,CAAAC,aAAA,EAACV,IAAI;MACJW,GAAG,EAAGb,IAAM;MACZK,QAAQ,EAAGA,QAAU;MACrBS,gBAAgB,EACfT,QAAQ,GAAGF,YAAY,CAACY,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,CAC5C;MACDN,cAAc,EAAGA,cAAgB;MACjCO,sBAAsB,EACrBP,cAAc,GAAGF,YAAY,CAACQ,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,CAClD;MACDnB,KAAK,EAAGA,KAAO;MACfF,QAAQ,EAAGA,QAAU;MACrBC,OAAO,EAAGA,OAAS;MACnBsB,UAAU,EAAGpB;IAAc,CAC3B,CAAC;EAEJ,CAAE,CAAC;AACJ"}
|
|
1
|
+
{"version":3,"names":["_richText","require","FormatEdit","formatTypes","onChange","onFocus","value","forwardedRef","map","settings","name","edit","Edit","activeFormat","getActiveFormat","isActive","undefined","activeObject","getActiveObject","isObjectActive","type","_react","createElement","key","activeAttributes","attributes","activeObjectAttributes","contentRef"],"sources":["@wordpress/block-editor/src/components/rich-text/native/format-edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getActiveFormat, getActiveObject } from '@wordpress/rich-text';\n\nexport default function FormatEdit( {\n\tformatTypes,\n\tonChange,\n\tonFocus,\n\tvalue,\n\tforwardedRef,\n} ) {\n\treturn formatTypes.map( ( settings ) => {\n\t\tconst { name, edit: Edit } = settings;\n\n\t\tif ( ! Edit ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst activeFormat = getActiveFormat( value, name );\n\t\tconst isActive = activeFormat !== undefined;\n\t\tconst activeObject = getActiveObject( value );\n\t\tconst isObjectActive =\n\t\t\tactiveObject !== undefined && activeObject.type === name;\n\n\t\treturn (\n\t\t\t<Edit\n\t\t\t\tkey={ name }\n\t\t\t\tisActive={ isActive }\n\t\t\t\tactiveAttributes={\n\t\t\t\t\tisActive ? activeFormat.attributes || {} : {}\n\t\t\t\t}\n\t\t\t\tisObjectActive={ isObjectActive }\n\t\t\t\tactiveObjectAttributes={\n\t\t\t\t\tisObjectActive ? activeObject.attributes || {} : {}\n\t\t\t\t}\n\t\t\t\tvalue={ value }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tonFocus={ onFocus }\n\t\t\t\tcontentRef={ forwardedRef }\n\t\t\t/>\n\t\t);\n\t} );\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,SAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGe,SAASC,UAAUA,CAAE;EACnCC,WAAW;EACXC,QAAQ;EACRC,OAAO;EACPC,KAAK;EACLC;AACD,CAAC,EAAG;EACH,OAAOJ,WAAW,CAACK,GAAG,CAAIC,QAAQ,IAAM;IACvC,MAAM;MAAEC,IAAI;MAAEC,IAAI,EAAEC;IAAK,CAAC,GAAGH,QAAQ;IAErC,IAAK,CAAEG,IAAI,EAAG;MACb,OAAO,IAAI;IACZ;IAEA,MAAMC,YAAY,GAAG,IAAAC,yBAAe,EAAER,KAAK,EAAEI,IAAK,CAAC;IACnD,MAAMK,QAAQ,GAAGF,YAAY,KAAKG,SAAS;IAC3C,MAAMC,YAAY,GAAG,IAAAC,yBAAe,EAAEZ,KAAM,CAAC;IAC7C,MAAMa,cAAc,GACnBF,YAAY,KAAKD,SAAS,IAAIC,YAAY,CAACG,IAAI,KAAKV,IAAI;IAEzD,OACC,IAAAW,MAAA,CAAAC,aAAA,EAACV,IAAI;MACJW,GAAG,EAAGb,IAAM;MACZK,QAAQ,EAAGA,QAAU;MACrBS,gBAAgB,EACfT,QAAQ,GAAGF,YAAY,CAACY,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,CAC5C;MACDN,cAAc,EAAGA,cAAgB;MACjCO,sBAAsB,EACrBP,cAAc,GAAGF,YAAY,CAACQ,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,CAClD;MACDnB,KAAK,EAAGA,KAAO;MACfF,QAAQ,EAAGA,QAAU;MACrBC,OAAO,EAAGA,OAAS;MACnBsB,UAAU,EAAGpB;IAAc,CAC3B,CAAC;EAEJ,CAAE,CAAC;AACJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_colors","require","FORMAT_TYPE","REGEX_TO_MATCH","getFormatColors","formats","colors","newFormats","slice","forEach","format","currentFormat","type","className","attributes","class","split","currentClass","match","colorSlug","colorObject","getColorObjectByAttributeValues","currentStyles","style","color","indexOf","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?.color &&\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":";;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGA,MAAMC,WAAW,GAAG,iBAAiB;AACrC,MAAMC,cAAc,GAAG,kBAAkB;AAElC,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,GAAG,IAAAC,uCAA+B,EAClDf,MAAM,EACNa,SACD,CAAC;YACD,MAAMG,aAAa,GAAGX,aAAa,EAAEG,UAAU,EAAES,KAAK;YACtD,IACCH,WAAW,EAAEI,KAAK,KAChB,CAAEF,aAAa,IAChBA,aAAa,EAAEG,OAAO,CAAEL,WAAW,CAACI,KAAM,CAAC,KAC1C,CAAC,CAAC,CAAE,EACL;cACDb,aAAa,CAACG,UAAU,CAACS,KAAK,GAAG,CAC/B,UAAUH,WAAW,CAACI,KAAO,EAAC,EAC/BF,aAAa,CACb,CAACI,IAAI,CAAE,GAAI,CAAC;YACd;UACD;QACD,CAAE,CAAC;MACJ;IACD,CAAE,CAAC;EACJ,CAAE,CAAC;EAEH,OAAOnB,UAAU;AAClB"}
|
|
1
|
+
{"version":3,"names":["_colors","require","FORMAT_TYPE","REGEX_TO_MATCH","getFormatColors","formats","colors","newFormats","slice","forEach","format","currentFormat","type","className","attributes","class","split","currentClass","match","colorSlug","colorObject","getColorObjectByAttributeValues","currentStyles","style","color","indexOf","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?.color &&\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":";;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGA,MAAMC,WAAW,GAAG,iBAAiB;AACrC,MAAMC,cAAc,GAAG,kBAAkB;AAElC,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,GAAG,IAAAC,uCAA+B,EAClDf,MAAM,EACNa,SACD,CAAC;YACD,MAAMG,aAAa,GAAGX,aAAa,EAAEG,UAAU,EAAES,KAAK;YACtD,IACCH,WAAW,EAAEI,KAAK,KAChB,CAAEF,aAAa,IAChBA,aAAa,EAAEG,OAAO,CAAEL,WAAW,CAACI,KAAM,CAAC,KAC1C,CAAC,CAAC,CAAE,EACL;cACDb,aAAa,CAACG,UAAU,CAACS,KAAK,GAAG,CAC/B,UAAUH,WAAW,CAACI,KAAO,EAAC,EAC/BF,aAAa,CACb,CAACI,IAAI,CAAE,GAAI,CAAC;YACd;UACD;QACD,CAAE,CAAC;MACJ;IACD,CAAE,CAAC;EACJ,CAAE,CAAC;EAEH,OAAOnB,UAAU;AAClB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_default","exports","default"],"sources":["@wordpress/block-editor/src/components/rich-text/native/index.js"],"sourcesContent":["export default () => {};\n"],"mappings":";;;;;;eAAeA,CAAA,KAAM,CAAC,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
|
|
1
|
+
{"version":3,"names":["_default","exports","default"],"sources":["@wordpress/block-editor/src/components/rich-text/native/index.js"],"sourcesContent":["export default () => {};\n"],"mappings":";;;;;;eAAeA,CAAA,KAAM,CAAC,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAF,QAAA","ignoreList":[]}
|
|
@@ -735,6 +735,18 @@ class RichText extends _element.Component {
|
|
|
735
735
|
});
|
|
736
736
|
}
|
|
737
737
|
}
|
|
738
|
+
componentWillUnmount() {
|
|
739
|
+
const {
|
|
740
|
+
clearCurrentSelectionOnUnmount
|
|
741
|
+
} = this.props;
|
|
742
|
+
|
|
743
|
+
// There are cases when the component is unmounted e.g. scrolling in a
|
|
744
|
+
// long post due to virtualization, so the block selection needs to be cleared
|
|
745
|
+
// so it doesn't auto-focus when it's added back.
|
|
746
|
+
if (this._editor?.isFocused()) {
|
|
747
|
+
clearCurrentSelectionOnUnmount?.();
|
|
748
|
+
}
|
|
749
|
+
}
|
|
738
750
|
getHtmlToRender(record, tagName) {
|
|
739
751
|
// Save back to HTML from React tree.
|
|
740
752
|
let value = this.valueToFormat(record);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_memize","_interopRequireDefault","_colord","_reactNativeAztec","_reactNativeBridge","_blockEditor","_components","_element","_compose","_data","_blocks","_htmlEntities","_keycodes","_url","_icons","_i18n","_richText","_useFormatTypes","_formatEdit","_getFormatColors","_style","_toolbarButtonWithOptions","flatColorPalettes","memize","colorsPalettes","theme","custom","default","getSelectionColor","currentSelectionColor","defaultSelectionColor","baseGlobalStyles","isBlockBasedTheme","selectionColor","colordTextColor","colord","colordBackgroundColor","color","background","isColordTextReadable","isReadable","text","gutenbergFormatNamesToAztec","EMPTY_PARAGRAPH_TAGS","DEFAULT_FONT_SIZE","MIN_LINE_HEIGHT","RichText","Component","constructor","value","selectionStart","selectionEnd","arguments","isIOS","Platform","OS","createRecord","bind","onChangeFromAztec","onKeyDown","handleEnter","handleDelete","onPaste","onFocus","onBlur","onTextUpdate","onContentSizeChange","onFormatChange","formatToValue","maxSize","debounceCreateUndoLevel","debounce","onCreateUndoLevel","onSelectionChange","onSelectionChangeFromAztec","valueToFormat","getHtmlToRender","handleSuggestionFunc","handleUserSuggestion","showUserSuggestions","handleXpostSuggestion","showXpostSuggestions","suggestionOptions","insertString","manipulateEventCounterToForceNativeToRefresh","shouldDropEventFromAztec","state","activeFormats","selectedFormat","height","currentFontSize","getFontSize","needsSelectionUpdate","savedContent","isTouched","lastAztecEventType","lastHistoryValue","getRecord","start","end","colorPalette","props","currentValue","formats","replacements","newFormats","getFormatColors","preserveWhiteSpace","create","html","range","Math","min","length","removeRootTagsProducedByAztec","toHTMLString","getActiveFormatNames","record","formatTypes","map","name","filter","getActiveFormat","undefined","Boolean","changeHandlers","Object","fromEntries","entries","key","startsWith","values","forEach","changeHandler","onChange","setState","string","toInsert","insert","__unstableOnCreateUndoLevel","toString","result","removeRootTag","tagName","tagsToEliminate","element","removeTag","tag","openingTagRegexp","RegExp","closingTagRegexp","replace","event","contentWithoutRootTag","nativeEvent","lastEventCount","eventCount","comesFromAztec","firedAfterTextChanged","refresh","contentSize","defaultPrevented","customEditableOnKeyDown","preventDefault","RCTAztecView","KeyCodes","keyCode","handleTriggerKeyCodes","ENTER","onEnter","shiftKey","DELETE","BACKSPACE","isReverse","onDelete","newValue","remove","isCollapsed","triggeredOption","find","option","triggeredKeyCode","triggerChar","charCodeAt","getTextContent","useTrigger","charAt","onClick","areMentionsSupported","areXPostsSupported","allOptions","supported","title","__","label","icon","atSymbol","plus","op","suggestionFunction","prefix","then","suggestion","catch","pastedText","pastedHtml","files","currentRecord","trimmedText","trim","isURL","linkedRecord","applyFormat","type","attributes","href","decodeEntities","window","console","log","plainText","unstableOnFocus","hasChanged","isManual","getActiveFormats","logText","shouldDrop","shouldFocusTextInputAfterMerge","prevProps","__unstableIsSelected","isSelected","blockIsSelected","__unstableMobileNoFocusOnMount","prevIsSelected","prevBlockIsSelected","noSelectionValues","textInputWasNotFocused","realStart","realEnd","max","isEmpty","Array","isArray","childrenBlock","toHTML","format","shouldComponentUpdate","nextProps","nextState","reversed","fontSize","style","lineHeight","componentDidMount","_editor","focus","componentDidUpdate","_this$value$toString$","lastCharacterPosition","blur","currentFontSizeStyle","getParsedFontSize","prevFontSizeStyle","isDifferentTag","extraAttributes","getEditableProps","className","_getPxFromCssUnit","width","Dimensions","get","cssUnitOptions","selectedPxValue","getPxFromCssUnit","parseFloat","tagNameFontSize","elements","typography","newFontSize","getLineHeight","tagNameLineHeight","newLineHeight","getIsBlockBasedTheme","isNaN","getBlockUseDefaultFont","tagsToMatch","test","getLinkTextColor","defaultColor","customColor","linkColor","isValid","toHex","getPlaceholderTextColor","_ref","_ref2","getStylesFromColorScheme","placeholderTextColor","placeholderStyle","styles","richTextPlaceholder","richTextPlaceholderDark","defaultPlaceholderTextColor","placeholderOpacity","inheritPlaceholderColor","placeholderColor","globalStylesPlaceholderColor","render","children","minWidth","maxWidth","parentBlockStyles","accessibilityLabel","disableEditingMenu","disableSuggestions","containerWidth","editableProps","blockUseDefaultFont","textDecorationColor","defaultTextDecorationColor","fontFamily","defaultFontFamily","richText","richTextDark","linkTextColor","currentSelectionStart","currentSelectionEnd","selection","brBeforeParaMatches","match","warn","count","newSelectionStart","newSelectionEnd","containerStyles","padding","backgroundColor","EditableView","_react","createElement","Fragment","View","editableTagName","ref","nativeEditorRef","minHeight","placeholder","deleteEnter","triggerKeyCodes","blockType","maxImagesWidth","fontWeight","fontStyle","isMultiline","textAlign","id","disableAutocorrection","forwardedRef","BlockFormatControls","options","exports","defaultProps","withFormatTypes","WrappedComponent","clientId","identifier","withoutInteractiveFormatting","allowedFormats","useFormatTypes","_default","compose","withSelect","select","getBlockParents","getBlock","getSettings","parents","parentBlock","childrenStyles","settings","__experimentalGlobalStylesBaseStyles","colorPalettes","__experimentalFeatures","palette","colors","capabilities","mentions","xposts","withPreferredColorScheme"],"sources":["@wordpress/block-editor/src/components/rich-text/native/index.native.js"],"sourcesContent":["/* eslint no-console: [\"error\", { allow: [\"warn\"] }] */\n\n/**\n * External dependencies\n */\nimport { View, Platform, Dimensions } from 'react-native';\nimport memize from 'memize';\nimport { colord } from 'colord';\n\n/**\n * WordPress dependencies\n */\nimport RCTAztecView from '@wordpress/react-native-aztec';\nimport {\n\tshowUserSuggestions,\n\tshowXpostSuggestions,\n} from '@wordpress/react-native-bridge';\nimport { BlockFormatControls } from '@wordpress/block-editor';\nimport { getPxFromCssUnit } from '@wordpress/components';\nimport { Component } from '@wordpress/element';\nimport {\n\tcompose,\n\tdebounce,\n\twithPreferredColorScheme,\n} from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\nimport { childrenBlock } from '@wordpress/blocks';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { BACKSPACE, DELETE, ENTER } from '@wordpress/keycodes';\nimport { isURL } from '@wordpress/url';\nimport { atSymbol, plus } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tapplyFormat,\n\tgetActiveFormat,\n\tgetActiveFormats,\n\tinsert,\n\tgetTextContent,\n\tisEmpty,\n\tcreate,\n\ttoHTMLString,\n\tisCollapsed,\n\tremove,\n} from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport { useFormatTypes } from './use-format-types';\nimport FormatEdit from './format-edit';\nimport { getFormatColors } from './get-format-colors';\nimport styles from './style.scss';\nimport ToolbarButtonWithOptions from './toolbar-button-with-options';\n\n// The flattened color palettes array is memoized to ensure that the same array instance is\n// returned for the colors palettes. This value might be used as a prop, so having the same\n// instance will prevent unnecessary re-renders of the RichText component.\nconst flatColorPalettes = memize( ( colorsPalettes ) => [\n\t...( colorsPalettes?.theme || [] ),\n\t...( colorsPalettes?.custom || [] ),\n\t...( colorsPalettes?.default || [] ),\n] );\n\nconst getSelectionColor = memize(\n\t(\n\t\tcurrentSelectionColor,\n\t\tdefaultSelectionColor,\n\t\tbaseGlobalStyles,\n\t\tisBlockBasedTheme\n\t) => {\n\t\tlet selectionColor = defaultSelectionColor;\n\t\tif ( currentSelectionColor ) {\n\t\t\tselectionColor = currentSelectionColor;\n\t\t}\n\n\t\tif ( isBlockBasedTheme ) {\n\t\t\tconst colordTextColor = colord( selectionColor );\n\t\t\tconst colordBackgroundColor = colord(\n\t\t\t\tbaseGlobalStyles?.color?.background\n\t\t\t);\n\t\t\tconst isColordTextReadable = colordTextColor.isReadable(\n\t\t\t\tcolordBackgroundColor\n\t\t\t);\n\t\t\tif ( ! isColordTextReadable ) {\n\t\t\t\tselectionColor = baseGlobalStyles?.color?.text;\n\t\t\t}\n\t\t}\n\n\t\treturn selectionColor;\n\t}\n);\n\nconst gutenbergFormatNamesToAztec = {\n\t'core/bold': 'bold',\n\t'core/italic': 'italic',\n\t'core/strikethrough': 'strikethrough',\n\t'core/text-color': 'mark',\n};\n\nconst EMPTY_PARAGRAPH_TAGS = '<p></p>';\nconst DEFAULT_FONT_SIZE = 16;\nconst MIN_LINE_HEIGHT = 1;\n\nexport class RichText extends Component {\n\tconstructor( { value, selectionStart, selectionEnd } ) {\n\t\tsuper( ...arguments );\n\n\t\tthis.isIOS = Platform.OS === 'ios';\n\t\tthis.createRecord = this.createRecord.bind( this );\n\t\tthis.onChangeFromAztec = this.onChangeFromAztec.bind( this );\n\t\tthis.onKeyDown = this.onKeyDown.bind( this );\n\t\tthis.handleEnter = this.handleEnter.bind( this );\n\t\tthis.handleDelete = this.handleDelete.bind( this );\n\t\tthis.onPaste = this.onPaste.bind( this );\n\t\tthis.onFocus = this.onFocus.bind( this );\n\t\tthis.onBlur = this.onBlur.bind( this );\n\t\tthis.onTextUpdate = this.onTextUpdate.bind( this );\n\t\tthis.onContentSizeChange = this.onContentSizeChange.bind( this );\n\t\tthis.onFormatChange = this.onFormatChange.bind( this );\n\t\tthis.formatToValue = memize( this.formatToValue.bind( this ), {\n\t\t\tmaxSize: 1,\n\t\t} );\n\t\tthis.debounceCreateUndoLevel = debounce( this.onCreateUndoLevel, 1000 );\n\t\t// This prevents a bug in Aztec which triggers onSelectionChange twice on format change.\n\t\tthis.onSelectionChange = this.onSelectionChange.bind( this );\n\t\tthis.onSelectionChangeFromAztec =\n\t\t\tthis.onSelectionChangeFromAztec.bind( this );\n\t\tthis.valueToFormat = this.valueToFormat.bind( this );\n\t\tthis.getHtmlToRender = this.getHtmlToRender.bind( this );\n\t\tthis.handleSuggestionFunc = this.handleSuggestionFunc.bind( this );\n\t\tthis.handleUserSuggestion = this.handleSuggestionFunc(\n\t\t\tshowUserSuggestions,\n\t\t\t'@'\n\t\t).bind( this );\n\t\tthis.handleXpostSuggestion = this.handleSuggestionFunc(\n\t\t\tshowXpostSuggestions,\n\t\t\t'+'\n\t\t).bind( this );\n\t\tthis.suggestionOptions = this.suggestionOptions.bind( this );\n\t\tthis.insertString = this.insertString.bind( this );\n\t\tthis.manipulateEventCounterToForceNativeToRefresh =\n\t\t\tthis.manipulateEventCounterToForceNativeToRefresh.bind( this );\n\t\tthis.shouldDropEventFromAztec =\n\t\t\tthis.shouldDropEventFromAztec.bind( this );\n\t\tthis.state = {\n\t\t\tactiveFormats: [],\n\t\t\tselectedFormat: null,\n\t\t\theight: 0,\n\t\t\tcurrentFontSize: this.getFontSize( arguments[ 0 ] ),\n\t\t};\n\t\tthis.needsSelectionUpdate = false;\n\t\tthis.savedContent = '';\n\t\tthis.isTouched = false;\n\t\tthis.lastAztecEventType = null;\n\n\t\tthis.lastHistoryValue = value;\n\n\t\t// Internal values that are update synchronously, unlike props.\n\t\tthis.value = value;\n\t\tthis.selectionStart = selectionStart;\n\t\tthis.selectionEnd = selectionEnd;\n\t}\n\n\t/**\n\t * Get the current record (value and selection) from props and state.\n\t *\n\t * @return {Object} The current record (value and selection).\n\t */\n\tgetRecord() {\n\t\tconst {\n\t\t\tselectionStart: start,\n\t\t\tselectionEnd: end,\n\t\t\tcolorPalette,\n\t\t} = this.props;\n\t\tconst { value } = this.props;\n\t\tconst currentValue = this.formatToValue( value );\n\n\t\tconst { formats, replacements, text } = currentValue;\n\t\tconst { activeFormats } = this.state;\n\t\tconst newFormats = getFormatColors( formats, colorPalette );\n\n\t\treturn {\n\t\t\tformats: newFormats,\n\t\t\treplacements,\n\t\t\ttext,\n\t\t\tstart,\n\t\t\tend,\n\t\t\tactiveFormats,\n\t\t};\n\t}\n\n\t/**\n\t * Creates a RichText value \"record\" from the current content and selection\n\t * information\n\t *\n\t *\n\t * @return {Object} A RichText value with formats and selection.\n\t */\n\tcreateRecord() {\n\t\tconst { preserveWhiteSpace } = this.props;\n\t\tconst value = {\n\t\t\tstart: this.selectionStart,\n\t\t\tend: this.selectionEnd,\n\t\t\t...create( {\n\t\t\t\thtml: this.value,\n\t\t\t\trange: null,\n\t\t\t\tpreserveWhiteSpace,\n\t\t\t} ),\n\t\t};\n\t\tconst start = Math.min( this.selectionStart, value.text.length );\n\t\tconst end = Math.min( this.selectionEnd, value.text.length );\n\t\treturn { ...value, start, end };\n\t}\n\n\tvalueToFormat( value ) {\n\t\t// Remove the outer root tags.\n\t\treturn this.removeRootTagsProducedByAztec( toHTMLString( { value } ) );\n\t}\n\n\tgetActiveFormatNames( record ) {\n\t\tconst { formatTypes } = this.props;\n\n\t\treturn formatTypes\n\t\t\t.map( ( { name } ) => name )\n\t\t\t.filter( ( name ) => {\n\t\t\t\treturn getActiveFormat( record, name ) !== undefined;\n\t\t\t} )\n\t\t\t.map( ( name ) => gutenbergFormatNamesToAztec[ name ] )\n\t\t\t.filter( Boolean );\n\t}\n\n\tonFormatChange( record ) {\n\t\tconst { start = 0, end = 0, activeFormats = [] } = record;\n\t\tconst changeHandlers = Object.fromEntries(\n\t\t\tObject.entries( this.props ).filter( ( [ key ] ) =>\n\t\t\t\tkey.startsWith( 'format_on_change_functions_' )\n\t\t\t)\n\t\t);\n\n\t\tObject.values( changeHandlers ).forEach( ( changeHandler ) => {\n\t\t\tchangeHandler( record.formats, record.text );\n\t\t} );\n\n\t\tthis.value = this.valueToFormat( record );\n\t\tthis.props.onChange( this.value );\n\t\tthis.setState( { activeFormats } );\n\t\tthis.props.onSelectionChange( start, end );\n\t\tthis.selectionStart = start;\n\t\tthis.selectionEnd = end;\n\n\t\tthis.onCreateUndoLevel();\n\n\t\tthis.lastAztecEventType = 'format change';\n\t}\n\n\tinsertString( record, string ) {\n\t\tif ( record && string ) {\n\t\t\tthis.manipulateEventCounterToForceNativeToRefresh(); // force a refresh on the native side\n\t\t\tconst toInsert = insert( record, string );\n\t\t\tthis.onFormatChange( toInsert );\n\t\t}\n\t}\n\n\tonCreateUndoLevel() {\n\t\tconst { __unstableOnCreateUndoLevel: onCreateUndoLevel } = this.props;\n\t\t// If the content is the same, no level needs to be created.\n\t\tif ( this.lastHistoryValue?.toString() === this.value?.toString() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tonCreateUndoLevel();\n\t\tthis.lastHistoryValue = this.value;\n\t}\n\n\t/*\n\t * Cleans up any root tags produced by aztec.\n\t * TODO: This should be removed on a later version when aztec doesn't return the top tag of the text being edited\n\t */\n\tremoveRootTagsProducedByAztec( html ) {\n\t\tlet result = this.removeRootTag( this.props.tagName, html );\n\n\t\tif ( this.props.tagsToEliminate ) {\n\t\t\tthis.props.tagsToEliminate.forEach( ( element ) => {\n\t\t\t\tresult = this.removeTag( element, result );\n\t\t\t} );\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tremoveRootTag( tag, html ) {\n\t\tconst openingTagRegexp = RegExp( '^<' + tag + '[^>]*>', 'gim' );\n\t\tconst closingTagRegexp = RegExp( '</' + tag + '>$', 'gim' );\n\n\t\treturn html\n\t\t\t.replace( openingTagRegexp, '' )\n\t\t\t.replace( closingTagRegexp, '' );\n\t}\n\n\tremoveTag( tag, html ) {\n\t\tconst openingTagRegexp = RegExp( '<' + tag + '>', 'gim' );\n\t\tconst closingTagRegexp = RegExp( '</' + tag + '>', 'gim' );\n\t\treturn html\n\t\t\t.replace( openingTagRegexp, '' )\n\t\t\t.replace( closingTagRegexp, '' );\n\t}\n\n\t/*\n\t * Handles any case where the content of the AztecRN instance has changed\n\t */\n\tonChangeFromAztec( event ) {\n\t\tif ( this.shouldDropEventFromAztec( event, 'onChange' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst contentWithoutRootTag = this.removeRootTagsProducedByAztec(\n\t\t\tevent.nativeEvent.text\n\t\t);\n\t\t// On iOS, onChange can be triggered after selection changes, even though there are no content changes.\n\t\tif ( contentWithoutRootTag === this.value?.toString() ) {\n\t\t\treturn;\n\t\t}\n\t\tthis.lastEventCount = event.nativeEvent.eventCount;\n\t\tthis.comesFromAztec = true;\n\t\tthis.firedAfterTextChanged = true; // The onChange event always fires after the fact.\n\t\tthis.onTextUpdate( event );\n\t\tthis.lastAztecEventType = 'input';\n\t}\n\n\tonTextUpdate( event ) {\n\t\tconst contentWithoutRootTag = this.removeRootTagsProducedByAztec(\n\t\t\tevent.nativeEvent.text\n\t\t);\n\n\t\tthis.debounceCreateUndoLevel();\n\t\tconst refresh = this.value?.toString() !== contentWithoutRootTag;\n\t\tthis.value = contentWithoutRootTag;\n\n\t\t// We don't want to refresh if our goal is just to create a record.\n\t\tif ( refresh ) {\n\t\t\tthis.props.onChange( contentWithoutRootTag );\n\t\t}\n\t}\n\n\t/*\n\t * Handles any case where the content of the AztecRN instance has changed in size\n\t */\n\tonContentSizeChange( contentSize ) {\n\t\tthis.setState( contentSize );\n\t\tthis.lastAztecEventType = 'content size change';\n\t}\n\n\tonKeyDown( event ) {\n\t\tif ( event.defaultPrevented ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Add stubs for conformance in downstream autocompleters logic.\n\t\tthis.customEditableOnKeyDown?.( {\n\t\t\tpreventDefault: () => undefined,\n\t\t\t...event,\n\t\t\tkey: RCTAztecView.KeyCodes[ event?.keyCode ],\n\t\t} );\n\n\t\tthis.handleDelete( event );\n\t\tthis.handleEnter( event );\n\t\tthis.handleTriggerKeyCodes( event );\n\t}\n\n\thandleEnter( event ) {\n\t\tif ( event.keyCode !== ENTER ) {\n\t\t\treturn;\n\t\t}\n\t\tconst { onEnter } = this.props;\n\n\t\tif ( ! onEnter ) {\n\t\t\treturn;\n\t\t}\n\n\t\tonEnter( {\n\t\t\tvalue: this.createRecord(),\n\t\t\tonChange: this.onFormatChange,\n\t\t\tshiftKey: event.shiftKey,\n\t\t} );\n\t\tthis.lastAztecEventType = 'input';\n\t}\n\n\thandleDelete( event ) {\n\t\tif ( this.shouldDropEventFromAztec( event, 'handleDelete' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { keyCode } = event;\n\n\t\tif ( keyCode !== DELETE && keyCode !== BACKSPACE ) {\n\t\t\treturn;\n\t\t}\n\t\tconst isReverse = keyCode === BACKSPACE;\n\n\t\tconst { onDelete } = this.props;\n\t\tthis.lastEventCount = event.nativeEvent.eventCount;\n\t\tthis.comesFromAztec = true;\n\t\tthis.firedAfterTextChanged = event.nativeEvent.firedAfterTextChanged;\n\t\tconst value = this.createRecord();\n\t\tconst { start, end, text } = value;\n\t\tlet newValue;\n\n\t\t// Always handle full content deletion ourselves.\n\t\tif ( start === 0 && end !== 0 && end >= text.length ) {\n\t\t\tnewValue = remove( value );\n\t\t\tthis.onFormatChange( newValue );\n\t\t\tevent.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\t// Only process delete if the key press occurs at an uncollapsed edge.\n\t\tif (\n\t\t\t! onDelete ||\n\t\t\t! isCollapsed( value ) ||\n\t\t\t( isReverse && start !== 0 ) ||\n\t\t\t( ! isReverse && end !== text.length )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tonDelete( { isReverse, value } );\n\n\t\tevent.preventDefault();\n\t\tthis.lastAztecEventType = 'input';\n\t}\n\n\thandleTriggerKeyCodes( event ) {\n\t\tconst { keyCode } = event;\n\t\tconst triggeredOption = this.suggestionOptions().find( ( option ) => {\n\t\t\tconst triggeredKeyCode = option.triggerChar.charCodeAt( 0 );\n\t\t\treturn triggeredKeyCode === keyCode;\n\t\t} );\n\n\t\tif ( triggeredOption ) {\n\t\t\tconst record = this.getRecord();\n\t\t\tconst text = getTextContent( record );\n\t\t\t// Only respond to the trigger if the selection is on the start of text or line\n\t\t\t// or if the character before is a space.\n\t\t\tconst useTrigger =\n\t\t\t\ttext.length === 0 ||\n\t\t\t\trecord.start === 0 ||\n\t\t\t\ttext.charAt( record.start - 1 ) === '\\n' ||\n\t\t\t\ttext.charAt( record.start - 1 ) === ' ';\n\n\t\t\tif ( useTrigger && triggeredOption.onClick ) {\n\t\t\t\ttriggeredOption.onClick();\n\t\t\t} else {\n\t\t\t\tthis.insertString( record, triggeredOption.triggerChar );\n\t\t\t}\n\t\t}\n\t}\n\n\tsuggestionOptions() {\n\t\tconst { areMentionsSupported, areXPostsSupported } = this.props;\n\t\tconst allOptions = [\n\t\t\t{\n\t\t\t\tsupported: areMentionsSupported,\n\t\t\t\ttitle: __( 'Insert mention' ),\n\t\t\t\tonClick: this.handleUserSuggestion,\n\t\t\t\ttriggerChar: '@',\n\t\t\t\tvalue: 'mention',\n\t\t\t\tlabel: __( 'Mention' ),\n\t\t\t\ticon: atSymbol,\n\t\t\t},\n\t\t\t{\n\t\t\t\tsupported: areXPostsSupported,\n\t\t\t\ttitle: __( 'Insert crosspost' ),\n\t\t\t\tonClick: this.handleXpostSuggestion,\n\t\t\t\ttriggerChar: '+',\n\t\t\t\tvalue: 'crosspost',\n\t\t\t\tlabel: __( 'Crosspost' ),\n\t\t\t\ticon: plus,\n\t\t\t},\n\t\t];\n\t\treturn allOptions.filter( ( op ) => op.supported );\n\t}\n\n\thandleSuggestionFunc( suggestionFunction, prefix ) {\n\t\treturn () => {\n\t\t\tconst record = this.getRecord();\n\t\t\tsuggestionFunction()\n\t\t\t\t.then( ( suggestion ) => {\n\t\t\t\t\tthis.insertString( record, `${ prefix }${ suggestion } ` );\n\t\t\t\t} )\n\t\t\t\t.catch( () => {} );\n\t\t};\n\t}\n\n\t/**\n\t * Handles a paste event from the native Aztec Wrapper.\n\t *\n\t * @param {Object} event The paste event which wraps `nativeEvent`.\n\t */\n\tonPaste( event ) {\n\t\tconst { onPaste, onChange } = this.props;\n\t\tconst { activeFormats = [] } = this.state;\n\n\t\tconst { pastedText, pastedHtml, files } = event.nativeEvent;\n\t\tconst currentRecord = this.createRecord();\n\n\t\tevent.preventDefault();\n\n\t\t// There is a selection, check if a URL is pasted.\n\t\tif ( ! isCollapsed( currentRecord ) ) {\n\t\t\tconst trimmedText = ( pastedHtml || pastedText )\n\t\t\t\t.replace( /<[^>]+>/g, '' )\n\t\t\t\t.trim();\n\n\t\t\t// A URL was pasted, turn the selection into a link.\n\t\t\tif ( isURL( trimmedText ) ) {\n\t\t\t\tconst linkedRecord = applyFormat( currentRecord, {\n\t\t\t\t\ttype: 'a',\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\thref: decodeEntities( trimmedText ),\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t\tthis.value = this.valueToFormat( linkedRecord );\n\t\t\t\tonChange( this.value );\n\n\t\t\t\t// Allows us to ask for this information when we get a report.\n\t\t\t\twindow.console.log( 'Created link:\\n\\n', trimmedText );\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif ( onPaste ) {\n\t\t\tonPaste( {\n\t\t\t\tvalue: currentRecord,\n\t\t\t\tonChange: this.onFormatChange,\n\t\t\t\thtml: pastedHtml,\n\t\t\t\tplainText: pastedText,\n\t\t\t\tfiles,\n\t\t\t\tactiveFormats,\n\t\t\t} );\n\t\t}\n\t}\n\n\tonFocus() {\n\t\tthis.isTouched = true;\n\n\t\tconst { unstableOnFocus, onSelectionChange } = this.props;\n\n\t\tif ( unstableOnFocus ) {\n\t\t\tunstableOnFocus();\n\t\t}\n\n\t\t// We know for certain that on focus, the old selection is invalid. It\n\t\t// will be recalculated on `selectionchange`.\n\n\t\tonSelectionChange( this.selectionStart, this.selectionEnd );\n\n\t\tthis.lastAztecEventType = 'focus';\n\t}\n\n\tonBlur( event ) {\n\t\tthis.isTouched = false;\n\n\t\t// Check if value is up to date with latest state of native AztecView.\n\t\tif (\n\t\t\tevent.nativeEvent.text &&\n\t\t\tevent.nativeEvent.text !== this.props.value?.toString()\n\t\t) {\n\t\t\tthis.onTextUpdate( event );\n\t\t}\n\n\t\tif ( this.props.onBlur ) {\n\t\t\tthis.props.onBlur( event );\n\t\t}\n\n\t\tthis.lastAztecEventType = 'blur';\n\t}\n\n\tonSelectionChange( start, end ) {\n\t\tconst hasChanged =\n\t\t\tthis.selectionStart !== start || this.selectionEnd !== end;\n\n\t\tthis.selectionStart = start;\n\t\tthis.selectionEnd = end;\n\n\t\t// This is a manual selection change event if onChange was not triggered just before\n\t\t// and we did not just trigger a text update\n\t\t// `onChange` could be the last event and could have been triggered a long time ago so\n\t\t// this approach is not perfectly reliable.\n\t\tconst isManual =\n\t\t\tthis.lastAztecEventType !== 'input' &&\n\t\t\tthis.props.value?.toString() === this.value?.toString();\n\t\tif ( hasChanged && isManual ) {\n\t\t\tconst value = this.createRecord();\n\t\t\tconst activeFormats = getActiveFormats( value );\n\t\t\tthis.setState( { activeFormats } );\n\t\t}\n\n\t\tthis.props.onSelectionChange( start, end );\n\t}\n\n\tshouldDropEventFromAztec( event, logText ) {\n\t\tconst shouldDrop =\n\t\t\t! this.isIOS && event.nativeEvent.eventCount <= this.lastEventCount;\n\t\tif ( shouldDrop ) {\n\t\t\twindow.console.log(\n\t\t\t\t`Dropping ${ logText } from Aztec as its event counter is older than latest sent to the native side. Got ${ event.nativeEvent.eventCount } but lastEventCount is ${ this.lastEventCount }.`\n\t\t\t);\n\t\t}\n\t\treturn shouldDrop;\n\t}\n\n\t/**\n\t * Determines whether the text input should receive focus after an update.\n\t * For cases where a RichText with a value is merged with an empty one.\n\t *\n\t * @param {Object} prevProps - The previous props of the component.\n\t * @return {boolean} True if the text input should receive focus, false otherwise.\n\t */\n\tshouldFocusTextInputAfterMerge( prevProps ) {\n\t\tconst {\n\t\t\t__unstableIsSelected: isSelected,\n\t\t\tblockIsSelected,\n\t\t\tselectionStart,\n\t\t\tselectionEnd,\n\t\t\t__unstableMobileNoFocusOnMount,\n\t\t} = this.props;\n\n\t\tconst {\n\t\t\t__unstableIsSelected: prevIsSelected,\n\t\t\tblockIsSelected: prevBlockIsSelected,\n\t\t} = prevProps;\n\n\t\tconst noSelectionValues =\n\t\t\tselectionStart === undefined && selectionEnd === undefined;\n\t\tconst textInputWasNotFocused = ! prevIsSelected && ! isSelected;\n\n\t\treturn (\n\t\t\t! __unstableMobileNoFocusOnMount &&\n\t\t\tnoSelectionValues &&\n\t\t\ttextInputWasNotFocused &&\n\t\t\t! prevBlockIsSelected &&\n\t\t\tblockIsSelected\n\t\t);\n\t}\n\n\tonSelectionChangeFromAztec( start, end, text, event ) {\n\t\tif ( this.shouldDropEventFromAztec( event, 'onSelectionChange' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// `end` can be less than `start` on iOS\n\t\t// Let's fix that here so `rich-text/slice` can work properly.\n\t\tconst realStart = Math.min( start, end );\n\t\tconst realEnd = Math.max( start, end );\n\n\t\t// Check and dicsard stray event, where the text and selection is equal to the ones already cached.\n\t\tconst contentWithoutRootTag = this.removeRootTagsProducedByAztec(\n\t\t\tevent.nativeEvent.text\n\t\t);\n\t\tif (\n\t\t\tcontentWithoutRootTag === this.value?.toString() &&\n\t\t\trealStart === this.selectionStart &&\n\t\t\trealEnd === this.selectionEnd\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.comesFromAztec = true;\n\t\tthis.firedAfterTextChanged = true; // Selection change event always fires after the fact.\n\n\t\t// Update text before updating selection\n\t\t// Make sure there are changes made to the content before upgrading it upward.\n\t\tthis.onTextUpdate( event );\n\n\t\t// Aztec can send us selection change events after it has lost focus.\n\t\t// For instance the autocorrect feature will complete a partially written\n\t\t// word when resigning focus, causing a selection change event.\n\t\t// Forwarding this selection change could cause this RichText to regain\n\t\t// focus and start a focus loop.\n\t\t//\n\t\t// See https://github.com/wordpress-mobile/gutenberg-mobile/issues/1696\n\t\tif ( this.props.__unstableIsSelected ) {\n\t\t\tthis.onSelectionChange( realStart, realEnd );\n\t\t}\n\t\t// Update lastEventCount to prevent Aztec from re-rendering the content it just sent.\n\t\tthis.lastEventCount = event.nativeEvent.eventCount;\n\n\t\tthis.lastAztecEventType = 'selection change';\n\t}\n\n\tisEmpty() {\n\t\treturn isEmpty( this.formatToValue( this.props.value ) );\n\t}\n\n\tformatToValue( value ) {\n\t\tconst { preserveWhiteSpace } = this.props;\n\t\t// Handle deprecated `children` and `node` sources.\n\t\tif ( Array.isArray( value ) ) {\n\t\t\treturn create( {\n\t\t\t\thtml: childrenBlock.toHTML( value ),\n\t\t\t\tpreserveWhiteSpace,\n\t\t\t} );\n\t\t}\n\n\t\tif ( this.props.format === 'string' ) {\n\t\t\treturn create( {\n\t\t\t\thtml: value,\n\t\t\t\tpreserveWhiteSpace,\n\t\t\t} );\n\t\t}\n\n\t\t// Guard for blocks passing `null` in onSplit callbacks. May be removed\n\t\t// if onSplit is revised to not pass a `null` value.\n\t\tif ( value === null ) {\n\t\t\treturn create();\n\t\t}\n\n\t\treturn value;\n\t}\n\n\tmanipulateEventCounterToForceNativeToRefresh() {\n\t\tif ( this.isIOS ) {\n\t\t\tthis.lastEventCount = undefined;\n\t\t\treturn;\n\t\t}\n\n\t\tif ( typeof this.lastEventCount !== 'undefined' ) {\n\t\t\tthis.lastEventCount += 100; // bump by a hundred, hopefully native hasn't bombarded the JS side in the meantime.\n\t\t} // no need to bump when 'undefined' as native side won't receive the key when the value is undefined, and that will cause force updating anyway,\n\t\t// see https://github.com/WordPress/gutenberg/blob/82e578dcc75e67891c750a41a04c1e31994192fc/packages/react-native-aztec/android/src/main/java/org/wordpress/mobile/ReactNativeAztec/ReactAztecManager.java#L213-L215\n\t}\n\n\tshouldComponentUpdate( nextProps, nextState ) {\n\t\tif (\n\t\t\tnextProps.tagName !== this.props.tagName ||\n\t\t\tnextProps.reversed !== this.props.reversed ||\n\t\t\tnextProps.start !== this.props.start\n\t\t) {\n\t\t\tthis.manipulateEventCounterToForceNativeToRefresh(); // force a refresh on the native side\n\t\t\tthis.value = undefined;\n\t\t\treturn true;\n\t\t}\n\n\t\t// TODO: Please re-introduce the check to avoid updating the content right after an `onChange` call.\n\t\t// It was removed in https://github.com/WordPress/gutenberg/pull/12417 to fix undo/redo problem.\n\n\t\t// If the component is changed React side (undo/redo/merging/splitting/custom text actions)\n\t\t// we need to make sure the native is updated as well.\n\n\t\t// Also, don't trust the \"this.lastContent\" as on Android, incomplete text events arrive\n\t\t// with only some of the text, while the virtual keyboard's suggestion system does its magic.\n\t\t// ** compare with this.lastContent for optimizing performance by not forcing Aztec with text it already has\n\t\t// , but compare with props.value to not lose \"half word\" text because of Android virtual keyb autosuggestion behavior\n\t\tif (\n\t\t\ttypeof nextProps.value !== 'undefined' &&\n\t\t\ttypeof this.props.value !== 'undefined' &&\n\t\t\t( ! this.comesFromAztec || ! this.firedAfterTextChanged ) &&\n\t\t\tnextProps.value?.toString() !== this.props.value?.toString()\n\t\t) {\n\t\t\t// Gutenberg seems to try to mirror the caret state even on events that only change the content so,\n\t\t\t// let's force caret update if state has selection set.\n\t\t\tif (\n\t\t\t\ttypeof nextProps.selectionStart !== 'undefined' &&\n\t\t\t\ttypeof nextProps.selectionEnd !== 'undefined'\n\t\t\t) {\n\t\t\t\tthis.needsSelectionUpdate = true;\n\t\t\t}\n\n\t\t\tthis.manipulateEventCounterToForceNativeToRefresh(); // force a refresh on the native side\n\t\t}\n\n\t\tif ( ! this.comesFromAztec ) {\n\t\t\tif (\n\t\t\t\ttypeof nextProps.selectionStart !== 'undefined' &&\n\t\t\t\ttypeof nextProps.selectionEnd !== 'undefined' &&\n\t\t\t\tnextProps.selectionStart !== this.props.selectionStart &&\n\t\t\t\tnextProps.selectionStart !== this.selectionStart &&\n\t\t\t\tnextProps.__unstableIsSelected\n\t\t\t) {\n\t\t\t\tthis.needsSelectionUpdate = true;\n\t\t\t\tthis.manipulateEventCounterToForceNativeToRefresh(); // force a refresh on the native side\n\t\t\t}\n\n\t\t\t// For font size changes from a prop value a force refresh\n\t\t\t// is needed without the selection update.\n\t\t\tif ( nextProps?.fontSize !== this.props?.fontSize ) {\n\t\t\t\tthis.manipulateEventCounterToForceNativeToRefresh(); // force a refresh on the native side\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t( nextProps?.style?.fontSize !== this.props?.style?.fontSize &&\n\t\t\t\t\tnextState.currentFontSize !==\n\t\t\t\t\t\tthis.state.currentFontSize ) ||\n\t\t\t\tnextState.currentFontSize !== this.state.currentFontSize ||\n\t\t\t\tnextProps?.style?.lineHeight !== this.props?.style?.lineHeight\n\t\t\t) {\n\t\t\t\tthis.needsSelectionUpdate = true;\n\t\t\t\tthis.manipulateEventCounterToForceNativeToRefresh(); // force a refresh on the native side\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tcomponentDidMount() {\n\t\t// Request focus if wrapping block is selected and parent hasn't inhibited the focus request. This method of focusing\n\t\t// is trying to implement the web-side counterpart of BlockList's `focusTabbable` where the BlockList is focusing an\n\t\t// inputbox by searching the DOM. We don't have the DOM in RN so, using the combination of blockIsSelected and __unstableMobileNoFocusOnMount\n\t\t// to determine if we should focus the RichText.\n\t\tif (\n\t\t\tthis.props.blockIsSelected &&\n\t\t\t! this.props.__unstableMobileNoFocusOnMount\n\t\t) {\n\t\t\tthis._editor.focus();\n\t\t\tthis.onSelectionChange(\n\t\t\t\tthis.props.selectionStart || 0,\n\t\t\t\tthis.props.selectionEnd || 0\n\t\t\t);\n\t\t}\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tconst { style, tagName } = this.props;\n\t\tconst { currentFontSize } = this.state;\n\n\t\tif ( this.props.value?.toString() !== this.value?.toString() ) {\n\t\t\tthis.value = this.props.value;\n\t\t}\n\t\tconst { __unstableIsSelected: prevIsSelected } = prevProps;\n\t\tconst { __unstableIsSelected: isSelected } = this.props;\n\n\t\tif ( isSelected && ! prevIsSelected ) {\n\t\t\tthis._editor.focus();\n\t\t\t// Update selection props explicitly when component is selected as Aztec won't call onSelectionChange\n\t\t\t// if its internal value hasn't change. When created, default value is 0, 0.\n\t\t\tthis.onSelectionChange(\n\t\t\t\tthis.props.selectionStart || 0,\n\t\t\t\tthis.props.selectionEnd || 0\n\t\t\t);\n\t\t} else if ( this.shouldFocusTextInputAfterMerge( prevProps ) ) {\n\t\t\t// Since this is happening when merging blocks, the selection should be at the last character position.\n\t\t\t// As a fallback the internal selectionEnd value is used.\n\t\t\tconst lastCharacterPosition =\n\t\t\t\tthis.value?.toString().length ?? this.selectionEnd;\n\t\t\tthis._editor.focus();\n\t\t\tthis.props.onSelectionChange(\n\t\t\t\tlastCharacterPosition,\n\t\t\t\tlastCharacterPosition\n\t\t\t);\n\t\t} else if ( ! isSelected && prevIsSelected ) {\n\t\t\tthis._editor.blur();\n\t\t}\n\n\t\t// For font size values changes from the font size picker\n\t\t// we compare previous values to refresh the selected font size,\n\t\t// this is also used when the tag name changes\n\t\t// e.g Heading block and a level change like h1->h2.\n\t\tconst currentFontSizeStyle = this.getParsedFontSize( style?.fontSize );\n\t\tconst prevFontSizeStyle = this.getParsedFontSize(\n\t\t\tprevProps?.style?.fontSize\n\t\t);\n\t\tconst isDifferentTag = prevProps.tagName !== tagName;\n\t\tif (\n\t\t\t( currentFontSize &&\n\t\t\t\t( currentFontSizeStyle || prevFontSizeStyle ) &&\n\t\t\t\tcurrentFontSizeStyle !== currentFontSize ) ||\n\t\t\tisDifferentTag\n\t\t) {\n\t\t\tthis.setState( {\n\t\t\t\tcurrentFontSize: this.getFontSize( this.props ),\n\t\t\t} );\n\t\t}\n\t}\n\n\tgetHtmlToRender( record, tagName ) {\n\t\t// Save back to HTML from React tree.\n\t\tlet value = this.valueToFormat( record );\n\n\t\tif ( value === undefined ) {\n\t\t\tthis.manipulateEventCounterToForceNativeToRefresh(); // force a refresh on the native side\n\t\t\tvalue = '';\n\t\t}\n\t\t// On android if content is empty we need to send no content or else the placeholder will not show.\n\t\tif (\n\t\t\t! this.isIOS &&\n\t\t\t( value?.toString() === '' ||\n\t\t\t\tvalue?.toString() === EMPTY_PARAGRAPH_TAGS )\n\t\t) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif ( tagName ) {\n\t\t\tlet extraAttributes = ``;\n\t\t\tif ( tagName === `ol` ) {\n\t\t\t\tif ( this.props.reversed ) {\n\t\t\t\t\textraAttributes += ` reversed`;\n\t\t\t\t}\n\t\t\t\tif ( this.props.start ) {\n\t\t\t\t\textraAttributes += ` start=${ this.props.start }`;\n\t\t\t\t}\n\t\t\t}\n\t\t\tvalue = `<${ tagName }${ extraAttributes }>${ value }</${ tagName }>`;\n\t\t}\n\t\treturn value;\n\t}\n\n\tgetEditableProps() {\n\t\treturn {\n\t\t\t// Overridable props.\n\t\t\tstyle: {},\n\t\t\tclassName: 'rich-text',\n\t\t\tonKeyDown: () => null,\n\t\t};\n\t}\n\n\tgetParsedFontSize( fontSize ) {\n\t\tconst { height, width } = Dimensions.get( 'window' );\n\t\tconst cssUnitOptions = { height, width, fontSize: DEFAULT_FONT_SIZE };\n\n\t\tif ( ! fontSize ) {\n\t\t\treturn fontSize;\n\t\t}\n\n\t\tconst selectedPxValue =\n\t\t\tgetPxFromCssUnit( fontSize, cssUnitOptions ) ?? DEFAULT_FONT_SIZE;\n\n\t\treturn parseFloat( selectedPxValue );\n\t}\n\n\tgetFontSize( props ) {\n\t\tconst { baseGlobalStyles, tagName, fontSize, style } = props;\n\t\tconst tagNameFontSize =\n\t\t\tbaseGlobalStyles?.elements?.[ tagName ]?.typography?.fontSize;\n\n\t\tlet newFontSize = DEFAULT_FONT_SIZE;\n\n\t\t// Disables line-height rendering for pre elements until we fix some issues with AztecAndroid.\n\t\tif ( tagName === 'pre' && ! this.isIOS ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// For block-based themes, get the default editor font size.\n\t\tif ( baseGlobalStyles?.typography?.fontSize && tagName === 'p' ) {\n\t\t\tnewFontSize = baseGlobalStyles?.typography?.fontSize;\n\t\t}\n\n\t\t// For block-based themes, get the default element font size\n\t\t// e.g h1, h2.\n\t\tif ( tagNameFontSize ) {\n\t\t\tnewFontSize = tagNameFontSize;\n\t\t}\n\n\t\t// For font size values provided from the styles,\n\t\t// usually from values set from the font size picker.\n\t\tif ( style?.fontSize ) {\n\t\t\tnewFontSize = style.fontSize;\n\t\t}\n\n\t\t// Fall-back to a font size provided from its props (if there's any)\n\t\t// and there are no other default values to use.\n\t\tif ( fontSize && ! tagNameFontSize && ! style?.fontSize ) {\n\t\t\tnewFontSize = fontSize;\n\t\t}\n\n\t\t// We need to always convert to px units because the selected value\n\t\t// could be coming from the web where it could be stored as a different unit.\n\t\tconst selectedPxValue = this.getParsedFontSize( newFontSize );\n\n\t\treturn selectedPxValue;\n\t}\n\n\tgetLineHeight() {\n\t\tconst { baseGlobalStyles, tagName, lineHeight, style } = this.props;\n\t\tconst tagNameLineHeight =\n\t\t\tbaseGlobalStyles?.elements?.[ tagName ]?.typography?.lineHeight;\n\t\tlet newLineHeight;\n\n\t\t// Disables line-height rendering for pre elements until we fix some issues with AztecAndroid.\n\t\tif ( tagName === 'pre' && ! this.isIOS ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif ( ! this.getIsBlockBasedTheme() ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// For block-based themes, get the default editor line height.\n\t\tif ( baseGlobalStyles?.typography?.lineHeight && tagName === 'p' ) {\n\t\t\tnewLineHeight = parseFloat(\n\t\t\t\tbaseGlobalStyles?.typography?.lineHeight\n\t\t\t);\n\t\t}\n\n\t\t// For block-based themes, get the default element line height\n\t\t// e.g h1, h2.\n\t\tif ( tagNameLineHeight ) {\n\t\t\tnewLineHeight = parseFloat( tagNameLineHeight );\n\t\t}\n\n\t\t// For line height values provided from the styles,\n\t\t// usually from values set from the line height picker.\n\t\tif ( style?.lineHeight ) {\n\t\t\tnewLineHeight = parseFloat( style.lineHeight );\n\t\t}\n\n\t\t// Fall-back to a line height provided from its props (if there's any)\n\t\t// and there are no other default values to use.\n\t\tif ( lineHeight && ! tagNameLineHeight && ! style?.lineHeight ) {\n\t\t\tnewLineHeight = lineHeight;\n\t\t}\n\n\t\t// Check the final value is not over the minimum supported value.\n\t\tif ( newLineHeight && newLineHeight < MIN_LINE_HEIGHT ) {\n\t\t\tnewLineHeight = MIN_LINE_HEIGHT;\n\t\t}\n\n\t\t// Until we parse CSS values correctly, avoid passing NaN values to Aztec\n\t\tif ( isNaN( newLineHeight ) ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn newLineHeight;\n\t}\n\n\tgetIsBlockBasedTheme() {\n\t\tconst { baseGlobalStyles } = this.props;\n\n\t\treturn (\n\t\t\tbaseGlobalStyles && Object.entries( baseGlobalStyles ).length !== 0\n\t\t);\n\t}\n\n\tgetBlockUseDefaultFont() {\n\t\t// For block-based themes it enables using the defaultFont\n\t\t// in Aztec for iOS so it allows customizing the font size\n\t\t// for the Preformatted/Code and Heading blocks.\n\t\tif ( ! this.isIOS ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { tagName } = this.props;\n\t\tconst isBlockBasedTheme = this.getIsBlockBasedTheme();\n\t\tconst tagsToMatch = /pre|h([1-6])$/gm;\n\n\t\treturn isBlockBasedTheme && tagsToMatch.test( tagName );\n\t}\n\n\tgetLinkTextColor( defaultColor ) {\n\t\tconst { style } = this.props;\n\t\tconst customColor = style?.linkColor && colord( style.linkColor );\n\n\t\treturn customColor && customColor.isValid()\n\t\t\t? customColor.toHex()\n\t\t\t: defaultColor;\n\t}\n\n\tgetPlaceholderTextColor() {\n\t\tconst {\n\t\t\tbaseGlobalStyles,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tplaceholderTextColor,\n\t\t\tstyle,\n\t\t} = this.props;\n\n\t\t// Default placeholder text color.\n\t\tconst placeholderStyle = getStylesFromColorScheme(\n\t\t\tstyles.richTextPlaceholder,\n\t\t\tstyles.richTextPlaceholderDark\n\t\t);\n\t\tconst { color: defaultPlaceholderTextColor } = placeholderStyle;\n\t\t// Custom 63% opacity for theme and inherited colors.\n\t\tconst placeholderOpacity = 'A1';\n\n\t\t// Determine inherited placeholder color if available.\n\t\tconst inheritPlaceholderColor = style?.placeholderColor\n\t\t\t? `${ style.placeholderColor }${ placeholderOpacity }`\n\t\t\t: undefined;\n\n\t\t// If using block-based themes, derive the placeholder color from global styles.\n\t\tconst globalStylesPlaceholderColor = baseGlobalStyles?.color?.text\n\t\t\t? `${ baseGlobalStyles.color.text }${ placeholderOpacity }`\n\t\t\t: undefined;\n\n\t\treturn (\n\t\t\tinheritPlaceholderColor ??\n\t\t\tplaceholderTextColor ??\n\t\t\tglobalStylesPlaceholderColor ??\n\t\t\tdefaultPlaceholderTextColor\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\ttagName,\n\t\t\tstyle,\n\t\t\t__unstableIsSelected: isSelected,\n\t\t\tchildren,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tminWidth,\n\t\t\tmaxWidth,\n\t\t\tformatTypes,\n\t\t\tparentBlockStyles,\n\t\t\taccessibilityLabel,\n\t\t\tdisableEditingMenu = false,\n\t\t\tbaseGlobalStyles,\n\t\t\tselectionStart,\n\t\t\tselectionEnd,\n\t\t\tdisableSuggestions,\n\t\t\tcontainerWidth,\n\t\t} = this.props;\n\t\tconst { currentFontSize } = this.state;\n\n\t\tconst record = this.getRecord();\n\t\tconst html = this.getHtmlToRender( record, tagName );\n\t\tconst editableProps = this.getEditableProps();\n\t\tconst blockUseDefaultFont = this.getBlockUseDefaultFont();\n\n\t\tconst fontSize = currentFontSize;\n\t\tconst lineHeight = this.getLineHeight();\n\n\t\tconst {\n\t\t\tcolor: defaultColor,\n\t\t\ttextDecorationColor: defaultTextDecorationColor,\n\t\t\tfontFamily: defaultFontFamily,\n\t\t} = getStylesFromColorScheme( styles.richText, styles.richTextDark );\n\t\tconst linkTextColor = this.getLinkTextColor(\n\t\t\tdefaultTextDecorationColor\n\t\t);\n\n\t\tconst currentSelectionStart = selectionStart ?? 0;\n\t\tconst currentSelectionEnd = selectionEnd ?? 0;\n\t\tlet selection = null;\n\t\tif ( this.needsSelectionUpdate ) {\n\t\t\tthis.needsSelectionUpdate = false;\n\t\t\tselection = {\n\t\t\t\tstart: currentSelectionStart,\n\t\t\t\tend: currentSelectionEnd,\n\t\t\t};\n\n\t\t\t// On AztecAndroid, setting the caret to an out-of-bounds position will crash the editor so, let's check for some cases.\n\t\t\tif ( ! this.isIOS ) {\n\t\t\t\t// The following regular expression is used in Aztec here:\n\t\t\t\t// https://github.com/wordpress-mobile/AztecEditor-Android/blob/b1fad439d56fa6d4aa0b78526fef355c59d00dd3/aztec/src/main/kotlin/org/wordpress/aztec/AztecParser.kt#L656\n\t\t\t\tconst brBeforeParaMatches = html.match( /(<br>)+<\\/p>$/g );\n\t\t\t\tif ( brBeforeParaMatches ) {\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t'Oops, BR tag(s) at the end of content. Aztec will remove them, adapting the selection...'\n\t\t\t\t\t);\n\t\t\t\t\tconst count = (\n\t\t\t\t\t\tbrBeforeParaMatches[ 0 ].match( /br/g ) || []\n\t\t\t\t\t).length;\n\t\t\t\t\tif ( count > 0 ) {\n\t\t\t\t\t\tlet newSelectionStart = currentSelectionStart - count;\n\t\t\t\t\t\tif ( newSelectionStart < 0 ) {\n\t\t\t\t\t\t\tnewSelectionStart = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlet newSelectionEnd = currentSelectionEnd - count;\n\t\t\t\t\t\tif ( newSelectionEnd < 0 ) {\n\t\t\t\t\t\t\tnewSelectionEnd = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tselection = {\n\t\t\t\t\t\t\tstart: newSelectionStart,\n\t\t\t\t\t\t\tend: newSelectionEnd,\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\n\t\tif ( this.comesFromAztec ) {\n\t\t\tthis.comesFromAztec = false;\n\t\t\tthis.firedAfterTextChanged = false;\n\t\t}\n\n\t\t// Logic below assures that `RichText` width will always have equal value when container is almost fully filled.\n\t\tconst width =\n\t\t\tmaxWidth && this.state.width && maxWidth - this.state.width < 10\n\t\t\t\t? maxWidth\n\t\t\t\t: this.state.width;\n\t\tconst containerStyles = [\n\t\t\tstyle?.padding &&\n\t\t\t\tstyle?.backgroundColor && {\n\t\t\t\t\tpadding: style.padding,\n\t\t\t\t\tbackgroundColor: style.backgroundColor,\n\t\t\t\t},\n\t\t\tcontainerWidth && {\n\t\t\t\twidth: containerWidth,\n\t\t\t},\n\t\t];\n\n\t\tconst defaultSelectionColor = getStylesFromColorScheme(\n\t\t\tstyles[ 'rich-text-selection' ],\n\t\t\tstyles[ 'rich-text-selection--dark' ]\n\t\t).color;\n\t\tconst selectionColor = getSelectionColor(\n\t\t\tthis.props.selectionColor,\n\t\t\tdefaultSelectionColor,\n\t\t\tbaseGlobalStyles,\n\t\t\tthis.getIsBlockBasedTheme()\n\t\t);\n\n\t\tconst EditableView = ( props ) => {\n\t\t\tthis.customEditableOnKeyDown = props?.onKeyDown;\n\n\t\t\treturn <></>;\n\t\t};\n\n\t\treturn (\n\t\t\t<View style={ containerStyles }>\n\t\t\t\t{ children &&\n\t\t\t\t\tchildren( {\n\t\t\t\t\t\tisSelected,\n\t\t\t\t\t\tvalue: record,\n\t\t\t\t\t\tonChange: this.onFormatChange,\n\t\t\t\t\t\tonFocus: () => {},\n\t\t\t\t\t\teditableProps,\n\t\t\t\t\t\teditableTagName: EditableView,\n\t\t\t\t\t} ) }\n\t\t\t\t<RCTAztecView\n\t\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t\t\tref={ ( ref ) => {\n\t\t\t\t\t\tthis._editor = ref;\n\n\t\t\t\t\t\tif ( this.props.nativeEditorRef ) {\n\t\t\t\t\t\t\tthis.props.nativeEditorRef( ref );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tbackgroundColor: styles.richText.backgroundColor,\n\t\t\t\t\t\t...style,\n\t\t\t\t\t\t...( this.isIOS && minWidth && maxWidth\n\t\t\t\t\t\t\t? { width }\n\t\t\t\t\t\t\t: { maxWidth } ),\n\t\t\t\t\t\tminHeight: this.state.height,\n\t\t\t\t\t} }\n\t\t\t\t\tblockUseDefaultFont={ blockUseDefaultFont }\n\t\t\t\t\ttext={ {\n\t\t\t\t\t\ttext: html,\n\t\t\t\t\t\teventCount: this.lastEventCount,\n\t\t\t\t\t\tselection,\n\t\t\t\t\t\tlinkTextColor,\n\t\t\t\t\t\ttag: tagName,\n\t\t\t\t\t} }\n\t\t\t\t\tplaceholder={ this.props.placeholder }\n\t\t\t\t\tplaceholderTextColor={ this.getPlaceholderTextColor() }\n\t\t\t\t\tdeleteEnter={ this.props.deleteEnter }\n\t\t\t\t\tonChange={ this.onChangeFromAztec }\n\t\t\t\t\tonFocus={ this.onFocus }\n\t\t\t\t\tonBlur={ this.onBlur }\n\t\t\t\t\tonKeyDown={ this.onKeyDown }\n\t\t\t\t\ttriggerKeyCodes={\n\t\t\t\t\t\tdisableEditingMenu\n\t\t\t\t\t\t\t? []\n\t\t\t\t\t\t\t: this.suggestionOptions().map(\n\t\t\t\t\t\t\t\t\t( op ) => op.triggerChar\n\t\t\t\t\t\t\t )\n\t\t\t\t\t}\n\t\t\t\t\tonPaste={ this.onPaste }\n\t\t\t\t\tactiveFormats={ this.getActiveFormatNames( record ) }\n\t\t\t\t\tonContentSizeChange={ this.onContentSizeChange }\n\t\t\t\t\tonSelectionChange={ this.onSelectionChangeFromAztec }\n\t\t\t\t\tblockType={ { tag: tagName } }\n\t\t\t\t\tcolor={\n\t\t\t\t\t\t( style && style.color ) ||\n\t\t\t\t\t\t( parentBlockStyles && parentBlockStyles.color ) ||\n\t\t\t\t\t\t( baseGlobalStyles && baseGlobalStyles?.color?.text ) ||\n\t\t\t\t\t\tdefaultColor\n\t\t\t\t\t}\n\t\t\t\t\tmaxImagesWidth={ 200 }\n\t\t\t\t\tfontFamily={ this.props.fontFamily || defaultFontFamily }\n\t\t\t\t\tfontSize={ fontSize }\n\t\t\t\t\tlineHeight={ lineHeight }\n\t\t\t\t\tfontWeight={ this.props.fontWeight }\n\t\t\t\t\tfontStyle={ this.props.fontStyle }\n\t\t\t\t\tdisableEditingMenu={ disableEditingMenu }\n\t\t\t\t\tisMultiline={ false }\n\t\t\t\t\ttextAlign={ this.props.textAlign }\n\t\t\t\t\t{ ...( this.isIOS ? { maxWidth } : {} ) }\n\t\t\t\t\tminWidth={ minWidth }\n\t\t\t\t\tid={ this.props.id }\n\t\t\t\t\tselectionColor={ selectionColor }\n\t\t\t\t\tdisableAutocorrection={ this.props.disableAutocorrection }\n\t\t\t\t/>\n\t\t\t\t{ isSelected && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<FormatEdit\n\t\t\t\t\t\t\tforwardedRef={ this._editor }\n\t\t\t\t\t\t\tformatTypes={ formatTypes }\n\t\t\t\t\t\t\tvalue={ record }\n\t\t\t\t\t\t\tonChange={ this.onFormatChange }\n\t\t\t\t\t\t\tonFocus={ () => {} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ ! disableSuggestions && (\n\t\t\t\t\t\t\t<BlockFormatControls>\n\t\t\t\t\t\t\t\t<ToolbarButtonWithOptions\n\t\t\t\t\t\t\t\t\toptions={ this.suggestionOptions() }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</BlockFormatControls>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</View>\n\t\t);\n\t}\n}\n\nRichText.defaultProps = {\n\tformat: 'string',\n\tvalue: '',\n\ttagName: 'div',\n};\n\nconst withFormatTypes = ( WrappedComponent ) => ( props ) => {\n\tconst {\n\t\tclientId,\n\t\tidentifier,\n\t\twithoutInteractiveFormatting,\n\t\tallowedFormats,\n\t} = props;\n\tconst { formatTypes } = useFormatTypes( {\n\t\tclientId,\n\t\tidentifier,\n\t\twithoutInteractiveFormatting,\n\t\tallowedFormats,\n\t} );\n\n\treturn <WrappedComponent { ...props } formatTypes={ formatTypes } />;\n};\n\nexport default compose( [\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst { getBlockParents, getBlock, getSettings } =\n\t\t\tselect( 'core/block-editor' );\n\t\tconst parents = getBlockParents( clientId, true );\n\t\tconst parentBlock = parents ? getBlock( parents[ 0 ] ) : undefined;\n\t\tconst parentBlockStyles = parentBlock?.attributes?.childrenStyles;\n\n\t\tconst settings = getSettings();\n\t\tconst baseGlobalStyles = settings?.__experimentalGlobalStylesBaseStyles;\n\n\t\tconst colorPalettes = settings?.__experimentalFeatures?.color?.palette;\n\t\tconst colorPalette = colorPalettes\n\t\t\t? flatColorPalettes( colorPalettes )\n\t\t\t: settings?.colors;\n\n\t\treturn {\n\t\t\tareMentionsSupported: settings?.capabilities?.mentions === true,\n\t\t\tareXPostsSupported: settings?.capabilities?.xposts === true,\n\t\t\tparentBlockStyles,\n\t\t\tbaseGlobalStyles,\n\t\t\tcolorPalette,\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n\twithFormatTypes,\n] )( RichText );\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_memize","_interopRequireDefault","_colord","_reactNativeAztec","_reactNativeBridge","_blockEditor","_components","_element","_compose","_data","_blocks","_htmlEntities","_keycodes","_url","_icons","_i18n","_richText","_useFormatTypes","_formatEdit","_getFormatColors","_style","_toolbarButtonWithOptions","flatColorPalettes","memize","colorsPalettes","theme","custom","default","getSelectionColor","currentSelectionColor","defaultSelectionColor","baseGlobalStyles","isBlockBasedTheme","selectionColor","colordTextColor","colord","colordBackgroundColor","color","background","isColordTextReadable","isReadable","text","gutenbergFormatNamesToAztec","EMPTY_PARAGRAPH_TAGS","DEFAULT_FONT_SIZE","MIN_LINE_HEIGHT","RichText","Component","constructor","value","selectionStart","selectionEnd","arguments","isIOS","Platform","OS","createRecord","bind","onChangeFromAztec","onKeyDown","handleEnter","handleDelete","onPaste","onFocus","onBlur","onTextUpdate","onContentSizeChange","onFormatChange","formatToValue","maxSize","debounceCreateUndoLevel","debounce","onCreateUndoLevel","onSelectionChange","onSelectionChangeFromAztec","valueToFormat","getHtmlToRender","handleSuggestionFunc","handleUserSuggestion","showUserSuggestions","handleXpostSuggestion","showXpostSuggestions","suggestionOptions","insertString","manipulateEventCounterToForceNativeToRefresh","shouldDropEventFromAztec","state","activeFormats","selectedFormat","height","currentFontSize","getFontSize","needsSelectionUpdate","savedContent","isTouched","lastAztecEventType","lastHistoryValue","getRecord","start","end","colorPalette","props","currentValue","formats","replacements","newFormats","getFormatColors","preserveWhiteSpace","create","html","range","Math","min","length","removeRootTagsProducedByAztec","toHTMLString","getActiveFormatNames","record","formatTypes","map","name","filter","getActiveFormat","undefined","Boolean","changeHandlers","Object","fromEntries","entries","key","startsWith","values","forEach","changeHandler","onChange","setState","string","toInsert","insert","__unstableOnCreateUndoLevel","toString","result","removeRootTag","tagName","tagsToEliminate","element","removeTag","tag","openingTagRegexp","RegExp","closingTagRegexp","replace","event","contentWithoutRootTag","nativeEvent","lastEventCount","eventCount","comesFromAztec","firedAfterTextChanged","refresh","contentSize","defaultPrevented","customEditableOnKeyDown","preventDefault","RCTAztecView","KeyCodes","keyCode","handleTriggerKeyCodes","ENTER","onEnter","shiftKey","DELETE","BACKSPACE","isReverse","onDelete","newValue","remove","isCollapsed","triggeredOption","find","option","triggeredKeyCode","triggerChar","charCodeAt","getTextContent","useTrigger","charAt","onClick","areMentionsSupported","areXPostsSupported","allOptions","supported","title","__","label","icon","atSymbol","plus","op","suggestionFunction","prefix","then","suggestion","catch","pastedText","pastedHtml","files","currentRecord","trimmedText","trim","isURL","linkedRecord","applyFormat","type","attributes","href","decodeEntities","window","console","log","plainText","unstableOnFocus","hasChanged","isManual","getActiveFormats","logText","shouldDrop","shouldFocusTextInputAfterMerge","prevProps","__unstableIsSelected","isSelected","blockIsSelected","__unstableMobileNoFocusOnMount","prevIsSelected","prevBlockIsSelected","noSelectionValues","textInputWasNotFocused","realStart","realEnd","max","isEmpty","Array","isArray","childrenBlock","toHTML","format","shouldComponentUpdate","nextProps","nextState","reversed","fontSize","style","lineHeight","componentDidMount","_editor","focus","componentDidUpdate","_this$value$toString$","lastCharacterPosition","blur","currentFontSizeStyle","getParsedFontSize","prevFontSizeStyle","isDifferentTag","componentWillUnmount","clearCurrentSelectionOnUnmount","isFocused","extraAttributes","getEditableProps","className","_getPxFromCssUnit","width","Dimensions","get","cssUnitOptions","selectedPxValue","getPxFromCssUnit","parseFloat","tagNameFontSize","elements","typography","newFontSize","getLineHeight","tagNameLineHeight","newLineHeight","getIsBlockBasedTheme","isNaN","getBlockUseDefaultFont","tagsToMatch","test","getLinkTextColor","defaultColor","customColor","linkColor","isValid","toHex","getPlaceholderTextColor","_ref","_ref2","getStylesFromColorScheme","placeholderTextColor","placeholderStyle","styles","richTextPlaceholder","richTextPlaceholderDark","defaultPlaceholderTextColor","placeholderOpacity","inheritPlaceholderColor","placeholderColor","globalStylesPlaceholderColor","render","children","minWidth","maxWidth","parentBlockStyles","accessibilityLabel","disableEditingMenu","disableSuggestions","containerWidth","editableProps","blockUseDefaultFont","textDecorationColor","defaultTextDecorationColor","fontFamily","defaultFontFamily","richText","richTextDark","linkTextColor","currentSelectionStart","currentSelectionEnd","selection","brBeforeParaMatches","match","warn","count","newSelectionStart","newSelectionEnd","containerStyles","padding","backgroundColor","EditableView","_react","createElement","Fragment","View","editableTagName","ref","nativeEditorRef","minHeight","placeholder","deleteEnter","triggerKeyCodes","blockType","maxImagesWidth","fontWeight","fontStyle","isMultiline","textAlign","id","disableAutocorrection","forwardedRef","BlockFormatControls","options","exports","defaultProps","withFormatTypes","WrappedComponent","clientId","identifier","withoutInteractiveFormatting","allowedFormats","useFormatTypes","_default","compose","withSelect","select","getBlockParents","getBlock","getSettings","parents","parentBlock","childrenStyles","settings","__experimentalGlobalStylesBaseStyles","colorPalettes","__experimentalFeatures","palette","colors","capabilities","mentions","xposts","withPreferredColorScheme"],"sources":["@wordpress/block-editor/src/components/rich-text/native/index.native.js"],"sourcesContent":["/* eslint no-console: [\"error\", { allow: [\"warn\"] }] */\n\n/**\n * External dependencies\n */\nimport { View, Platform, Dimensions } from 'react-native';\nimport memize from 'memize';\nimport { colord } from 'colord';\n\n/**\n * WordPress dependencies\n */\nimport RCTAztecView from '@wordpress/react-native-aztec';\nimport {\n\tshowUserSuggestions,\n\tshowXpostSuggestions,\n} from '@wordpress/react-native-bridge';\nimport { BlockFormatControls } from '@wordpress/block-editor';\nimport { getPxFromCssUnit } from '@wordpress/components';\nimport { Component } from '@wordpress/element';\nimport {\n\tcompose,\n\tdebounce,\n\twithPreferredColorScheme,\n} from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\nimport { childrenBlock } from '@wordpress/blocks';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { BACKSPACE, DELETE, ENTER } from '@wordpress/keycodes';\nimport { isURL } from '@wordpress/url';\nimport { atSymbol, plus } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tapplyFormat,\n\tgetActiveFormat,\n\tgetActiveFormats,\n\tinsert,\n\tgetTextContent,\n\tisEmpty,\n\tcreate,\n\ttoHTMLString,\n\tisCollapsed,\n\tremove,\n} from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport { useFormatTypes } from './use-format-types';\nimport FormatEdit from './format-edit';\nimport { getFormatColors } from './get-format-colors';\nimport styles from './style.scss';\nimport ToolbarButtonWithOptions from './toolbar-button-with-options';\n\n// The flattened color palettes array is memoized to ensure that the same array instance is\n// returned for the colors palettes. This value might be used as a prop, so having the same\n// instance will prevent unnecessary re-renders of the RichText component.\nconst flatColorPalettes = memize( ( colorsPalettes ) => [\n\t...( colorsPalettes?.theme || [] ),\n\t...( colorsPalettes?.custom || [] ),\n\t...( colorsPalettes?.default || [] ),\n] );\n\nconst getSelectionColor = memize(\n\t(\n\t\tcurrentSelectionColor,\n\t\tdefaultSelectionColor,\n\t\tbaseGlobalStyles,\n\t\tisBlockBasedTheme\n\t) => {\n\t\tlet selectionColor = defaultSelectionColor;\n\t\tif ( currentSelectionColor ) {\n\t\t\tselectionColor = currentSelectionColor;\n\t\t}\n\n\t\tif ( isBlockBasedTheme ) {\n\t\t\tconst colordTextColor = colord( selectionColor );\n\t\t\tconst colordBackgroundColor = colord(\n\t\t\t\tbaseGlobalStyles?.color?.background\n\t\t\t);\n\t\t\tconst isColordTextReadable = colordTextColor.isReadable(\n\t\t\t\tcolordBackgroundColor\n\t\t\t);\n\t\t\tif ( ! isColordTextReadable ) {\n\t\t\t\tselectionColor = baseGlobalStyles?.color?.text;\n\t\t\t}\n\t\t}\n\n\t\treturn selectionColor;\n\t}\n);\n\nconst gutenbergFormatNamesToAztec = {\n\t'core/bold': 'bold',\n\t'core/italic': 'italic',\n\t'core/strikethrough': 'strikethrough',\n\t'core/text-color': 'mark',\n};\n\nconst EMPTY_PARAGRAPH_TAGS = '<p></p>';\nconst DEFAULT_FONT_SIZE = 16;\nconst MIN_LINE_HEIGHT = 1;\n\nexport class RichText extends Component {\n\tconstructor( { value, selectionStart, selectionEnd } ) {\n\t\tsuper( ...arguments );\n\n\t\tthis.isIOS = Platform.OS === 'ios';\n\t\tthis.createRecord = this.createRecord.bind( this );\n\t\tthis.onChangeFromAztec = this.onChangeFromAztec.bind( this );\n\t\tthis.onKeyDown = this.onKeyDown.bind( this );\n\t\tthis.handleEnter = this.handleEnter.bind( this );\n\t\tthis.handleDelete = this.handleDelete.bind( this );\n\t\tthis.onPaste = this.onPaste.bind( this );\n\t\tthis.onFocus = this.onFocus.bind( this );\n\t\tthis.onBlur = this.onBlur.bind( this );\n\t\tthis.onTextUpdate = this.onTextUpdate.bind( this );\n\t\tthis.onContentSizeChange = this.onContentSizeChange.bind( this );\n\t\tthis.onFormatChange = this.onFormatChange.bind( this );\n\t\tthis.formatToValue = memize( this.formatToValue.bind( this ), {\n\t\t\tmaxSize: 1,\n\t\t} );\n\t\tthis.debounceCreateUndoLevel = debounce( this.onCreateUndoLevel, 1000 );\n\t\t// This prevents a bug in Aztec which triggers onSelectionChange twice on format change.\n\t\tthis.onSelectionChange = this.onSelectionChange.bind( this );\n\t\tthis.onSelectionChangeFromAztec =\n\t\t\tthis.onSelectionChangeFromAztec.bind( this );\n\t\tthis.valueToFormat = this.valueToFormat.bind( this );\n\t\tthis.getHtmlToRender = this.getHtmlToRender.bind( this );\n\t\tthis.handleSuggestionFunc = this.handleSuggestionFunc.bind( this );\n\t\tthis.handleUserSuggestion = this.handleSuggestionFunc(\n\t\t\tshowUserSuggestions,\n\t\t\t'@'\n\t\t).bind( this );\n\t\tthis.handleXpostSuggestion = this.handleSuggestionFunc(\n\t\t\tshowXpostSuggestions,\n\t\t\t'+'\n\t\t).bind( this );\n\t\tthis.suggestionOptions = this.suggestionOptions.bind( this );\n\t\tthis.insertString = this.insertString.bind( this );\n\t\tthis.manipulateEventCounterToForceNativeToRefresh =\n\t\t\tthis.manipulateEventCounterToForceNativeToRefresh.bind( this );\n\t\tthis.shouldDropEventFromAztec =\n\t\t\tthis.shouldDropEventFromAztec.bind( this );\n\t\tthis.state = {\n\t\t\tactiveFormats: [],\n\t\t\tselectedFormat: null,\n\t\t\theight: 0,\n\t\t\tcurrentFontSize: this.getFontSize( arguments[ 0 ] ),\n\t\t};\n\t\tthis.needsSelectionUpdate = false;\n\t\tthis.savedContent = '';\n\t\tthis.isTouched = false;\n\t\tthis.lastAztecEventType = null;\n\n\t\tthis.lastHistoryValue = value;\n\n\t\t// Internal values that are update synchronously, unlike props.\n\t\tthis.value = value;\n\t\tthis.selectionStart = selectionStart;\n\t\tthis.selectionEnd = selectionEnd;\n\t}\n\n\t/**\n\t * Get the current record (value and selection) from props and state.\n\t *\n\t * @return {Object} The current record (value and selection).\n\t */\n\tgetRecord() {\n\t\tconst {\n\t\t\tselectionStart: start,\n\t\t\tselectionEnd: end,\n\t\t\tcolorPalette,\n\t\t} = this.props;\n\t\tconst { value } = this.props;\n\t\tconst currentValue = this.formatToValue( value );\n\n\t\tconst { formats, replacements, text } = currentValue;\n\t\tconst { activeFormats } = this.state;\n\t\tconst newFormats = getFormatColors( formats, colorPalette );\n\n\t\treturn {\n\t\t\tformats: newFormats,\n\t\t\treplacements,\n\t\t\ttext,\n\t\t\tstart,\n\t\t\tend,\n\t\t\tactiveFormats,\n\t\t};\n\t}\n\n\t/**\n\t * Creates a RichText value \"record\" from the current content and selection\n\t * information\n\t *\n\t *\n\t * @return {Object} A RichText value with formats and selection.\n\t */\n\tcreateRecord() {\n\t\tconst { preserveWhiteSpace } = this.props;\n\t\tconst value = {\n\t\t\tstart: this.selectionStart,\n\t\t\tend: this.selectionEnd,\n\t\t\t...create( {\n\t\t\t\thtml: this.value,\n\t\t\t\trange: null,\n\t\t\t\tpreserveWhiteSpace,\n\t\t\t} ),\n\t\t};\n\t\tconst start = Math.min( this.selectionStart, value.text.length );\n\t\tconst end = Math.min( this.selectionEnd, value.text.length );\n\t\treturn { ...value, start, end };\n\t}\n\n\tvalueToFormat( value ) {\n\t\t// Remove the outer root tags.\n\t\treturn this.removeRootTagsProducedByAztec( toHTMLString( { value } ) );\n\t}\n\n\tgetActiveFormatNames( record ) {\n\t\tconst { formatTypes } = this.props;\n\n\t\treturn formatTypes\n\t\t\t.map( ( { name } ) => name )\n\t\t\t.filter( ( name ) => {\n\t\t\t\treturn getActiveFormat( record, name ) !== undefined;\n\t\t\t} )\n\t\t\t.map( ( name ) => gutenbergFormatNamesToAztec[ name ] )\n\t\t\t.filter( Boolean );\n\t}\n\n\tonFormatChange( record ) {\n\t\tconst { start = 0, end = 0, activeFormats = [] } = record;\n\t\tconst changeHandlers = Object.fromEntries(\n\t\t\tObject.entries( this.props ).filter( ( [ key ] ) =>\n\t\t\t\tkey.startsWith( 'format_on_change_functions_' )\n\t\t\t)\n\t\t);\n\n\t\tObject.values( changeHandlers ).forEach( ( changeHandler ) => {\n\t\t\tchangeHandler( record.formats, record.text );\n\t\t} );\n\n\t\tthis.value = this.valueToFormat( record );\n\t\tthis.props.onChange( this.value );\n\t\tthis.setState( { activeFormats } );\n\t\tthis.props.onSelectionChange( start, end );\n\t\tthis.selectionStart = start;\n\t\tthis.selectionEnd = end;\n\n\t\tthis.onCreateUndoLevel();\n\n\t\tthis.lastAztecEventType = 'format change';\n\t}\n\n\tinsertString( record, string ) {\n\t\tif ( record && string ) {\n\t\t\tthis.manipulateEventCounterToForceNativeToRefresh(); // force a refresh on the native side\n\t\t\tconst toInsert = insert( record, string );\n\t\t\tthis.onFormatChange( toInsert );\n\t\t}\n\t}\n\n\tonCreateUndoLevel() {\n\t\tconst { __unstableOnCreateUndoLevel: onCreateUndoLevel } = this.props;\n\t\t// If the content is the same, no level needs to be created.\n\t\tif ( this.lastHistoryValue?.toString() === this.value?.toString() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tonCreateUndoLevel();\n\t\tthis.lastHistoryValue = this.value;\n\t}\n\n\t/*\n\t * Cleans up any root tags produced by aztec.\n\t * TODO: This should be removed on a later version when aztec doesn't return the top tag of the text being edited\n\t */\n\tremoveRootTagsProducedByAztec( html ) {\n\t\tlet result = this.removeRootTag( this.props.tagName, html );\n\n\t\tif ( this.props.tagsToEliminate ) {\n\t\t\tthis.props.tagsToEliminate.forEach( ( element ) => {\n\t\t\t\tresult = this.removeTag( element, result );\n\t\t\t} );\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tremoveRootTag( tag, html ) {\n\t\tconst openingTagRegexp = RegExp( '^<' + tag + '[^>]*>', 'gim' );\n\t\tconst closingTagRegexp = RegExp( '</' + tag + '>$', 'gim' );\n\n\t\treturn html\n\t\t\t.replace( openingTagRegexp, '' )\n\t\t\t.replace( closingTagRegexp, '' );\n\t}\n\n\tremoveTag( tag, html ) {\n\t\tconst openingTagRegexp = RegExp( '<' + tag + '>', 'gim' );\n\t\tconst closingTagRegexp = RegExp( '</' + tag + '>', 'gim' );\n\t\treturn html\n\t\t\t.replace( openingTagRegexp, '' )\n\t\t\t.replace( closingTagRegexp, '' );\n\t}\n\n\t/*\n\t * Handles any case where the content of the AztecRN instance has changed\n\t */\n\tonChangeFromAztec( event ) {\n\t\tif ( this.shouldDropEventFromAztec( event, 'onChange' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst contentWithoutRootTag = this.removeRootTagsProducedByAztec(\n\t\t\tevent.nativeEvent.text\n\t\t);\n\t\t// On iOS, onChange can be triggered after selection changes, even though there are no content changes.\n\t\tif ( contentWithoutRootTag === this.value?.toString() ) {\n\t\t\treturn;\n\t\t}\n\t\tthis.lastEventCount = event.nativeEvent.eventCount;\n\t\tthis.comesFromAztec = true;\n\t\tthis.firedAfterTextChanged = true; // The onChange event always fires after the fact.\n\t\tthis.onTextUpdate( event );\n\t\tthis.lastAztecEventType = 'input';\n\t}\n\n\tonTextUpdate( event ) {\n\t\tconst contentWithoutRootTag = this.removeRootTagsProducedByAztec(\n\t\t\tevent.nativeEvent.text\n\t\t);\n\n\t\tthis.debounceCreateUndoLevel();\n\t\tconst refresh = this.value?.toString() !== contentWithoutRootTag;\n\t\tthis.value = contentWithoutRootTag;\n\n\t\t// We don't want to refresh if our goal is just to create a record.\n\t\tif ( refresh ) {\n\t\t\tthis.props.onChange( contentWithoutRootTag );\n\t\t}\n\t}\n\n\t/*\n\t * Handles any case where the content of the AztecRN instance has changed in size\n\t */\n\tonContentSizeChange( contentSize ) {\n\t\tthis.setState( contentSize );\n\t\tthis.lastAztecEventType = 'content size change';\n\t}\n\n\tonKeyDown( event ) {\n\t\tif ( event.defaultPrevented ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Add stubs for conformance in downstream autocompleters logic.\n\t\tthis.customEditableOnKeyDown?.( {\n\t\t\tpreventDefault: () => undefined,\n\t\t\t...event,\n\t\t\tkey: RCTAztecView.KeyCodes[ event?.keyCode ],\n\t\t} );\n\n\t\tthis.handleDelete( event );\n\t\tthis.handleEnter( event );\n\t\tthis.handleTriggerKeyCodes( event );\n\t}\n\n\thandleEnter( event ) {\n\t\tif ( event.keyCode !== ENTER ) {\n\t\t\treturn;\n\t\t}\n\t\tconst { onEnter } = this.props;\n\n\t\tif ( ! onEnter ) {\n\t\t\treturn;\n\t\t}\n\n\t\tonEnter( {\n\t\t\tvalue: this.createRecord(),\n\t\t\tonChange: this.onFormatChange,\n\t\t\tshiftKey: event.shiftKey,\n\t\t} );\n\t\tthis.lastAztecEventType = 'input';\n\t}\n\n\thandleDelete( event ) {\n\t\tif ( this.shouldDropEventFromAztec( event, 'handleDelete' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { keyCode } = event;\n\n\t\tif ( keyCode !== DELETE && keyCode !== BACKSPACE ) {\n\t\t\treturn;\n\t\t}\n\t\tconst isReverse = keyCode === BACKSPACE;\n\n\t\tconst { onDelete } = this.props;\n\t\tthis.lastEventCount = event.nativeEvent.eventCount;\n\t\tthis.comesFromAztec = true;\n\t\tthis.firedAfterTextChanged = event.nativeEvent.firedAfterTextChanged;\n\t\tconst value = this.createRecord();\n\t\tconst { start, end, text } = value;\n\t\tlet newValue;\n\n\t\t// Always handle full content deletion ourselves.\n\t\tif ( start === 0 && end !== 0 && end >= text.length ) {\n\t\t\tnewValue = remove( value );\n\t\t\tthis.onFormatChange( newValue );\n\t\t\tevent.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\t// Only process delete if the key press occurs at an uncollapsed edge.\n\t\tif (\n\t\t\t! onDelete ||\n\t\t\t! isCollapsed( value ) ||\n\t\t\t( isReverse && start !== 0 ) ||\n\t\t\t( ! isReverse && end !== text.length )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tonDelete( { isReverse, value } );\n\n\t\tevent.preventDefault();\n\t\tthis.lastAztecEventType = 'input';\n\t}\n\n\thandleTriggerKeyCodes( event ) {\n\t\tconst { keyCode } = event;\n\t\tconst triggeredOption = this.suggestionOptions().find( ( option ) => {\n\t\t\tconst triggeredKeyCode = option.triggerChar.charCodeAt( 0 );\n\t\t\treturn triggeredKeyCode === keyCode;\n\t\t} );\n\n\t\tif ( triggeredOption ) {\n\t\t\tconst record = this.getRecord();\n\t\t\tconst text = getTextContent( record );\n\t\t\t// Only respond to the trigger if the selection is on the start of text or line\n\t\t\t// or if the character before is a space.\n\t\t\tconst useTrigger =\n\t\t\t\ttext.length === 0 ||\n\t\t\t\trecord.start === 0 ||\n\t\t\t\ttext.charAt( record.start - 1 ) === '\\n' ||\n\t\t\t\ttext.charAt( record.start - 1 ) === ' ';\n\n\t\t\tif ( useTrigger && triggeredOption.onClick ) {\n\t\t\t\ttriggeredOption.onClick();\n\t\t\t} else {\n\t\t\t\tthis.insertString( record, triggeredOption.triggerChar );\n\t\t\t}\n\t\t}\n\t}\n\n\tsuggestionOptions() {\n\t\tconst { areMentionsSupported, areXPostsSupported } = this.props;\n\t\tconst allOptions = [\n\t\t\t{\n\t\t\t\tsupported: areMentionsSupported,\n\t\t\t\ttitle: __( 'Insert mention' ),\n\t\t\t\tonClick: this.handleUserSuggestion,\n\t\t\t\ttriggerChar: '@',\n\t\t\t\tvalue: 'mention',\n\t\t\t\tlabel: __( 'Mention' ),\n\t\t\t\ticon: atSymbol,\n\t\t\t},\n\t\t\t{\n\t\t\t\tsupported: areXPostsSupported,\n\t\t\t\ttitle: __( 'Insert crosspost' ),\n\t\t\t\tonClick: this.handleXpostSuggestion,\n\t\t\t\ttriggerChar: '+',\n\t\t\t\tvalue: 'crosspost',\n\t\t\t\tlabel: __( 'Crosspost' ),\n\t\t\t\ticon: plus,\n\t\t\t},\n\t\t];\n\t\treturn allOptions.filter( ( op ) => op.supported );\n\t}\n\n\thandleSuggestionFunc( suggestionFunction, prefix ) {\n\t\treturn () => {\n\t\t\tconst record = this.getRecord();\n\t\t\tsuggestionFunction()\n\t\t\t\t.then( ( suggestion ) => {\n\t\t\t\t\tthis.insertString( record, `${ prefix }${ suggestion } ` );\n\t\t\t\t} )\n\t\t\t\t.catch( () => {} );\n\t\t};\n\t}\n\n\t/**\n\t * Handles a paste event from the native Aztec Wrapper.\n\t *\n\t * @param {Object} event The paste event which wraps `nativeEvent`.\n\t */\n\tonPaste( event ) {\n\t\tconst { onPaste, onChange } = this.props;\n\t\tconst { activeFormats = [] } = this.state;\n\n\t\tconst { pastedText, pastedHtml, files } = event.nativeEvent;\n\t\tconst currentRecord = this.createRecord();\n\n\t\tevent.preventDefault();\n\n\t\t// There is a selection, check if a URL is pasted.\n\t\tif ( ! isCollapsed( currentRecord ) ) {\n\t\t\tconst trimmedText = ( pastedHtml || pastedText )\n\t\t\t\t.replace( /<[^>]+>/g, '' )\n\t\t\t\t.trim();\n\n\t\t\t// A URL was pasted, turn the selection into a link.\n\t\t\tif ( isURL( trimmedText ) ) {\n\t\t\t\tconst linkedRecord = applyFormat( currentRecord, {\n\t\t\t\t\ttype: 'a',\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\thref: decodeEntities( trimmedText ),\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t\tthis.value = this.valueToFormat( linkedRecord );\n\t\t\t\tonChange( this.value );\n\n\t\t\t\t// Allows us to ask for this information when we get a report.\n\t\t\t\twindow.console.log( 'Created link:\\n\\n', trimmedText );\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif ( onPaste ) {\n\t\t\tonPaste( {\n\t\t\t\tvalue: currentRecord,\n\t\t\t\tonChange: this.onFormatChange,\n\t\t\t\thtml: pastedHtml,\n\t\t\t\tplainText: pastedText,\n\t\t\t\tfiles,\n\t\t\t\tactiveFormats,\n\t\t\t} );\n\t\t}\n\t}\n\n\tonFocus() {\n\t\tthis.isTouched = true;\n\n\t\tconst { unstableOnFocus, onSelectionChange } = this.props;\n\n\t\tif ( unstableOnFocus ) {\n\t\t\tunstableOnFocus();\n\t\t}\n\n\t\t// We know for certain that on focus, the old selection is invalid. It\n\t\t// will be recalculated on `selectionchange`.\n\n\t\tonSelectionChange( this.selectionStart, this.selectionEnd );\n\n\t\tthis.lastAztecEventType = 'focus';\n\t}\n\n\tonBlur( event ) {\n\t\tthis.isTouched = false;\n\n\t\t// Check if value is up to date with latest state of native AztecView.\n\t\tif (\n\t\t\tevent.nativeEvent.text &&\n\t\t\tevent.nativeEvent.text !== this.props.value?.toString()\n\t\t) {\n\t\t\tthis.onTextUpdate( event );\n\t\t}\n\n\t\tif ( this.props.onBlur ) {\n\t\t\tthis.props.onBlur( event );\n\t\t}\n\n\t\tthis.lastAztecEventType = 'blur';\n\t}\n\n\tonSelectionChange( start, end ) {\n\t\tconst hasChanged =\n\t\t\tthis.selectionStart !== start || this.selectionEnd !== end;\n\n\t\tthis.selectionStart = start;\n\t\tthis.selectionEnd = end;\n\n\t\t// This is a manual selection change event if onChange was not triggered just before\n\t\t// and we did not just trigger a text update\n\t\t// `onChange` could be the last event and could have been triggered a long time ago so\n\t\t// this approach is not perfectly reliable.\n\t\tconst isManual =\n\t\t\tthis.lastAztecEventType !== 'input' &&\n\t\t\tthis.props.value?.toString() === this.value?.toString();\n\t\tif ( hasChanged && isManual ) {\n\t\t\tconst value = this.createRecord();\n\t\t\tconst activeFormats = getActiveFormats( value );\n\t\t\tthis.setState( { activeFormats } );\n\t\t}\n\n\t\tthis.props.onSelectionChange( start, end );\n\t}\n\n\tshouldDropEventFromAztec( event, logText ) {\n\t\tconst shouldDrop =\n\t\t\t! this.isIOS && event.nativeEvent.eventCount <= this.lastEventCount;\n\t\tif ( shouldDrop ) {\n\t\t\twindow.console.log(\n\t\t\t\t`Dropping ${ logText } from Aztec as its event counter is older than latest sent to the native side. Got ${ event.nativeEvent.eventCount } but lastEventCount is ${ this.lastEventCount }.`\n\t\t\t);\n\t\t}\n\t\treturn shouldDrop;\n\t}\n\n\t/**\n\t * Determines whether the text input should receive focus after an update.\n\t * For cases where a RichText with a value is merged with an empty one.\n\t *\n\t * @param {Object} prevProps - The previous props of the component.\n\t * @return {boolean} True if the text input should receive focus, false otherwise.\n\t */\n\tshouldFocusTextInputAfterMerge( prevProps ) {\n\t\tconst {\n\t\t\t__unstableIsSelected: isSelected,\n\t\t\tblockIsSelected,\n\t\t\tselectionStart,\n\t\t\tselectionEnd,\n\t\t\t__unstableMobileNoFocusOnMount,\n\t\t} = this.props;\n\n\t\tconst {\n\t\t\t__unstableIsSelected: prevIsSelected,\n\t\t\tblockIsSelected: prevBlockIsSelected,\n\t\t} = prevProps;\n\n\t\tconst noSelectionValues =\n\t\t\tselectionStart === undefined && selectionEnd === undefined;\n\t\tconst textInputWasNotFocused = ! prevIsSelected && ! isSelected;\n\n\t\treturn (\n\t\t\t! __unstableMobileNoFocusOnMount &&\n\t\t\tnoSelectionValues &&\n\t\t\ttextInputWasNotFocused &&\n\t\t\t! prevBlockIsSelected &&\n\t\t\tblockIsSelected\n\t\t);\n\t}\n\n\tonSelectionChangeFromAztec( start, end, text, event ) {\n\t\tif ( this.shouldDropEventFromAztec( event, 'onSelectionChange' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// `end` can be less than `start` on iOS\n\t\t// Let's fix that here so `rich-text/slice` can work properly.\n\t\tconst realStart = Math.min( start, end );\n\t\tconst realEnd = Math.max( start, end );\n\n\t\t// Check and dicsard stray event, where the text and selection is equal to the ones already cached.\n\t\tconst contentWithoutRootTag = this.removeRootTagsProducedByAztec(\n\t\t\tevent.nativeEvent.text\n\t\t);\n\t\tif (\n\t\t\tcontentWithoutRootTag === this.value?.toString() &&\n\t\t\trealStart === this.selectionStart &&\n\t\t\trealEnd === this.selectionEnd\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.comesFromAztec = true;\n\t\tthis.firedAfterTextChanged = true; // Selection change event always fires after the fact.\n\n\t\t// Update text before updating selection\n\t\t// Make sure there are changes made to the content before upgrading it upward.\n\t\tthis.onTextUpdate( event );\n\n\t\t// Aztec can send us selection change events after it has lost focus.\n\t\t// For instance the autocorrect feature will complete a partially written\n\t\t// word when resigning focus, causing a selection change event.\n\t\t// Forwarding this selection change could cause this RichText to regain\n\t\t// focus and start a focus loop.\n\t\t//\n\t\t// See https://github.com/wordpress-mobile/gutenberg-mobile/issues/1696\n\t\tif ( this.props.__unstableIsSelected ) {\n\t\t\tthis.onSelectionChange( realStart, realEnd );\n\t\t}\n\t\t// Update lastEventCount to prevent Aztec from re-rendering the content it just sent.\n\t\tthis.lastEventCount = event.nativeEvent.eventCount;\n\n\t\tthis.lastAztecEventType = 'selection change';\n\t}\n\n\tisEmpty() {\n\t\treturn isEmpty( this.formatToValue( this.props.value ) );\n\t}\n\n\tformatToValue( value ) {\n\t\tconst { preserveWhiteSpace } = this.props;\n\t\t// Handle deprecated `children` and `node` sources.\n\t\tif ( Array.isArray( value ) ) {\n\t\t\treturn create( {\n\t\t\t\thtml: childrenBlock.toHTML( value ),\n\t\t\t\tpreserveWhiteSpace,\n\t\t\t} );\n\t\t}\n\n\t\tif ( this.props.format === 'string' ) {\n\t\t\treturn create( {\n\t\t\t\thtml: value,\n\t\t\t\tpreserveWhiteSpace,\n\t\t\t} );\n\t\t}\n\n\t\t// Guard for blocks passing `null` in onSplit callbacks. May be removed\n\t\t// if onSplit is revised to not pass a `null` value.\n\t\tif ( value === null ) {\n\t\t\treturn create();\n\t\t}\n\n\t\treturn value;\n\t}\n\n\tmanipulateEventCounterToForceNativeToRefresh() {\n\t\tif ( this.isIOS ) {\n\t\t\tthis.lastEventCount = undefined;\n\t\t\treturn;\n\t\t}\n\n\t\tif ( typeof this.lastEventCount !== 'undefined' ) {\n\t\t\tthis.lastEventCount += 100; // bump by a hundred, hopefully native hasn't bombarded the JS side in the meantime.\n\t\t} // no need to bump when 'undefined' as native side won't receive the key when the value is undefined, and that will cause force updating anyway,\n\t\t// see https://github.com/WordPress/gutenberg/blob/82e578dcc75e67891c750a41a04c1e31994192fc/packages/react-native-aztec/android/src/main/java/org/wordpress/mobile/ReactNativeAztec/ReactAztecManager.java#L213-L215\n\t}\n\n\tshouldComponentUpdate( nextProps, nextState ) {\n\t\tif (\n\t\t\tnextProps.tagName !== this.props.tagName ||\n\t\t\tnextProps.reversed !== this.props.reversed ||\n\t\t\tnextProps.start !== this.props.start\n\t\t) {\n\t\t\tthis.manipulateEventCounterToForceNativeToRefresh(); // force a refresh on the native side\n\t\t\tthis.value = undefined;\n\t\t\treturn true;\n\t\t}\n\n\t\t// TODO: Please re-introduce the check to avoid updating the content right after an `onChange` call.\n\t\t// It was removed in https://github.com/WordPress/gutenberg/pull/12417 to fix undo/redo problem.\n\n\t\t// If the component is changed React side (undo/redo/merging/splitting/custom text actions)\n\t\t// we need to make sure the native is updated as well.\n\n\t\t// Also, don't trust the \"this.lastContent\" as on Android, incomplete text events arrive\n\t\t// with only some of the text, while the virtual keyboard's suggestion system does its magic.\n\t\t// ** compare with this.lastContent for optimizing performance by not forcing Aztec with text it already has\n\t\t// , but compare with props.value to not lose \"half word\" text because of Android virtual keyb autosuggestion behavior\n\t\tif (\n\t\t\ttypeof nextProps.value !== 'undefined' &&\n\t\t\ttypeof this.props.value !== 'undefined' &&\n\t\t\t( ! this.comesFromAztec || ! this.firedAfterTextChanged ) &&\n\t\t\tnextProps.value?.toString() !== this.props.value?.toString()\n\t\t) {\n\t\t\t// Gutenberg seems to try to mirror the caret state even on events that only change the content so,\n\t\t\t// let's force caret update if state has selection set.\n\t\t\tif (\n\t\t\t\ttypeof nextProps.selectionStart !== 'undefined' &&\n\t\t\t\ttypeof nextProps.selectionEnd !== 'undefined'\n\t\t\t) {\n\t\t\t\tthis.needsSelectionUpdate = true;\n\t\t\t}\n\n\t\t\tthis.manipulateEventCounterToForceNativeToRefresh(); // force a refresh on the native side\n\t\t}\n\n\t\tif ( ! this.comesFromAztec ) {\n\t\t\tif (\n\t\t\t\ttypeof nextProps.selectionStart !== 'undefined' &&\n\t\t\t\ttypeof nextProps.selectionEnd !== 'undefined' &&\n\t\t\t\tnextProps.selectionStart !== this.props.selectionStart &&\n\t\t\t\tnextProps.selectionStart !== this.selectionStart &&\n\t\t\t\tnextProps.__unstableIsSelected\n\t\t\t) {\n\t\t\t\tthis.needsSelectionUpdate = true;\n\t\t\t\tthis.manipulateEventCounterToForceNativeToRefresh(); // force a refresh on the native side\n\t\t\t}\n\n\t\t\t// For font size changes from a prop value a force refresh\n\t\t\t// is needed without the selection update.\n\t\t\tif ( nextProps?.fontSize !== this.props?.fontSize ) {\n\t\t\t\tthis.manipulateEventCounterToForceNativeToRefresh(); // force a refresh on the native side\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t( nextProps?.style?.fontSize !== this.props?.style?.fontSize &&\n\t\t\t\t\tnextState.currentFontSize !==\n\t\t\t\t\t\tthis.state.currentFontSize ) ||\n\t\t\t\tnextState.currentFontSize !== this.state.currentFontSize ||\n\t\t\t\tnextProps?.style?.lineHeight !== this.props?.style?.lineHeight\n\t\t\t) {\n\t\t\t\tthis.needsSelectionUpdate = true;\n\t\t\t\tthis.manipulateEventCounterToForceNativeToRefresh(); // force a refresh on the native side\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tcomponentDidMount() {\n\t\t// Request focus if wrapping block is selected and parent hasn't inhibited the focus request. This method of focusing\n\t\t// is trying to implement the web-side counterpart of BlockList's `focusTabbable` where the BlockList is focusing an\n\t\t// inputbox by searching the DOM. We don't have the DOM in RN so, using the combination of blockIsSelected and __unstableMobileNoFocusOnMount\n\t\t// to determine if we should focus the RichText.\n\t\tif (\n\t\t\tthis.props.blockIsSelected &&\n\t\t\t! this.props.__unstableMobileNoFocusOnMount\n\t\t) {\n\t\t\tthis._editor.focus();\n\t\t\tthis.onSelectionChange(\n\t\t\t\tthis.props.selectionStart || 0,\n\t\t\t\tthis.props.selectionEnd || 0\n\t\t\t);\n\t\t}\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tconst { style, tagName } = this.props;\n\t\tconst { currentFontSize } = this.state;\n\n\t\tif ( this.props.value?.toString() !== this.value?.toString() ) {\n\t\t\tthis.value = this.props.value;\n\t\t}\n\t\tconst { __unstableIsSelected: prevIsSelected } = prevProps;\n\t\tconst { __unstableIsSelected: isSelected } = this.props;\n\n\t\tif ( isSelected && ! prevIsSelected ) {\n\t\t\tthis._editor.focus();\n\t\t\t// Update selection props explicitly when component is selected as Aztec won't call onSelectionChange\n\t\t\t// if its internal value hasn't change. When created, default value is 0, 0.\n\t\t\tthis.onSelectionChange(\n\t\t\t\tthis.props.selectionStart || 0,\n\t\t\t\tthis.props.selectionEnd || 0\n\t\t\t);\n\t\t} else if ( this.shouldFocusTextInputAfterMerge( prevProps ) ) {\n\t\t\t// Since this is happening when merging blocks, the selection should be at the last character position.\n\t\t\t// As a fallback the internal selectionEnd value is used.\n\t\t\tconst lastCharacterPosition =\n\t\t\t\tthis.value?.toString().length ?? this.selectionEnd;\n\t\t\tthis._editor.focus();\n\t\t\tthis.props.onSelectionChange(\n\t\t\t\tlastCharacterPosition,\n\t\t\t\tlastCharacterPosition\n\t\t\t);\n\t\t} else if ( ! isSelected && prevIsSelected ) {\n\t\t\tthis._editor.blur();\n\t\t}\n\n\t\t// For font size values changes from the font size picker\n\t\t// we compare previous values to refresh the selected font size,\n\t\t// this is also used when the tag name changes\n\t\t// e.g Heading block and a level change like h1->h2.\n\t\tconst currentFontSizeStyle = this.getParsedFontSize( style?.fontSize );\n\t\tconst prevFontSizeStyle = this.getParsedFontSize(\n\t\t\tprevProps?.style?.fontSize\n\t\t);\n\t\tconst isDifferentTag = prevProps.tagName !== tagName;\n\t\tif (\n\t\t\t( currentFontSize &&\n\t\t\t\t( currentFontSizeStyle || prevFontSizeStyle ) &&\n\t\t\t\tcurrentFontSizeStyle !== currentFontSize ) ||\n\t\t\tisDifferentTag\n\t\t) {\n\t\t\tthis.setState( {\n\t\t\t\tcurrentFontSize: this.getFontSize( this.props ),\n\t\t\t} );\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tconst { clearCurrentSelectionOnUnmount } = this.props;\n\n\t\t// There are cases when the component is unmounted e.g. scrolling in a\n\t\t// long post due to virtualization, so the block selection needs to be cleared\n\t\t// so it doesn't auto-focus when it's added back.\n\t\tif ( this._editor?.isFocused() ) {\n\t\t\tclearCurrentSelectionOnUnmount?.();\n\t\t}\n\t}\n\n\tgetHtmlToRender( record, tagName ) {\n\t\t// Save back to HTML from React tree.\n\t\tlet value = this.valueToFormat( record );\n\n\t\tif ( value === undefined ) {\n\t\t\tthis.manipulateEventCounterToForceNativeToRefresh(); // force a refresh on the native side\n\t\t\tvalue = '';\n\t\t}\n\t\t// On android if content is empty we need to send no content or else the placeholder will not show.\n\t\tif (\n\t\t\t! this.isIOS &&\n\t\t\t( value?.toString() === '' ||\n\t\t\t\tvalue?.toString() === EMPTY_PARAGRAPH_TAGS )\n\t\t) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif ( tagName ) {\n\t\t\tlet extraAttributes = ``;\n\t\t\tif ( tagName === `ol` ) {\n\t\t\t\tif ( this.props.reversed ) {\n\t\t\t\t\textraAttributes += ` reversed`;\n\t\t\t\t}\n\t\t\t\tif ( this.props.start ) {\n\t\t\t\t\textraAttributes += ` start=${ this.props.start }`;\n\t\t\t\t}\n\t\t\t}\n\t\t\tvalue = `<${ tagName }${ extraAttributes }>${ value }</${ tagName }>`;\n\t\t}\n\t\treturn value;\n\t}\n\n\tgetEditableProps() {\n\t\treturn {\n\t\t\t// Overridable props.\n\t\t\tstyle: {},\n\t\t\tclassName: 'rich-text',\n\t\t\tonKeyDown: () => null,\n\t\t};\n\t}\n\n\tgetParsedFontSize( fontSize ) {\n\t\tconst { height, width } = Dimensions.get( 'window' );\n\t\tconst cssUnitOptions = { height, width, fontSize: DEFAULT_FONT_SIZE };\n\n\t\tif ( ! fontSize ) {\n\t\t\treturn fontSize;\n\t\t}\n\n\t\tconst selectedPxValue =\n\t\t\tgetPxFromCssUnit( fontSize, cssUnitOptions ) ?? DEFAULT_FONT_SIZE;\n\n\t\treturn parseFloat( selectedPxValue );\n\t}\n\n\tgetFontSize( props ) {\n\t\tconst { baseGlobalStyles, tagName, fontSize, style } = props;\n\t\tconst tagNameFontSize =\n\t\t\tbaseGlobalStyles?.elements?.[ tagName ]?.typography?.fontSize;\n\n\t\tlet newFontSize = DEFAULT_FONT_SIZE;\n\n\t\t// Disables line-height rendering for pre elements until we fix some issues with AztecAndroid.\n\t\tif ( tagName === 'pre' && ! this.isIOS ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// For block-based themes, get the default editor font size.\n\t\tif ( baseGlobalStyles?.typography?.fontSize && tagName === 'p' ) {\n\t\t\tnewFontSize = baseGlobalStyles?.typography?.fontSize;\n\t\t}\n\n\t\t// For block-based themes, get the default element font size\n\t\t// e.g h1, h2.\n\t\tif ( tagNameFontSize ) {\n\t\t\tnewFontSize = tagNameFontSize;\n\t\t}\n\n\t\t// For font size values provided from the styles,\n\t\t// usually from values set from the font size picker.\n\t\tif ( style?.fontSize ) {\n\t\t\tnewFontSize = style.fontSize;\n\t\t}\n\n\t\t// Fall-back to a font size provided from its props (if there's any)\n\t\t// and there are no other default values to use.\n\t\tif ( fontSize && ! tagNameFontSize && ! style?.fontSize ) {\n\t\t\tnewFontSize = fontSize;\n\t\t}\n\n\t\t// We need to always convert to px units because the selected value\n\t\t// could be coming from the web where it could be stored as a different unit.\n\t\tconst selectedPxValue = this.getParsedFontSize( newFontSize );\n\n\t\treturn selectedPxValue;\n\t}\n\n\tgetLineHeight() {\n\t\tconst { baseGlobalStyles, tagName, lineHeight, style } = this.props;\n\t\tconst tagNameLineHeight =\n\t\t\tbaseGlobalStyles?.elements?.[ tagName ]?.typography?.lineHeight;\n\t\tlet newLineHeight;\n\n\t\t// Disables line-height rendering for pre elements until we fix some issues with AztecAndroid.\n\t\tif ( tagName === 'pre' && ! this.isIOS ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif ( ! this.getIsBlockBasedTheme() ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// For block-based themes, get the default editor line height.\n\t\tif ( baseGlobalStyles?.typography?.lineHeight && tagName === 'p' ) {\n\t\t\tnewLineHeight = parseFloat(\n\t\t\t\tbaseGlobalStyles?.typography?.lineHeight\n\t\t\t);\n\t\t}\n\n\t\t// For block-based themes, get the default element line height\n\t\t// e.g h1, h2.\n\t\tif ( tagNameLineHeight ) {\n\t\t\tnewLineHeight = parseFloat( tagNameLineHeight );\n\t\t}\n\n\t\t// For line height values provided from the styles,\n\t\t// usually from values set from the line height picker.\n\t\tif ( style?.lineHeight ) {\n\t\t\tnewLineHeight = parseFloat( style.lineHeight );\n\t\t}\n\n\t\t// Fall-back to a line height provided from its props (if there's any)\n\t\t// and there are no other default values to use.\n\t\tif ( lineHeight && ! tagNameLineHeight && ! style?.lineHeight ) {\n\t\t\tnewLineHeight = lineHeight;\n\t\t}\n\n\t\t// Check the final value is not over the minimum supported value.\n\t\tif ( newLineHeight && newLineHeight < MIN_LINE_HEIGHT ) {\n\t\t\tnewLineHeight = MIN_LINE_HEIGHT;\n\t\t}\n\n\t\t// Until we parse CSS values correctly, avoid passing NaN values to Aztec\n\t\tif ( isNaN( newLineHeight ) ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn newLineHeight;\n\t}\n\n\tgetIsBlockBasedTheme() {\n\t\tconst { baseGlobalStyles } = this.props;\n\n\t\treturn (\n\t\t\tbaseGlobalStyles && Object.entries( baseGlobalStyles ).length !== 0\n\t\t);\n\t}\n\n\tgetBlockUseDefaultFont() {\n\t\t// For block-based themes it enables using the defaultFont\n\t\t// in Aztec for iOS so it allows customizing the font size\n\t\t// for the Preformatted/Code and Heading blocks.\n\t\tif ( ! this.isIOS ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { tagName } = this.props;\n\t\tconst isBlockBasedTheme = this.getIsBlockBasedTheme();\n\t\tconst tagsToMatch = /pre|h([1-6])$/gm;\n\n\t\treturn isBlockBasedTheme && tagsToMatch.test( tagName );\n\t}\n\n\tgetLinkTextColor( defaultColor ) {\n\t\tconst { style } = this.props;\n\t\tconst customColor = style?.linkColor && colord( style.linkColor );\n\n\t\treturn customColor && customColor.isValid()\n\t\t\t? customColor.toHex()\n\t\t\t: defaultColor;\n\t}\n\n\tgetPlaceholderTextColor() {\n\t\tconst {\n\t\t\tbaseGlobalStyles,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tplaceholderTextColor,\n\t\t\tstyle,\n\t\t} = this.props;\n\n\t\t// Default placeholder text color.\n\t\tconst placeholderStyle = getStylesFromColorScheme(\n\t\t\tstyles.richTextPlaceholder,\n\t\t\tstyles.richTextPlaceholderDark\n\t\t);\n\t\tconst { color: defaultPlaceholderTextColor } = placeholderStyle;\n\t\t// Custom 63% opacity for theme and inherited colors.\n\t\tconst placeholderOpacity = 'A1';\n\n\t\t// Determine inherited placeholder color if available.\n\t\tconst inheritPlaceholderColor = style?.placeholderColor\n\t\t\t? `${ style.placeholderColor }${ placeholderOpacity }`\n\t\t\t: undefined;\n\n\t\t// If using block-based themes, derive the placeholder color from global styles.\n\t\tconst globalStylesPlaceholderColor = baseGlobalStyles?.color?.text\n\t\t\t? `${ baseGlobalStyles.color.text }${ placeholderOpacity }`\n\t\t\t: undefined;\n\n\t\treturn (\n\t\t\tinheritPlaceholderColor ??\n\t\t\tplaceholderTextColor ??\n\t\t\tglobalStylesPlaceholderColor ??\n\t\t\tdefaultPlaceholderTextColor\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\ttagName,\n\t\t\tstyle,\n\t\t\t__unstableIsSelected: isSelected,\n\t\t\tchildren,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tminWidth,\n\t\t\tmaxWidth,\n\t\t\tformatTypes,\n\t\t\tparentBlockStyles,\n\t\t\taccessibilityLabel,\n\t\t\tdisableEditingMenu = false,\n\t\t\tbaseGlobalStyles,\n\t\t\tselectionStart,\n\t\t\tselectionEnd,\n\t\t\tdisableSuggestions,\n\t\t\tcontainerWidth,\n\t\t} = this.props;\n\t\tconst { currentFontSize } = this.state;\n\n\t\tconst record = this.getRecord();\n\t\tconst html = this.getHtmlToRender( record, tagName );\n\t\tconst editableProps = this.getEditableProps();\n\t\tconst blockUseDefaultFont = this.getBlockUseDefaultFont();\n\n\t\tconst fontSize = currentFontSize;\n\t\tconst lineHeight = this.getLineHeight();\n\n\t\tconst {\n\t\t\tcolor: defaultColor,\n\t\t\ttextDecorationColor: defaultTextDecorationColor,\n\t\t\tfontFamily: defaultFontFamily,\n\t\t} = getStylesFromColorScheme( styles.richText, styles.richTextDark );\n\t\tconst linkTextColor = this.getLinkTextColor(\n\t\t\tdefaultTextDecorationColor\n\t\t);\n\n\t\tconst currentSelectionStart = selectionStart ?? 0;\n\t\tconst currentSelectionEnd = selectionEnd ?? 0;\n\t\tlet selection = null;\n\t\tif ( this.needsSelectionUpdate ) {\n\t\t\tthis.needsSelectionUpdate = false;\n\t\t\tselection = {\n\t\t\t\tstart: currentSelectionStart,\n\t\t\t\tend: currentSelectionEnd,\n\t\t\t};\n\n\t\t\t// On AztecAndroid, setting the caret to an out-of-bounds position will crash the editor so, let's check for some cases.\n\t\t\tif ( ! this.isIOS ) {\n\t\t\t\t// The following regular expression is used in Aztec here:\n\t\t\t\t// https://github.com/wordpress-mobile/AztecEditor-Android/blob/b1fad439d56fa6d4aa0b78526fef355c59d00dd3/aztec/src/main/kotlin/org/wordpress/aztec/AztecParser.kt#L656\n\t\t\t\tconst brBeforeParaMatches = html.match( /(<br>)+<\\/p>$/g );\n\t\t\t\tif ( brBeforeParaMatches ) {\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t'Oops, BR tag(s) at the end of content. Aztec will remove them, adapting the selection...'\n\t\t\t\t\t);\n\t\t\t\t\tconst count = (\n\t\t\t\t\t\tbrBeforeParaMatches[ 0 ].match( /br/g ) || []\n\t\t\t\t\t).length;\n\t\t\t\t\tif ( count > 0 ) {\n\t\t\t\t\t\tlet newSelectionStart = currentSelectionStart - count;\n\t\t\t\t\t\tif ( newSelectionStart < 0 ) {\n\t\t\t\t\t\t\tnewSelectionStart = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlet newSelectionEnd = currentSelectionEnd - count;\n\t\t\t\t\t\tif ( newSelectionEnd < 0 ) {\n\t\t\t\t\t\t\tnewSelectionEnd = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tselection = {\n\t\t\t\t\t\t\tstart: newSelectionStart,\n\t\t\t\t\t\t\tend: newSelectionEnd,\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\n\t\tif ( this.comesFromAztec ) {\n\t\t\tthis.comesFromAztec = false;\n\t\t\tthis.firedAfterTextChanged = false;\n\t\t}\n\n\t\t// Logic below assures that `RichText` width will always have equal value when container is almost fully filled.\n\t\tconst width =\n\t\t\tmaxWidth && this.state.width && maxWidth - this.state.width < 10\n\t\t\t\t? maxWidth\n\t\t\t\t: this.state.width;\n\t\tconst containerStyles = [\n\t\t\tstyle?.padding &&\n\t\t\t\tstyle?.backgroundColor && {\n\t\t\t\t\tpadding: style.padding,\n\t\t\t\t\tbackgroundColor: style.backgroundColor,\n\t\t\t\t},\n\t\t\tcontainerWidth && {\n\t\t\t\twidth: containerWidth,\n\t\t\t},\n\t\t];\n\n\t\tconst defaultSelectionColor = getStylesFromColorScheme(\n\t\t\tstyles[ 'rich-text-selection' ],\n\t\t\tstyles[ 'rich-text-selection--dark' ]\n\t\t).color;\n\t\tconst selectionColor = getSelectionColor(\n\t\t\tthis.props.selectionColor,\n\t\t\tdefaultSelectionColor,\n\t\t\tbaseGlobalStyles,\n\t\t\tthis.getIsBlockBasedTheme()\n\t\t);\n\n\t\tconst EditableView = ( props ) => {\n\t\t\tthis.customEditableOnKeyDown = props?.onKeyDown;\n\n\t\t\treturn <></>;\n\t\t};\n\n\t\treturn (\n\t\t\t<View style={ containerStyles }>\n\t\t\t\t{ children &&\n\t\t\t\t\tchildren( {\n\t\t\t\t\t\tisSelected,\n\t\t\t\t\t\tvalue: record,\n\t\t\t\t\t\tonChange: this.onFormatChange,\n\t\t\t\t\t\tonFocus: () => {},\n\t\t\t\t\t\teditableProps,\n\t\t\t\t\t\teditableTagName: EditableView,\n\t\t\t\t\t} ) }\n\t\t\t\t<RCTAztecView\n\t\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t\t\tref={ ( ref ) => {\n\t\t\t\t\t\tthis._editor = ref;\n\n\t\t\t\t\t\tif ( this.props.nativeEditorRef ) {\n\t\t\t\t\t\t\tthis.props.nativeEditorRef( ref );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tbackgroundColor: styles.richText.backgroundColor,\n\t\t\t\t\t\t...style,\n\t\t\t\t\t\t...( this.isIOS && minWidth && maxWidth\n\t\t\t\t\t\t\t? { width }\n\t\t\t\t\t\t\t: { maxWidth } ),\n\t\t\t\t\t\tminHeight: this.state.height,\n\t\t\t\t\t} }\n\t\t\t\t\tblockUseDefaultFont={ blockUseDefaultFont }\n\t\t\t\t\ttext={ {\n\t\t\t\t\t\ttext: html,\n\t\t\t\t\t\teventCount: this.lastEventCount,\n\t\t\t\t\t\tselection,\n\t\t\t\t\t\tlinkTextColor,\n\t\t\t\t\t\ttag: tagName,\n\t\t\t\t\t} }\n\t\t\t\t\tplaceholder={ this.props.placeholder }\n\t\t\t\t\tplaceholderTextColor={ this.getPlaceholderTextColor() }\n\t\t\t\t\tdeleteEnter={ this.props.deleteEnter }\n\t\t\t\t\tonChange={ this.onChangeFromAztec }\n\t\t\t\t\tonFocus={ this.onFocus }\n\t\t\t\t\tonBlur={ this.onBlur }\n\t\t\t\t\tonKeyDown={ this.onKeyDown }\n\t\t\t\t\ttriggerKeyCodes={\n\t\t\t\t\t\tdisableEditingMenu\n\t\t\t\t\t\t\t? []\n\t\t\t\t\t\t\t: this.suggestionOptions().map(\n\t\t\t\t\t\t\t\t\t( op ) => op.triggerChar\n\t\t\t\t\t\t\t )\n\t\t\t\t\t}\n\t\t\t\t\tonPaste={ this.onPaste }\n\t\t\t\t\tactiveFormats={ this.getActiveFormatNames( record ) }\n\t\t\t\t\tonContentSizeChange={ this.onContentSizeChange }\n\t\t\t\t\tonSelectionChange={ this.onSelectionChangeFromAztec }\n\t\t\t\t\tblockType={ { tag: tagName } }\n\t\t\t\t\tcolor={\n\t\t\t\t\t\t( style && style.color ) ||\n\t\t\t\t\t\t( parentBlockStyles && parentBlockStyles.color ) ||\n\t\t\t\t\t\t( baseGlobalStyles && baseGlobalStyles?.color?.text ) ||\n\t\t\t\t\t\tdefaultColor\n\t\t\t\t\t}\n\t\t\t\t\tmaxImagesWidth={ 200 }\n\t\t\t\t\tfontFamily={ this.props.fontFamily || defaultFontFamily }\n\t\t\t\t\tfontSize={ fontSize }\n\t\t\t\t\tlineHeight={ lineHeight }\n\t\t\t\t\tfontWeight={ this.props.fontWeight }\n\t\t\t\t\tfontStyle={ this.props.fontStyle }\n\t\t\t\t\tdisableEditingMenu={ disableEditingMenu }\n\t\t\t\t\tisMultiline={ false }\n\t\t\t\t\ttextAlign={ this.props.textAlign }\n\t\t\t\t\t{ ...( this.isIOS ? { maxWidth } : {} ) }\n\t\t\t\t\tminWidth={ minWidth }\n\t\t\t\t\tid={ this.props.id }\n\t\t\t\t\tselectionColor={ selectionColor }\n\t\t\t\t\tdisableAutocorrection={ this.props.disableAutocorrection }\n\t\t\t\t/>\n\t\t\t\t{ isSelected && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<FormatEdit\n\t\t\t\t\t\t\tforwardedRef={ this._editor }\n\t\t\t\t\t\t\tformatTypes={ formatTypes }\n\t\t\t\t\t\t\tvalue={ record }\n\t\t\t\t\t\t\tonChange={ this.onFormatChange }\n\t\t\t\t\t\t\tonFocus={ () => {} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ ! disableSuggestions && (\n\t\t\t\t\t\t\t<BlockFormatControls>\n\t\t\t\t\t\t\t\t<ToolbarButtonWithOptions\n\t\t\t\t\t\t\t\t\toptions={ this.suggestionOptions() }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</BlockFormatControls>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</View>\n\t\t);\n\t}\n}\n\nRichText.defaultProps = {\n\tformat: 'string',\n\tvalue: '',\n\ttagName: 'div',\n};\n\nconst withFormatTypes = ( WrappedComponent ) => ( props ) => {\n\tconst {\n\t\tclientId,\n\t\tidentifier,\n\t\twithoutInteractiveFormatting,\n\t\tallowedFormats,\n\t} = props;\n\tconst { formatTypes } = useFormatTypes( {\n\t\tclientId,\n\t\tidentifier,\n\t\twithoutInteractiveFormatting,\n\t\tallowedFormats,\n\t} );\n\n\treturn <WrappedComponent { ...props } formatTypes={ formatTypes } />;\n};\n\nexport default compose( [\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst { getBlockParents, getBlock, getSettings } =\n\t\t\tselect( 'core/block-editor' );\n\t\tconst parents = getBlockParents( clientId, true );\n\t\tconst parentBlock = parents ? getBlock( parents[ 0 ] ) : undefined;\n\t\tconst parentBlockStyles = parentBlock?.attributes?.childrenStyles;\n\n\t\tconst settings = getSettings();\n\t\tconst baseGlobalStyles = settings?.__experimentalGlobalStylesBaseStyles;\n\n\t\tconst colorPalettes = settings?.__experimentalFeatures?.color?.palette;\n\t\tconst colorPalette = colorPalettes\n\t\t\t? flatColorPalettes( colorPalettes )\n\t\t\t: settings?.colors;\n\n\t\treturn {\n\t\t\tareMentionsSupported: settings?.capabilities?.mentions === true,\n\t\t\tareXPostsSupported: settings?.capabilities?.xposts === true,\n\t\t\tparentBlockStyles,\n\t\t\tbaseGlobalStyles,\n\t\t\tcolorPalette,\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n\twithFormatTypes,\n] )( RichText );\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_element","_icons","ToolbarButtonWithOptions","options","picker","useRef","presentPicker","current","onValueSelected","selectedValue","selectedOption","find","op","value","onClick","length","firstOption","enablePicker","_react","createElement","Fragment","ToolbarGroup","ToolbarButton","title","icon","Icon","onLongPress","undefined","Picker","ref","onChange","hideCancelButton","_default","exports","default"],"sources":["@wordpress/block-editor/src/components/rich-text/native/toolbar-button-with-options.native.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Picker, ToolbarGroup, ToolbarButton } from '@wordpress/components';\nimport { useRef } from '@wordpress/element';\nimport { Icon } from '@wordpress/icons';\n\n/**\n * Toolbar button component that, upon a long press, opens a Picker\n * to allow selecting from among multiple options.\n *\n * @param {Object} props Component props.\n * @param {Object} props.options Options to pick from.\n */\nfunction ToolbarButtonWithOptions( { options } ) {\n\tconst picker = useRef();\n\n\tfunction presentPicker() {\n\t\tif ( picker.current ) {\n\t\t\tpicker.current.presentPicker();\n\t\t}\n\t}\n\n\tfunction onValueSelected( selectedValue ) {\n\t\tconst selectedOption = options.find(\n\t\t\t( op ) => op.value === selectedValue\n\t\t);\n\t\tif ( selectedOption ) {\n\t\t\tselectedOption.onClick();\n\t\t}\n\t}\n\n\tif ( ! options || options.length === 0 ) {\n\t\treturn null;\n\t}\n\tconst firstOption = options[ 0 ];\n\tconst enablePicker = options.length > 1;\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\ttitle={ firstOption.title }\n\t\t\t\t\ticon={ <Icon icon={ firstOption.icon } /> }\n\t\t\t\t\tonClick={ firstOption.onClick }\n\t\t\t\t\tonLongPress={ enablePicker ? presentPicker : undefined }\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t\t{ enablePicker && (\n\t\t\t\t<Picker\n\t\t\t\t\tref={ picker }\n\t\t\t\t\toptions={ options }\n\t\t\t\t\tonChange={ onValueSelected }\n\t\t\t\t\thideCancelButton\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default ToolbarButtonWithOptions;\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AALA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASG,wBAAwBA,CAAE;EAAEC;AAAQ,CAAC,EAAG;EAChD,MAAMC,MAAM,GAAG,IAAAC,eAAM,EAAC,CAAC;EAEvB,SAASC,aAAaA,CAAA,EAAG;IACxB,IAAKF,MAAM,CAACG,OAAO,EAAG;MACrBH,MAAM,CAACG,OAAO,CAACD,aAAa,CAAC,CAAC;IAC/B;EACD;EAEA,SAASE,eAAeA,CAAEC,aAAa,EAAG;IACzC,MAAMC,cAAc,GAAGP,OAAO,CAACQ,IAAI,CAChCC,EAAE,IAAMA,EAAE,CAACC,KAAK,KAAKJ,aACxB,CAAC;IACD,IAAKC,cAAc,EAAG;MACrBA,cAAc,CAACI,OAAO,CAAC,CAAC;IACzB;EACD;EAEA,IAAK,CAAEX,OAAO,IAAIA,OAAO,CAACY,MAAM,KAAK,CAAC,EAAG;IACxC,OAAO,IAAI;EACZ;EACA,MAAMC,WAAW,GAAGb,OAAO,CAAE,CAAC,CAAE;EAChC,MAAMc,YAAY,GAAGd,OAAO,CAACY,MAAM,GAAG,CAAC;EAEvC,OACC,IAAAG,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAACrB,WAAA,CAAAuB,YAAY,QACZ,IAAAH,MAAA,CAAAC,aAAA,EAACrB,WAAA,CAAAwB,aAAa;IACbC,KAAK,EAAGP,WAAW,CAACO,KAAO;IAC3BC,IAAI,EAAG,IAAAN,MAAA,CAAAC,aAAA,EAAClB,MAAA,CAAAwB,IAAI;MAACD,IAAI,EAAGR,WAAW,CAACQ;IAAM,CAAE,CAAG;IAC3CV,OAAO,EAAGE,WAAW,CAACF,OAAS;IAC/BY,WAAW,EAAGT,YAAY,GAAGX,aAAa,GAAGqB;EAAW,CACxD,CACY,CAAC,EACbV,YAAY,IACb,IAAAC,MAAA,CAAAC,aAAA,EAACrB,WAAA,CAAA8B,MAAM;IACNC,GAAG,EAAGzB,MAAQ;IACdD,OAAO,EAAGA,OAAS;IACnB2B,QAAQ,EAAGtB,eAAiB;IAC5BuB,gBAAgB;EAAA,CAChB,CAED,CAAC;AAEL;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEchC,wBAAwB"}
|
|
1
|
+
{"version":3,"names":["_components","require","_element","_icons","ToolbarButtonWithOptions","options","picker","useRef","presentPicker","current","onValueSelected","selectedValue","selectedOption","find","op","value","onClick","length","firstOption","enablePicker","_react","createElement","Fragment","ToolbarGroup","ToolbarButton","title","icon","Icon","onLongPress","undefined","Picker","ref","onChange","hideCancelButton","_default","exports","default"],"sources":["@wordpress/block-editor/src/components/rich-text/native/toolbar-button-with-options.native.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Picker, ToolbarGroup, ToolbarButton } from '@wordpress/components';\nimport { useRef } from '@wordpress/element';\nimport { Icon } from '@wordpress/icons';\n\n/**\n * Toolbar button component that, upon a long press, opens a Picker\n * to allow selecting from among multiple options.\n *\n * @param {Object} props Component props.\n * @param {Object} props.options Options to pick from.\n */\nfunction ToolbarButtonWithOptions( { options } ) {\n\tconst picker = useRef();\n\n\tfunction presentPicker() {\n\t\tif ( picker.current ) {\n\t\t\tpicker.current.presentPicker();\n\t\t}\n\t}\n\n\tfunction onValueSelected( selectedValue ) {\n\t\tconst selectedOption = options.find(\n\t\t\t( op ) => op.value === selectedValue\n\t\t);\n\t\tif ( selectedOption ) {\n\t\t\tselectedOption.onClick();\n\t\t}\n\t}\n\n\tif ( ! options || options.length === 0 ) {\n\t\treturn null;\n\t}\n\tconst firstOption = options[ 0 ];\n\tconst enablePicker = options.length > 1;\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\ttitle={ firstOption.title }\n\t\t\t\t\ticon={ <Icon icon={ firstOption.icon } /> }\n\t\t\t\t\tonClick={ firstOption.onClick }\n\t\t\t\t\tonLongPress={ enablePicker ? presentPicker : undefined }\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t\t{ enablePicker && (\n\t\t\t\t<Picker\n\t\t\t\t\tref={ picker }\n\t\t\t\t\toptions={ options }\n\t\t\t\t\tonChange={ onValueSelected }\n\t\t\t\t\thideCancelButton\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default ToolbarButtonWithOptions;\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AALA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASG,wBAAwBA,CAAE;EAAEC;AAAQ,CAAC,EAAG;EAChD,MAAMC,MAAM,GAAG,IAAAC,eAAM,EAAC,CAAC;EAEvB,SAASC,aAAaA,CAAA,EAAG;IACxB,IAAKF,MAAM,CAACG,OAAO,EAAG;MACrBH,MAAM,CAACG,OAAO,CAACD,aAAa,CAAC,CAAC;IAC/B;EACD;EAEA,SAASE,eAAeA,CAAEC,aAAa,EAAG;IACzC,MAAMC,cAAc,GAAGP,OAAO,CAACQ,IAAI,CAChCC,EAAE,IAAMA,EAAE,CAACC,KAAK,KAAKJ,aACxB,CAAC;IACD,IAAKC,cAAc,EAAG;MACrBA,cAAc,CAACI,OAAO,CAAC,CAAC;IACzB;EACD;EAEA,IAAK,CAAEX,OAAO,IAAIA,OAAO,CAACY,MAAM,KAAK,CAAC,EAAG;IACxC,OAAO,IAAI;EACZ;EACA,MAAMC,WAAW,GAAGb,OAAO,CAAE,CAAC,CAAE;EAChC,MAAMc,YAAY,GAAGd,OAAO,CAACY,MAAM,GAAG,CAAC;EAEvC,OACC,IAAAG,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAACrB,WAAA,CAAAuB,YAAY,QACZ,IAAAH,MAAA,CAAAC,aAAA,EAACrB,WAAA,CAAAwB,aAAa;IACbC,KAAK,EAAGP,WAAW,CAACO,KAAO;IAC3BC,IAAI,EAAG,IAAAN,MAAA,CAAAC,aAAA,EAAClB,MAAA,CAAAwB,IAAI;MAACD,IAAI,EAAGR,WAAW,CAACQ;IAAM,CAAE,CAAG;IAC3CV,OAAO,EAAGE,WAAW,CAACF,OAAS;IAC/BY,WAAW,EAAGT,YAAY,GAAGX,aAAa,GAAGqB;EAAW,CACxD,CACY,CAAC,EACbV,YAAY,IACb,IAAAC,MAAA,CAAAC,aAAA,EAACrB,WAAA,CAAA8B,MAAM;IACNC,GAAG,EAAGzB,MAAQ;IACdD,OAAO,EAAGA,OAAS;IACnB2B,QAAQ,EAAGtB,eAAiB;IAC5BuB,gBAAgB;EAAA,CAChB,CAED,CAAC;AAEL;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEchC,wBAAwB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_data","_richText","formatTypesSelector","select","richTextStore","getFormatTypes","interactiveContentTags","Set","useFormatTypes","clientId","identifier","withoutInteractiveFormatting","allowedFormats","allFormatTypes","useSelect","formatTypes","useMemo","filter","name","tagName","includes","has","keyedSelected","reduce","accumulator","type","__experimentalGetPropsForEditableTreePreparation","richTextIdentifier","blockClientId","dispatch","useDispatch","prepareHandlers","valueHandlers","changeHandlers","dependencies","forEach","__experimentalCreatePrepareEditableTree","selected","handler","__experimentalCreateOnChangeEditableValue","push","key","dispatchers","__experimentalGetPropsForEditableTreeChangeHandler"],"sources":["@wordpress/block-editor/src/components/rich-text/native/use-format-types.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as richTextStore } from '@wordpress/rich-text';\n\nfunction formatTypesSelector( select ) {\n\treturn select( richTextStore ).getFormatTypes();\n}\n\n/**\n * Set of all interactive content tags.\n *\n * @see https://html.spec.whatwg.org/multipage/dom.html#interactive-content\n */\nconst interactiveContentTags = new Set( [\n\t'a',\n\t'audio',\n\t'button',\n\t'details',\n\t'embed',\n\t'iframe',\n\t'input',\n\t'label',\n\t'select',\n\t'textarea',\n\t'video',\n] );\n\n/**\n * This hook provides RichText with the `formatTypes` and its derived props from\n * experimental format type settings.\n *\n * @param {Object} $0 Options\n * @param {string} $0.clientId Block client ID.\n * @param {string} $0.identifier Block attribute.\n * @param {boolean} $0.withoutInteractiveFormatting Whether to clean the interactive formattings or not.\n * @param {Array} $0.allowedFormats Allowed formats\n */\nexport function useFormatTypes( {\n\tclientId,\n\tidentifier,\n\twithoutInteractiveFormatting,\n\tallowedFormats,\n} ) {\n\tconst allFormatTypes = useSelect( formatTypesSelector, [] );\n\tconst formatTypes = useMemo( () => {\n\t\treturn allFormatTypes.filter( ( { name, tagName } ) => {\n\t\t\tif ( allowedFormats && ! allowedFormats.includes( name ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\twithoutInteractiveFormatting &&\n\t\t\t\tinteractiveContentTags.has( tagName )\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t} );\n\t}, [ allFormatTypes, allowedFormats, interactiveContentTags ] );\n\tconst keyedSelected = useSelect(\n\t\t( select ) =>\n\t\t\tformatTypes.reduce( ( accumulator, type ) => {\n\t\t\t\tif ( type.__experimentalGetPropsForEditableTreePreparation ) {\n\t\t\t\t\taccumulator[ type.name ] =\n\t\t\t\t\t\ttype.__experimentalGetPropsForEditableTreePreparation(\n\t\t\t\t\t\t\tselect,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\trichTextIdentifier: identifier,\n\t\t\t\t\t\t\t\tblockClientId: clientId,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn accumulator;\n\t\t\t}, {} ),\n\t\t[ formatTypes, clientId, identifier ]\n\t);\n\tconst dispatch = useDispatch();\n\tconst prepareHandlers = [];\n\tconst valueHandlers = [];\n\tconst changeHandlers = [];\n\tconst dependencies = [];\n\n\tformatTypes.forEach( ( type ) => {\n\t\tif ( type.__experimentalCreatePrepareEditableTree ) {\n\t\t\tconst selected = keyedSelected[ type.name ];\n\t\t\tconst handler = type.__experimentalCreatePrepareEditableTree(\n\t\t\t\tselected,\n\t\t\t\t{\n\t\t\t\t\trichTextIdentifier: identifier,\n\t\t\t\t\tblockClientId: clientId,\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif ( type.__experimentalCreateOnChangeEditableValue ) {\n\t\t\t\tvalueHandlers.push( handler );\n\t\t\t} else {\n\t\t\t\tprepareHandlers.push( handler );\n\t\t\t}\n\n\t\t\tfor ( const key in selected ) {\n\t\t\t\tdependencies.push( selected[ key ] );\n\t\t\t}\n\t\t}\n\n\t\tif ( type.__experimentalCreateOnChangeEditableValue ) {\n\t\t\tlet dispatchers = {};\n\n\t\t\tif ( type.__experimentalGetPropsForEditableTreeChangeHandler ) {\n\t\t\t\tdispatchers =\n\t\t\t\t\ttype.__experimentalGetPropsForEditableTreeChangeHandler(\n\t\t\t\t\t\tdispatch,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\trichTextIdentifier: identifier,\n\t\t\t\t\t\t\tblockClientId: clientId,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t}\n\n\t\t\tchangeHandlers.push(\n\t\t\t\ttype.__experimentalCreateOnChangeEditableValue(\n\t\t\t\t\t{\n\t\t\t\t\t\t...( keyedSelected[ type.name ] || {} ),\n\t\t\t\t\t\t...dispatchers,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\trichTextIdentifier: identifier,\n\t\t\t\t\t\tblockClientId: clientId,\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t} );\n\n\treturn {\n\t\tformatTypes,\n\t\tprepareHandlers,\n\t\tvalueHandlers,\n\t\tchangeHandlers,\n\t\tdependencies,\n\t};\n}\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AALA;AACA;AACA;;AAKA,SAASG,mBAAmBA,CAAEC,MAAM,EAAG;EACtC,OAAOA,MAAM,CAAEC,eAAc,CAAC,CAACC,cAAc,CAAC,CAAC;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAMC,sBAAsB,GAAG,IAAIC,GAAG,CAAE,CACvC,GAAG,EACH,OAAO,EACP,QAAQ,EACR,SAAS,EACT,OAAO,EACP,QAAQ,EACR,OAAO,EACP,OAAO,EACP,QAAQ,EACR,UAAU,EACV,OAAO,CACN,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,cAAcA,CAAE;EAC/BC,QAAQ;EACRC,UAAU;EACVC,4BAA4B;EAC5BC;AACD,CAAC,EAAG;EACH,MAAMC,cAAc,GAAG,IAAAC,eAAS,EAAEZ,mBAAmB,EAAE,EAAG,CAAC;EAC3D,MAAMa,WAAW,GAAG,IAAAC,gBAAO,EAAE,MAAM;IAClC,OAAOH,cAAc,CAACI,MAAM,CAAE,CAAE;MAAEC,IAAI;MAAEC;IAAQ,CAAC,KAAM;MACtD,IAAKP,cAAc,IAAI,CAAEA,cAAc,CAACQ,QAAQ,CAAEF,IAAK,CAAC,EAAG;QAC1D,OAAO,KAAK;MACb;MAEA,IACCP,4BAA4B,IAC5BL,sBAAsB,CAACe,GAAG,CAAEF,OAAQ,CAAC,EACpC;QACD,OAAO,KAAK;MACb;MAEA,OAAO,IAAI;IACZ,CAAE,CAAC;EACJ,CAAC,EAAE,CAAEN,cAAc,EAAED,cAAc,EAAEN,sBAAsB,CAAG,CAAC;EAC/D,MAAMgB,aAAa,GAAG,IAAAR,eAAS,EAC5BX,MAAM,IACPY,WAAW,CAACQ,MAAM,CAAE,CAAEC,WAAW,EAAEC,IAAI,KAAM;IAC5C,IAAKA,IAAI,CAACC,gDAAgD,EAAG;MAC5DF,WAAW,CAAEC,IAAI,CAACP,IAAI,CAAE,GACvBO,IAAI,CAACC,gDAAgD,CACpDvB,MAAM,EACN;QACCwB,kBAAkB,EAAEjB,UAAU;QAC9BkB,aAAa,EAAEnB;MAChB,CACD,CAAC;IACH;IAEA,OAAOe,WAAW;EACnB,CAAC,EAAE,CAAC,CAAE,CAAC,EACR,CAAET,WAAW,EAAEN,QAAQ,EAAEC,UAAU,CACpC,CAAC;EACD,MAAMmB,QAAQ,GAAG,IAAAC,iBAAW,EAAC,CAAC;EAC9B,MAAMC,eAAe,GAAG,EAAE;EAC1B,MAAMC,aAAa,GAAG,EAAE;EACxB,MAAMC,cAAc,GAAG,EAAE;EACzB,MAAMC,YAAY,GAAG,EAAE;EAEvBnB,WAAW,CAACoB,OAAO,CAAIV,IAAI,IAAM;IAChC,IAAKA,IAAI,CAACW,uCAAuC,EAAG;MACnD,MAAMC,QAAQ,GAAGf,aAAa,CAAEG,IAAI,CAACP,IAAI,CAAE;MAC3C,MAAMoB,OAAO,GAAGb,IAAI,CAACW,uCAAuC,CAC3DC,QAAQ,EACR;QACCV,kBAAkB,EAAEjB,UAAU;QAC9BkB,aAAa,EAAEnB;MAChB,CACD,CAAC;MAED,IAAKgB,IAAI,CAACc,yCAAyC,EAAG;QACrDP,aAAa,CAACQ,IAAI,CAAEF,OAAQ,CAAC;MAC9B,CAAC,MAAM;QACNP,eAAe,CAACS,IAAI,CAAEF,OAAQ,CAAC;MAChC;MAEA,KAAM,MAAMG,GAAG,IAAIJ,QAAQ,EAAG;QAC7BH,YAAY,CAACM,IAAI,CAAEH,QAAQ,CAAEI,GAAG,CAAG,CAAC;MACrC;IACD;IAEA,IAAKhB,IAAI,CAACc,yCAAyC,EAAG;MACrD,IAAIG,WAAW,GAAG,CAAC,CAAC;MAEpB,IAAKjB,IAAI,CAACkB,kDAAkD,EAAG;QAC9DD,WAAW,GACVjB,IAAI,CAACkB,kDAAkD,CACtDd,QAAQ,EACR;UACCF,kBAAkB,EAAEjB,UAAU;UAC9BkB,aAAa,EAAEnB;QAChB,CACD,CAAC;MACH;MAEAwB,cAAc,CAACO,IAAI,CAClBf,IAAI,CAACc,yCAAyC,CAC7C;QACC,IAAKjB,aAAa,CAAEG,IAAI,CAACP,IAAI,CAAE,IAAI,CAAC,CAAC,CAAE;QACvC,GAAGwB;MACJ,CAAC,EACD;QACCf,kBAAkB,EAAEjB,UAAU;QAC9BkB,aAAa,EAAEnB;MAChB,CACD,CACD,CAAC;IACF;EACD,CAAE,CAAC;EAEH,OAAO;IACNM,WAAW;IACXgB,eAAe;IACfC,aAAa;IACbC,cAAc;IACdC;EACD,CAAC;AACF"}
|
|
1
|
+
{"version":3,"names":["_element","require","_data","_richText","formatTypesSelector","select","richTextStore","getFormatTypes","interactiveContentTags","Set","useFormatTypes","clientId","identifier","withoutInteractiveFormatting","allowedFormats","allFormatTypes","useSelect","formatTypes","useMemo","filter","name","tagName","includes","has","keyedSelected","reduce","accumulator","type","__experimentalGetPropsForEditableTreePreparation","richTextIdentifier","blockClientId","dispatch","useDispatch","prepareHandlers","valueHandlers","changeHandlers","dependencies","forEach","__experimentalCreatePrepareEditableTree","selected","handler","__experimentalCreateOnChangeEditableValue","push","key","dispatchers","__experimentalGetPropsForEditableTreeChangeHandler"],"sources":["@wordpress/block-editor/src/components/rich-text/native/use-format-types.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as richTextStore } from '@wordpress/rich-text';\n\nfunction formatTypesSelector( select ) {\n\treturn select( richTextStore ).getFormatTypes();\n}\n\n/**\n * Set of all interactive content tags.\n *\n * @see https://html.spec.whatwg.org/multipage/dom.html#interactive-content\n */\nconst interactiveContentTags = new Set( [\n\t'a',\n\t'audio',\n\t'button',\n\t'details',\n\t'embed',\n\t'iframe',\n\t'input',\n\t'label',\n\t'select',\n\t'textarea',\n\t'video',\n] );\n\n/**\n * This hook provides RichText with the `formatTypes` and its derived props from\n * experimental format type settings.\n *\n * @param {Object} $0 Options\n * @param {string} $0.clientId Block client ID.\n * @param {string} $0.identifier Block attribute.\n * @param {boolean} $0.withoutInteractiveFormatting Whether to clean the interactive formattings or not.\n * @param {Array} $0.allowedFormats Allowed formats\n */\nexport function useFormatTypes( {\n\tclientId,\n\tidentifier,\n\twithoutInteractiveFormatting,\n\tallowedFormats,\n} ) {\n\tconst allFormatTypes = useSelect( formatTypesSelector, [] );\n\tconst formatTypes = useMemo( () => {\n\t\treturn allFormatTypes.filter( ( { name, tagName } ) => {\n\t\t\tif ( allowedFormats && ! allowedFormats.includes( name ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\twithoutInteractiveFormatting &&\n\t\t\t\tinteractiveContentTags.has( tagName )\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t} );\n\t}, [ allFormatTypes, allowedFormats, interactiveContentTags ] );\n\tconst keyedSelected = useSelect(\n\t\t( select ) =>\n\t\t\tformatTypes.reduce( ( accumulator, type ) => {\n\t\t\t\tif ( type.__experimentalGetPropsForEditableTreePreparation ) {\n\t\t\t\t\taccumulator[ type.name ] =\n\t\t\t\t\t\ttype.__experimentalGetPropsForEditableTreePreparation(\n\t\t\t\t\t\t\tselect,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\trichTextIdentifier: identifier,\n\t\t\t\t\t\t\t\tblockClientId: clientId,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn accumulator;\n\t\t\t}, {} ),\n\t\t[ formatTypes, clientId, identifier ]\n\t);\n\tconst dispatch = useDispatch();\n\tconst prepareHandlers = [];\n\tconst valueHandlers = [];\n\tconst changeHandlers = [];\n\tconst dependencies = [];\n\n\tformatTypes.forEach( ( type ) => {\n\t\tif ( type.__experimentalCreatePrepareEditableTree ) {\n\t\t\tconst selected = keyedSelected[ type.name ];\n\t\t\tconst handler = type.__experimentalCreatePrepareEditableTree(\n\t\t\t\tselected,\n\t\t\t\t{\n\t\t\t\t\trichTextIdentifier: identifier,\n\t\t\t\t\tblockClientId: clientId,\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif ( type.__experimentalCreateOnChangeEditableValue ) {\n\t\t\t\tvalueHandlers.push( handler );\n\t\t\t} else {\n\t\t\t\tprepareHandlers.push( handler );\n\t\t\t}\n\n\t\t\tfor ( const key in selected ) {\n\t\t\t\tdependencies.push( selected[ key ] );\n\t\t\t}\n\t\t}\n\n\t\tif ( type.__experimentalCreateOnChangeEditableValue ) {\n\t\t\tlet dispatchers = {};\n\n\t\t\tif ( type.__experimentalGetPropsForEditableTreeChangeHandler ) {\n\t\t\t\tdispatchers =\n\t\t\t\t\ttype.__experimentalGetPropsForEditableTreeChangeHandler(\n\t\t\t\t\t\tdispatch,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\trichTextIdentifier: identifier,\n\t\t\t\t\t\t\tblockClientId: clientId,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t}\n\n\t\t\tchangeHandlers.push(\n\t\t\t\ttype.__experimentalCreateOnChangeEditableValue(\n\t\t\t\t\t{\n\t\t\t\t\t\t...( keyedSelected[ type.name ] || {} ),\n\t\t\t\t\t\t...dispatchers,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\trichTextIdentifier: identifier,\n\t\t\t\t\t\tblockClientId: clientId,\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t} );\n\n\treturn {\n\t\tformatTypes,\n\t\tprepareHandlers,\n\t\tvalueHandlers,\n\t\tchangeHandlers,\n\t\tdependencies,\n\t};\n}\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AALA;AACA;AACA;;AAKA,SAASG,mBAAmBA,CAAEC,MAAM,EAAG;EACtC,OAAOA,MAAM,CAAEC,eAAc,CAAC,CAACC,cAAc,CAAC,CAAC;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAMC,sBAAsB,GAAG,IAAIC,GAAG,CAAE,CACvC,GAAG,EACH,OAAO,EACP,QAAQ,EACR,SAAS,EACT,OAAO,EACP,QAAQ,EACR,OAAO,EACP,OAAO,EACP,QAAQ,EACR,UAAU,EACV,OAAO,CACN,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,cAAcA,CAAE;EAC/BC,QAAQ;EACRC,UAAU;EACVC,4BAA4B;EAC5BC;AACD,CAAC,EAAG;EACH,MAAMC,cAAc,GAAG,IAAAC,eAAS,EAAEZ,mBAAmB,EAAE,EAAG,CAAC;EAC3D,MAAMa,WAAW,GAAG,IAAAC,gBAAO,EAAE,MAAM;IAClC,OAAOH,cAAc,CAACI,MAAM,CAAE,CAAE;MAAEC,IAAI;MAAEC;IAAQ,CAAC,KAAM;MACtD,IAAKP,cAAc,IAAI,CAAEA,cAAc,CAACQ,QAAQ,CAAEF,IAAK,CAAC,EAAG;QAC1D,OAAO,KAAK;MACb;MAEA,IACCP,4BAA4B,IAC5BL,sBAAsB,CAACe,GAAG,CAAEF,OAAQ,CAAC,EACpC;QACD,OAAO,KAAK;MACb;MAEA,OAAO,IAAI;IACZ,CAAE,CAAC;EACJ,CAAC,EAAE,CAAEN,cAAc,EAAED,cAAc,EAAEN,sBAAsB,CAAG,CAAC;EAC/D,MAAMgB,aAAa,GAAG,IAAAR,eAAS,EAC5BX,MAAM,IACPY,WAAW,CAACQ,MAAM,CAAE,CAAEC,WAAW,EAAEC,IAAI,KAAM;IAC5C,IAAKA,IAAI,CAACC,gDAAgD,EAAG;MAC5DF,WAAW,CAAEC,IAAI,CAACP,IAAI,CAAE,GACvBO,IAAI,CAACC,gDAAgD,CACpDvB,MAAM,EACN;QACCwB,kBAAkB,EAAEjB,UAAU;QAC9BkB,aAAa,EAAEnB;MAChB,CACD,CAAC;IACH;IAEA,OAAOe,WAAW;EACnB,CAAC,EAAE,CAAC,CAAE,CAAC,EACR,CAAET,WAAW,EAAEN,QAAQ,EAAEC,UAAU,CACpC,CAAC;EACD,MAAMmB,QAAQ,GAAG,IAAAC,iBAAW,EAAC,CAAC;EAC9B,MAAMC,eAAe,GAAG,EAAE;EAC1B,MAAMC,aAAa,GAAG,EAAE;EACxB,MAAMC,cAAc,GAAG,EAAE;EACzB,MAAMC,YAAY,GAAG,EAAE;EAEvBnB,WAAW,CAACoB,OAAO,CAAIV,IAAI,IAAM;IAChC,IAAKA,IAAI,CAACW,uCAAuC,EAAG;MACnD,MAAMC,QAAQ,GAAGf,aAAa,CAAEG,IAAI,CAACP,IAAI,CAAE;MAC3C,MAAMoB,OAAO,GAAGb,IAAI,CAACW,uCAAuC,CAC3DC,QAAQ,EACR;QACCV,kBAAkB,EAAEjB,UAAU;QAC9BkB,aAAa,EAAEnB;MAChB,CACD,CAAC;MAED,IAAKgB,IAAI,CAACc,yCAAyC,EAAG;QACrDP,aAAa,CAACQ,IAAI,CAAEF,OAAQ,CAAC;MAC9B,CAAC,MAAM;QACNP,eAAe,CAACS,IAAI,CAAEF,OAAQ,CAAC;MAChC;MAEA,KAAM,MAAMG,GAAG,IAAIJ,QAAQ,EAAG;QAC7BH,YAAY,CAACM,IAAI,CAAEH,QAAQ,CAAEI,GAAG,CAAG,CAAC;MACrC;IACD;IAEA,IAAKhB,IAAI,CAACc,yCAAyC,EAAG;MACrD,IAAIG,WAAW,GAAG,CAAC,CAAC;MAEpB,IAAKjB,IAAI,CAACkB,kDAAkD,EAAG;QAC9DD,WAAW,GACVjB,IAAI,CAACkB,kDAAkD,CACtDd,QAAQ,EACR;UACCF,kBAAkB,EAAEjB,UAAU;UAC9BkB,aAAa,EAAEnB;QAChB,CACD,CAAC;MACH;MAEAwB,cAAc,CAACO,IAAI,CAClBf,IAAI,CAACc,yCAAyC,CAC7C;QACC,IAAKjB,aAAa,CAAEG,IAAI,CAACP,IAAI,CAAE,IAAI,CAAC,CAAC,CAAE;QACvC,GAAGwB;MACJ,CAAC,EACD;QACCf,kBAAkB,EAAEjB,UAAU;QAC9BkB,aAAa,EAAEnB;MAChB,CACD,CACD,CAAC;IACF;EACD,CAAE,CAAC;EAEH,OAAO;IACNM,WAAW;IACXgB,eAAe;IACfC,aAAa;IACbC,cAAc;IACdC;EACD,CAAC;AACF","ignoreList":[]}
|