@wordpress/block-editor 12.15.0 → 12.16.1-next.79a6196f.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/LICENSE.md +1 -1
- package/README.md +12 -10
- package/build/components/block-canvas/index.js +21 -7
- package/build/components/block-canvas/index.js.map +1 -1
- package/build/components/block-card/index.js +2 -2
- package/build/components/block-card/index.js.map +1 -1
- package/build/components/block-controls/hook.js +3 -23
- package/build/components/block-controls/hook.js.map +1 -1
- package/build/components/block-draggable/draggable-chip.js +6 -1
- package/build/components/block-draggable/draggable-chip.js.map +1 -1
- package/build/components/block-draggable/index.js +76 -6
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-draggable/index.native.js +0 -6
- package/build/components/block-draggable/index.native.js.map +1 -1
- package/build/components/block-draggable/use-scroll-when-dragging.native.js +1 -1
- package/build/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -1
- package/build/components/block-edit/context.js +5 -1
- package/build/components/block-edit/context.js.map +1 -1
- package/build/components/block-edit/index.js +18 -9
- package/build/components/block-edit/index.js.map +1 -1
- package/build/components/block-editing-mode/index.js +2 -3
- package/build/components/block-editing-mode/index.js.map +1 -1
- package/build/components/block-info-slot-fill/index.js +3 -4
- package/build/components/block-info-slot-fill/index.js.map +1 -1
- package/build/components/block-inspector/index.js +1 -1
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block-list-item-cell.native.js +1 -0
- package/build/components/block-list/block-list-item-cell.native.js.map +1 -1
- package/build/components/block-list/block.js +257 -95
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +58 -23
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/index.native.js +3 -5
- package/build/components/block-list/index.native.js.map +1 -1
- package/build/components/block-list/private-block-context.js +14 -0
- package/build/components/block-list/private-block-context.js.map +1 -0
- package/build/components/block-list/use-block-props/index.js +49 -69
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-focus-first-element.js +4 -29
- package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build/components/block-list/use-block-props/use-is-hovered.js +4 -14
- package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +4 -2
- package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +3 -2
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-list/use-scroll-upon-insertion.native.js +41 -0
- package/build/components/block-list/use-scroll-upon-insertion.native.js.map +1 -0
- package/build/components/block-lock/toolbar.js +21 -27
- package/build/components/block-lock/toolbar.js.map +1 -1
- package/build/components/block-mover/index.js +2 -1
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-patterns-list/index.js +5 -5
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-removal-warning-modal/index.js +2 -9
- package/build/components/block-removal-warning-modal/index.js.map +1 -1
- package/build/components/block-rename/modal.js +3 -0
- package/build/components/block-rename/modal.js.map +1 -1
- package/build/components/block-settings/container.native.js +6 -4
- package/build/components/block-settings/container.native.js.map +1 -1
- package/build/components/block-styles/index.js +1 -1
- package/build/components/block-styles/index.js.map +1 -1
- package/build/components/block-styles/index.native.js +3 -2
- package/build/components/block-styles/index.native.js.map +1 -1
- package/build/components/block-switcher/index.js +4 -4
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-toolbar/index.js +90 -29
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/block-toolbar-breadcrumb.js +49 -0
- package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
- package/build/components/block-tools/block-toolbar-popover.js +84 -0
- package/build/components/block-tools/block-toolbar-popover.js.map +1 -0
- package/build/components/block-tools/index.js +27 -24
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-types-list/index.native.js +4 -3
- package/build/components/block-types-list/index.native.js.map +1 -1
- package/build/components/block-variation-picker/index.native.js +2 -1
- package/build/components/block-variation-picker/index.native.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +29 -2
- package/build/components/block-variation-transforms/index.js.map +1 -1
- package/build/components/border-radius-control/linked-button.js +1 -1
- package/build/components/border-radius-control/linked-button.js.map +1 -1
- package/build/components/colors/utils.js +10 -2
- package/build/components/colors/utils.js.map +1 -1
- package/build/components/colors/with-colors.js +6 -2
- package/build/components/colors/with-colors.js.map +1 -1
- package/build/components/colors-gradients/control.js +28 -17
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/duotone-control/index.js +1 -4
- package/build/components/duotone-control/index.js.map +1 -1
- package/build/components/font-sizes/utils.js +10 -2
- package/build/components/font-sizes/utils.js.map +1 -1
- package/build/components/global-styles/border-panel.js +2 -1
- package/build/components/global-styles/border-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.js +24 -21
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +4 -3
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/effects-panel.js +2 -1
- package/build/components/global-styles/effects-panel.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +6 -3
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/get-global-styles-changes.js +192 -0
- package/build/components/global-styles/get-global-styles-changes.js.map +1 -0
- 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 +7 -1
- package/build/components/global-styles/image-settings-panel.js.map +1 -1
- package/build/components/global-styles/index.js +7 -0
- package/build/components/global-styles/index.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +43 -36
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +22 -8
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +8 -1
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/height-control/index.js +6 -2
- package/build/components/height-control/index.js.map +1 -1
- package/build/components/image-link-destinations/index.native.js +118 -0
- package/build/components/image-link-destinations/index.native.js.map +1 -0
- package/build/components/image-size-control/index.js +2 -2
- package/build/components/image-size-control/index.js.map +1 -1
- package/build/components/index.native.js +14 -5
- package/build/components/index.native.js.map +1 -1
- package/build/components/inner-blocks/index.js +61 -22
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/index.native.js +18 -4
- package/build/components/inner-blocks/index.native.js.map +1 -1
- package/build/components/inner-blocks/use-inner-block-template-sync.js +5 -6
- package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build/components/inner-blocks/use-nested-settings-update.js +5 -9
- package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/pattern-list.js +1 -1
- package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +10 -9
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/patterns-filter.js +10 -10
- package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/use-pattern-categories.js +9 -9
- package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/utils.js +10 -14
- package/build/components/inserter/block-patterns-tab/utils.js.map +1 -1
- package/build/components/inserter/hooks/use-block-types-state.js +4 -14
- package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build/components/inserter/hooks/use-patterns-state.js +1 -1
- package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build/components/inserter/index.js +1 -2
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/library.js +3 -7
- package/build/components/inserter/library.js.map +1 -1
- package/build/components/inserter/media-tab/media-panel.js +2 -2
- package/build/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build/components/inserter/menu.js +26 -33
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/preview-panel.js +2 -2
- package/build/components/inserter/preview-panel.js.map +1 -1
- package/build/components/inserter/tabs.js +21 -21
- package/build/components/inserter/tabs.js.map +1 -1
- package/build/components/inserter-button/index.native.js +98 -0
- package/build/components/inserter-button/index.native.js.map +1 -0
- package/build/components/inserter-button/sparkles.js +23 -0
- package/build/components/inserter-button/sparkles.js.map +1 -0
- package/build/components/inserter-draggable-blocks/index.js +8 -4
- package/build/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build/components/inserter-list-item/index.js +2 -4
- package/build/components/inserter-list-item/index.js.map +1 -1
- package/build/components/inspector-controls/block-support-tools-panel.js +3 -1
- package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build/components/inspector-controls/fill.js +3 -3
- package/build/components/inspector-controls/fill.js.map +1 -1
- package/build/components/inspector-controls/fill.native.js +3 -3
- package/build/components/inspector-controls/fill.native.js.map +1 -1
- package/build/components/inspector-controls-tabs/index.js +34 -23
- package/build/components/inspector-controls-tabs/index.js.map +1 -1
- package/build/components/list-view/block-select-button.js +4 -0
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +57 -3
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/media-upload-progress/constants.js +19 -0
- package/build/components/media-upload-progress/constants.js.map +1 -0
- package/build/components/media-upload-progress/index.native.js +42 -17
- package/build/components/media-upload-progress/index.native.js.map +1 -1
- package/build/components/navigable-toolbar/index.js +11 -16
- package/build/components/navigable-toolbar/index.js.map +1 -1
- package/build/components/plain-text/index.native.js +8 -3
- package/build/components/plain-text/index.native.js.map +1 -1
- package/build/components/preview-options/index.js +6 -62
- package/build/components/preview-options/index.js.map +1 -1
- package/build/components/provider/index.js +3 -1
- package/build/components/provider/index.js.map +1 -1
- package/build/components/provider/use-block-sync.js +7 -1
- package/build/components/provider/use-block-sync.js.map +1 -1
- package/build/components/rich-text/content.js +26 -23
- package/build/components/rich-text/content.js.map +1 -1
- package/build/components/rich-text/get-rich-text-values.js +2 -1
- package/build/components/rich-text/get-rich-text-values.js.map +1 -1
- package/build/components/rich-text/index.js +19 -37
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +9 -16
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/native/get-format-colors.native.js +22 -24
- package/build/components/rich-text/native/get-format-colors.native.js.map +1 -1
- package/build/components/rich-text/native/index.native.js +22 -57
- package/build/components/rich-text/native/index.native.js.map +1 -1
- package/build/components/rich-text/use-input-rules.js +7 -3
- package/build/components/rich-text/use-input-rules.js.map +1 -1
- package/build/components/rich-text/use-mark-persistent.js +1 -1
- package/build/components/rich-text/use-mark-persistent.js.map +1 -1
- package/build/components/rich-text/with-deprecations.js +50 -0
- package/build/components/rich-text/with-deprecations.js.map +1 -0
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build/components/url-input/index.js +9 -6
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/use-block-commands/index.js +14 -18
- package/build/components/use-block-commands/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +108 -17
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-moving-animation/index.js +100 -92
- package/build/components/use-moving-animation/index.js.map +1 -1
- package/build/components/use-on-block-drop/index.js +9 -12
- package/build/components/use-on-block-drop/index.js.map +1 -1
- package/build/components/use-resize-canvas/index.js +4 -1
- package/build/components/use-resize-canvas/index.js.map +1 -1
- package/build/components/use-settings/index.js +14 -0
- package/build/components/use-settings/index.js.map +1 -1
- package/build/components/writing-flow/index.js +0 -1
- package/build/components/writing-flow/index.js.map +1 -1
- package/build/components/writing-flow/use-drag-selection.js +15 -4
- package/build/components/writing-flow/use-drag-selection.js.map +1 -1
- package/build/components/writing-flow/use-selection-observer.js +73 -27
- package/build/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +7 -4
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/hooks/align.js +21 -69
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/align.native.js +11 -1
- package/build/hooks/align.native.js.map +1 -1
- package/build/hooks/anchor.js +14 -30
- package/build/hooks/anchor.js.map +1 -1
- package/build/hooks/aria-label.js +9 -1
- package/build/hooks/aria-label.js.map +1 -1
- package/build/hooks/background.js +198 -36
- package/build/hooks/background.js.map +1 -1
- package/build/hooks/block-hooks.js +24 -32
- package/build/hooks/block-hooks.js.map +1 -1
- package/build/hooks/block-renaming.js +18 -22
- package/build/hooks/block-renaming.js.map +1 -1
- package/build/hooks/border.js +53 -80
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color.js +79 -90
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/content-lock-ui.js +29 -29
- package/build/hooks/content-lock-ui.js.map +1 -1
- package/build/hooks/custom-class-name.js +13 -30
- package/build/hooks/custom-class-name.js.map +1 -1
- package/build/hooks/custom-class-name.native.js +9 -1
- package/build/hooks/custom-class-name.native.js.map +1 -1
- package/build/hooks/dimensions.js +13 -14
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/duotone.js +31 -61
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/font-family.js +23 -28
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/font-size.js +52 -120
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/index.js +27 -16
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/index.native.js +15 -6
- package/build/hooks/index.native.js.map +1 -1
- package/build/hooks/layout-child.js +68 -0
- package/build/hooks/layout-child.js.map +1 -0
- package/build/hooks/layout.js +25 -104
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/padding.js +2 -2
- package/build/hooks/padding.js.map +1 -1
- package/build/hooks/position.js +40 -62
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/style.js +52 -89
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/typography.js +25 -10
- package/build/hooks/typography.js.map +1 -1
- package/build/hooks/typography.native.js +43 -18
- package/build/hooks/typography.native.js.map +1 -1
- package/build/hooks/use-typography-props.js +10 -2
- package/build/hooks/use-typography-props.js.map +1 -1
- package/build/hooks/utils.js +200 -10
- package/build/hooks/utils.js.map +1 -1
- package/build/private-apis.js +2 -6
- package/build/private-apis.js.map +1 -1
- package/build/private-apis.native.js +0 -2
- package/build/private-apis.native.js.map +1 -1
- package/build/store/actions.js +0 -16
- package/build/store/actions.js.map +1 -1
- package/build/store/private-actions.js +54 -0
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +46 -0
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +18 -2
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +11 -73
- package/build/store/selectors.js.map +1 -1
- package/build/store/undo-ignore.js +12 -0
- package/build/store/undo-ignore.js.map +1 -0
- package/build/store/utils.js +66 -0
- package/build/store/utils.js.map +1 -0
- package/build/utils/get-px-from-css-unit.js +16 -0
- package/build/utils/get-px-from-css-unit.js.map +1 -0
- package/build/utils/index.js +2 -2
- package/build/utils/index.js.map +1 -1
- package/build/utils/object.js +38 -99
- package/build/utils/object.js.map +1 -1
- package/build/utils/selection.js +9 -1
- package/build/utils/selection.js.map +1 -1
- package/build/utils/use-can-block-toolbar-be-focused.js +46 -0
- package/build/utils/use-can-block-toolbar-be-focused.js.map +1 -0
- package/build-module/components/block-canvas/index.js +22 -8
- package/build-module/components/block-canvas/index.js.map +1 -1
- package/build-module/components/block-card/index.js +2 -2
- package/build-module/components/block-card/index.js.map +1 -1
- package/build-module/components/block-controls/hook.js +4 -24
- package/build-module/components/block-controls/hook.js.map +1 -1
- package/build-module/components/block-draggable/draggable-chip.js +6 -1
- package/build-module/components/block-draggable/draggable-chip.js.map +1 -1
- package/build-module/components/block-draggable/index.js +76 -6
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-draggable/index.native.js +1 -7
- package/build-module/components/block-draggable/index.native.js.map +1 -1
- package/build-module/components/block-draggable/use-scroll-when-dragging.native.js +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 +2 -0
- package/build-module/components/block-edit/context.js.map +1 -1
- package/build-module/components/block-edit/index.js +19 -10
- package/build-module/components/block-edit/index.js.map +1 -1
- package/build-module/components/block-editing-mode/index.js +3 -4
- package/build-module/components/block-editing-mode/index.js.map +1 -1
- package/build-module/components/block-info-slot-fill/index.js +3 -3
- package/build-module/components/block-info-slot-fill/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +1 -1
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block-list-item-cell.native.js +1 -0
- package/build-module/components/block-list/block-list-item-cell.native.js.map +1 -1
- package/build-module/components/block-list/block.js +261 -99
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +60 -25
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/index.native.js +3 -5
- package/build-module/components/block-list/index.native.js.map +1 -1
- package/build-module/components/block-list/private-block-context.js +6 -0
- package/build-module/components/block-list/private-block-context.js.map +1 -0
- package/build-module/components/block-list/use-block-props/index.js +50 -70
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js +4 -29
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-is-hovered.js +4 -14
- package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +4 -2
- package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +3 -2
- 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 +33 -0
- package/build-module/components/block-list/use-scroll-upon-insertion.native.js.map +1 -0
- package/build-module/components/block-lock/toolbar.js +22 -28
- package/build-module/components/block-lock/toolbar.js.map +1 -1
- package/build-module/components/block-mover/index.js +2 -1
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js +6 -6
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-removal-warning-modal/index.js +3 -10
- package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
- package/build-module/components/block-rename/modal.js +3 -0
- package/build-module/components/block-rename/modal.js.map +1 -1
- package/build-module/components/block-settings/container.native.js +4 -2
- package/build-module/components/block-settings/container.native.js.map +1 -1
- package/build-module/components/block-styles/index.js +1 -1
- package/build-module/components/block-styles/index.js.map +1 -1
- package/build-module/components/block-styles/index.native.js +3 -2
- package/build-module/components/block-styles/index.native.js.map +1 -1
- package/build-module/components/block-switcher/index.js +4 -4
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +89 -27
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js +41 -0
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
- package/build-module/components/block-tools/block-toolbar-popover.js +74 -0
- package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -0
- package/build-module/components/block-tools/index.js +27 -24
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-types-list/index.native.js +2 -1
- package/build-module/components/block-types-list/index.native.js.map +1 -1
- package/build-module/components/block-variation-picker/index.native.js +2 -1
- package/build-module/components/block-variation-picker/index.native.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +30 -3
- package/build-module/components/block-variation-transforms/index.js.map +1 -1
- package/build-module/components/border-radius-control/linked-button.js +1 -1
- package/build-module/components/border-radius-control/linked-button.js.map +1 -1
- package/build-module/components/colors/utils.js +9 -1
- package/build-module/components/colors/utils.js.map +1 -1
- package/build-module/components/colors/with-colors.js +5 -1
- package/build-module/components/colors/with-colors.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +29 -18
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/duotone-control/index.js +1 -4
- package/build-module/components/duotone-control/index.js.map +1 -1
- package/build-module/components/font-sizes/utils.js +9 -1
- package/build-module/components/font-sizes/utils.js.map +1 -1
- package/build-module/components/global-styles/border-panel.js +3 -2
- package/build-module/components/global-styles/border-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +26 -23
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +5 -4
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/effects-panel.js +3 -2
- package/build-module/components/global-styles/effects-panel.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +8 -5
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/get-global-styles-changes.js +184 -0
- package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -0
- 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 +7 -1
- package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
- package/build-module/components/global-styles/index.js +1 -0
- package/build-module/components/global-styles/index.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +45 -38
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +15 -1
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +7 -0
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/height-control/index.js +6 -2
- package/build-module/components/height-control/index.js.map +1 -1
- package/build-module/components/image-link-destinations/index.native.js +109 -0
- package/build-module/components/image-link-destinations/index.native.js.map +1 -0
- package/build-module/components/image-size-control/index.js +2 -2
- package/build-module/components/image-size-control/index.js.map +1 -1
- package/build-module/components/index.native.js +3 -1
- package/build-module/components/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +62 -23
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.native.js +18 -4
- package/build-module/components/inner-blocks/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js +5 -6
- 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 +6 -10
- package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
- package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +11 -10
- 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 +11 -11
- 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 +11 -11
- 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 +7 -11
- package/build-module/components/inserter/block-patterns-tab/utils.js.map +1 -1
- package/build-module/components/inserter/hooks/use-block-types-state.js +4 -14
- package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build-module/components/inserter/hooks/use-patterns-state.js +2 -2
- package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build-module/components/inserter/index.js +1 -2
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/library.js +3 -7
- package/build-module/components/inserter/library.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-panel.js +1 -1
- package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build-module/components/inserter/menu.js +26 -33
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/preview-panel.js +2 -2
- package/build-module/components/inserter/preview-panel.js.map +1 -1
- package/build-module/components/inserter/tabs.js +22 -22
- package/build-module/components/inserter/tabs.js.map +1 -1
- package/build-module/components/inserter-button/index.native.js +89 -0
- package/build-module/components/inserter-button/index.native.js.map +1 -0
- package/build-module/components/inserter-button/sparkles.js +15 -0
- package/build-module/components/inserter-button/sparkles.js.map +1 -0
- package/build-module/components/inserter-draggable-blocks/index.js +9 -5
- package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build-module/components/inserter-list-item/index.js +2 -4
- package/build-module/components/inserter-list-item/index.js.map +1 -1
- package/build-module/components/inspector-controls/block-support-tools-panel.js +3 -1
- package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build-module/components/inspector-controls/fill.js +3 -3
- package/build-module/components/inspector-controls/fill.js.map +1 -1
- package/build-module/components/inspector-controls/fill.native.js +3 -3
- package/build-module/components/inspector-controls/fill.native.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/index.js +35 -24
- package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +4 -0
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +58 -4
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/media-upload-progress/constants.js +7 -0
- package/build-module/components/media-upload-progress/constants.js.map +1 -0
- package/build-module/components/media-upload-progress/index.native.js +37 -8
- package/build-module/components/media-upload-progress/index.native.js.map +1 -1
- package/build-module/components/navigable-toolbar/index.js +11 -16
- package/build-module/components/navigable-toolbar/index.js.map +1 -1
- package/build-module/components/plain-text/index.native.js +6 -1
- package/build-module/components/plain-text/index.native.js.map +1 -1
- package/build-module/components/preview-options/index.js +6 -62
- package/build-module/components/preview-options/index.js.map +1 -1
- package/build-module/components/provider/index.js +3 -1
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +7 -1
- package/build-module/components/provider/use-block-sync.js.map +1 -1
- package/build-module/components/rich-text/content.js +25 -21
- package/build-module/components/rich-text/content.js.map +1 -1
- package/build-module/components/rich-text/get-rich-text-values.js +2 -1
- package/build-module/components/rich-text/get-rich-text-values.js.map +1 -1
- package/build-module/components/rich-text/index.js +21 -39
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +10 -18
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/native/get-format-colors.native.js +22 -24
- package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -1
- package/build-module/components/rich-text/native/index.native.js +22 -56
- package/build-module/components/rich-text/native/index.native.js.map +1 -1
- package/build-module/components/rich-text/use-input-rules.js +7 -3
- package/build-module/components/rich-text/use-input-rules.js.map +1 -1
- package/build-module/components/rich-text/use-mark-persistent.js +1 -1
- package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
- package/build-module/components/rich-text/with-deprecations.js +42 -0
- package/build-module/components/rich-text/with-deprecations.js.map +1 -0
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build-module/components/url-input/index.js +9 -6
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/use-block-commands/index.js +14 -18
- package/build-module/components/use-block-commands/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +107 -18
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-moving-animation/index.js +102 -94
- package/build-module/components/use-moving-animation/index.js.map +1 -1
- package/build-module/components/use-on-block-drop/index.js +9 -12
- package/build-module/components/use-on-block-drop/index.js.map +1 -1
- package/build-module/components/use-resize-canvas/index.js +4 -1
- package/build-module/components/use-resize-canvas/index.js.map +1 -1
- package/build-module/components/use-settings/index.js +13 -1
- package/build-module/components/use-settings/index.js.map +1 -1
- package/build-module/components/writing-flow/index.js +0 -1
- package/build-module/components/writing-flow/index.js.map +1 -1
- package/build-module/components/writing-flow/use-drag-selection.js +15 -4
- package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-selection-observer.js +73 -27
- package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +7 -4
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/hooks/align.js +20 -67
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/align.native.js +1 -0
- package/build-module/hooks/align.native.js.map +1 -1
- package/build-module/hooks/anchor.js +12 -27
- package/build-module/hooks/anchor.js.map +1 -1
- package/build-module/hooks/aria-label.js +7 -1
- package/build-module/hooks/aria-label.js.map +1 -1
- package/build-module/hooks/background.js +197 -37
- package/build-module/hooks/background.js.map +1 -1
- package/build-module/hooks/block-hooks.js +22 -30
- package/build-module/hooks/block-hooks.js.map +1 -1
- package/build-module/hooks/block-renaming.js +17 -21
- package/build-module/hooks/block-renaming.js.map +1 -1
- package/build-module/hooks/border.js +52 -79
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color.js +78 -88
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/content-lock-ui.js +27 -27
- package/build-module/hooks/content-lock-ui.js.map +1 -1
- package/build-module/hooks/custom-class-name.js +12 -28
- package/build-module/hooks/custom-class-name.js.map +1 -1
- package/build-module/hooks/custom-class-name.native.js +7 -1
- package/build-module/hooks/custom-class-name.native.js.map +1 -1
- package/build-module/hooks/dimensions.js +15 -16
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/duotone.js +30 -61
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/font-family.js +20 -25
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/font-size.js +50 -120
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/index.js +20 -16
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/index.native.js +10 -6
- package/build-module/hooks/index.native.js.map +1 -1
- package/build-module/hooks/layout-child.js +60 -0
- package/build-module/hooks/layout-child.js.map +1 -0
- package/build-module/hooks/layout.js +21 -100
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/padding.js +2 -2
- package/build-module/hooks/padding.js.map +1 -1
- package/build-module/hooks/position.js +38 -59
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/style.js +52 -85
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/typography.js +26 -11
- package/build-module/hooks/typography.js.map +1 -1
- package/build-module/hooks/typography.native.js +43 -17
- package/build-module/hooks/typography.native.js.map +1 -1
- package/build-module/hooks/use-typography-props.js +9 -1
- package/build-module/hooks/use-typography-props.js.map +1 -1
- package/build-module/hooks/utils.js +194 -9
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/private-apis.js +2 -6
- package/build-module/private-apis.js.map +1 -1
- package/build-module/private-apis.native.js +0 -2
- package/build-module/private-apis.native.js.map +1 -1
- package/build-module/store/actions.js +0 -15
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/private-actions.js +52 -0
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +44 -1
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +18 -2
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +4 -65
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/store/undo-ignore.js +5 -0
- package/build-module/store/undo-ignore.js.map +1 -0
- package/build-module/store/utils.js +56 -0
- package/build-module/store/utils.js.map +1 -0
- package/build-module/utils/get-px-from-css-unit.js +9 -0
- package/build-module/utils/get-px-from-css-unit.js.map +1 -0
- package/build-module/utils/index.js +1 -1
- package/build-module/utils/index.js.map +1 -1
- package/build-module/utils/object.js +37 -97
- package/build-module/utils/object.js.map +1 -1
- package/build-module/utils/selection.js +9 -1
- package/build-module/utils/selection.js.map +1 -1
- package/build-module/utils/use-can-block-toolbar-be-focused.js +40 -0
- package/build-module/utils/use-can-block-toolbar-be-focused.js.map +1 -0
- package/build-style/content-rtl.css +7 -6
- package/build-style/content.css +7 -6
- package/build-style/style-rtl.css +164 -301
- package/build-style/style.css +164 -301
- package/package.json +31 -31
- package/src/components/alignment-control/README.md +0 -5
- package/src/components/block-alignment-control/README.md +0 -5
- package/src/components/block-alignment-matrix-control/README.md +0 -10
- package/src/components/block-breadcrumb/README.md +0 -5
- package/src/components/block-canvas/index.js +29 -17
- package/src/components/block-canvas/style.scss +6 -0
- package/src/components/block-caption/README.md +2 -7
- package/src/components/block-card/README.md +0 -5
- package/src/components/block-card/index.js +6 -4
- package/src/components/block-card/style.scss +7 -3
- package/src/components/block-controls/hook.js +8 -30
- package/src/components/block-controls/test/index.js +3 -3
- package/src/components/block-draggable/draggable-chip.js +11 -1
- package/src/components/block-draggable/index.js +116 -4
- package/src/components/block-draggable/index.native.js +0 -5
- package/src/components/block-draggable/style.scss +35 -0
- package/src/components/block-draggable/test/helpers.native.js +8 -7
- package/src/components/block-draggable/use-scroll-when-dragging.native.js +1 -1
- package/src/components/block-edit/context.js +3 -0
- package/src/components/block-edit/index.js +36 -10
- package/src/components/block-editing-mode/index.js +3 -3
- package/src/components/block-icon/README.md +0 -5
- package/src/components/block-info-slot-fill/index.js +6 -3
- package/src/components/block-inspector/README.md +0 -5
- package/src/components/block-inspector/index.js +3 -1
- package/src/components/block-inspector/style.scss +0 -4
- package/src/components/block-list/block-list-item-cell.native.js +5 -1
- package/src/components/block-list/block.js +309 -104
- package/src/components/block-list/block.native.js +69 -21
- package/src/components/block-list/content.scss +14 -10
- package/src/components/block-list/index.native.js +3 -5
- package/src/components/block-list/{block-list-block-context.js → private-block-context.js} +1 -1
- package/src/components/block-list/use-block-props/index.js +43 -86
- package/src/components/block-list/use-block-props/use-focus-first-element.js +1 -34
- package/src/components/block-list/use-block-props/use-is-hovered.js +2 -13
- package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +1 -5
- package/src/components/block-list/use-in-between-inserter.js +4 -1
- package/src/components/block-list/use-scroll-upon-insertion.native.js +52 -0
- package/src/components/block-lock/toolbar.js +23 -34
- package/src/components/block-mover/README.md +0 -5
- package/src/components/block-mover/index.js +1 -1
- package/src/components/block-parent-selector/README.md +0 -5
- package/src/components/block-patterns-list/README.md +0 -5
- package/src/components/block-patterns-list/index.js +9 -6
- package/src/components/block-removal-warning-modal/index.js +7 -14
- package/src/components/block-rename/modal.js +7 -1
- package/src/components/block-settings/container.native.js +3 -5
- package/src/components/block-styles/index.js +1 -1
- package/src/components/block-styles/index.native.js +4 -2
- package/src/components/block-styles/style.scss +0 -11
- package/src/components/block-switcher/index.js +49 -59
- package/src/components/block-switcher/test/__snapshots__/index.js.snap +3 -1
- package/src/components/block-toolbar/README.md +0 -5
- package/src/components/block-toolbar/index.js +179 -95
- package/src/components/block-toolbar/style.scss +50 -66
- package/src/components/block-tools/block-toolbar-breadcrumb.js +46 -0
- package/src/components/block-tools/block-toolbar-popover.js +84 -0
- package/src/components/block-tools/index.js +42 -29
- package/src/components/block-tools/style.scss +60 -172
- package/src/components/block-types-list/README.md +0 -5
- package/src/components/block-types-list/index.native.js +2 -1
- package/src/components/block-variation-picker/README.md +0 -5
- package/src/components/block-variation-picker/index.native.js +1 -1
- package/src/components/block-variation-transforms/README.md +0 -5
- package/src/components/block-variation-transforms/index.js +49 -3
- package/src/components/border-radius-control/linked-button.js +1 -1
- package/src/components/caption/README.md +0 -5
- package/src/components/color-palette/test/__snapshots__/control.js.snap +0 -1
- package/src/components/colors/utils.js +8 -1
- package/src/components/colors/with-colors.js +3 -1
- package/src/components/colors-gradients/control.js +49 -30
- package/src/components/colors-gradients/style.scss +0 -7
- package/src/components/contrast-checker/README.md +0 -4
- package/src/components/copy-handler/README.md +0 -10
- package/src/components/duotone-control/index.js +2 -5
- package/src/components/duotone-control/style.scss +1 -6
- package/src/components/font-sizes/utils.js +7 -1
- package/src/components/global-styles/border-panel.js +2 -1
- package/src/components/global-styles/color-panel.js +36 -26
- package/src/components/global-styles/dimensions-panel.js +4 -3
- package/src/components/global-styles/effects-panel.js +2 -1
- package/src/components/global-styles/filters-panel.js +6 -5
- package/src/components/global-styles/get-global-styles-changes.js +210 -0
- package/src/components/global-styles/hooks.js +5 -0
- package/src/components/global-styles/image-settings-panel.js +6 -0
- package/src/components/global-styles/index.js +1 -0
- package/src/components/global-styles/test/get-global-styles-changes.js +234 -0
- package/src/components/global-styles/typography-panel.js +60 -47
- package/src/components/global-styles/use-global-styles-output.js +9 -5
- package/src/components/global-styles/utils.js +7 -0
- package/src/components/height-control/README.md +2 -7
- package/src/components/height-control/index.js +4 -0
- package/src/components/image-link-destinations/index.native.js +152 -0
- package/src/components/image-link-destinations/style.native.scss +16 -0
- package/src/components/image-size-control/index.js +5 -2
- package/src/components/index.native.js +3 -2
- package/src/components/inner-blocks/README.md +13 -2
- package/src/components/inner-blocks/index.js +68 -29
- package/src/components/inner-blocks/index.native.js +19 -7
- package/src/components/inner-blocks/use-inner-block-template-sync.js +5 -7
- package/src/components/inner-blocks/use-nested-settings-update.js +6 -13
- package/src/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
- package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +15 -15
- package/src/components/inserter/block-patterns-tab/patterns-filter.js +15 -13
- package/src/components/inserter/block-patterns-tab/use-pattern-categories.js +15 -18
- package/src/components/inserter/block-patterns-tab/utils.js +11 -12
- package/src/components/inserter/hooks/use-block-types-state.js +9 -11
- package/src/components/inserter/hooks/use-patterns-state.js +2 -2
- package/src/components/inserter/index.js +0 -1
- package/src/components/inserter/library.js +2 -8
- package/src/components/inserter/media-tab/media-panel.js +1 -1
- package/src/components/inserter/menu.js +26 -36
- package/src/components/inserter/preview-panel.js +2 -2
- package/src/components/inserter/style.scss +21 -21
- package/src/components/inserter/tabs.js +34 -25
- package/src/components/inserter-button/README.md +62 -0
- package/src/components/inserter-button/index.native.js +116 -0
- package/src/components/inserter-button/sparkles.js +15 -0
- package/src/components/inserter-button/style.native.scss +72 -0
- package/src/components/inserter-draggable-blocks/index.js +18 -5
- package/src/components/inserter-list-item/index.js +6 -6
- package/src/components/inspector-controls/block-support-tools-panel.js +2 -0
- package/src/components/inspector-controls/fill.js +6 -3
- package/src/components/inspector-controls/fill.native.js +6 -3
- package/src/components/inspector-controls-tabs/index.js +39 -28
- package/src/components/inspector-controls-tabs/style.scss +3 -2
- package/src/components/letter-spacing-control/README.md +0 -5
- package/src/components/line-height-control/README.md +0 -5
- package/src/components/link-control/style.scss +1 -1
- package/src/components/link-control/test/index.js +1 -1
- package/src/components/list-view/README.md +0 -5
- package/src/components/list-view/block-select-button.js +4 -0
- package/src/components/list-view/block.js +73 -2
- package/src/components/list-view/style.scss +6 -0
- package/src/components/media-upload-progress/constants.js +6 -0
- package/src/components/media-upload-progress/index.native.js +66 -14
- package/src/components/media-upload-progress/test/index.native.js +2 -2
- package/src/components/multi-selection-inspector/README.md +0 -5
- package/src/components/navigable-toolbar/README.md +2 -0
- package/src/components/navigable-toolbar/index.js +15 -13
- package/src/components/plain-text/index.native.js +6 -1
- package/src/components/preview-options/index.js +6 -86
- package/src/components/provider/index.js +1 -1
- package/src/components/provider/test/use-block-sync.js +20 -17
- package/src/components/provider/use-block-sync.js +6 -0
- package/src/components/rich-text/content.js +27 -20
- package/src/components/rich-text/get-rich-text-values.js +6 -1
- package/src/components/rich-text/index.js +23 -52
- package/src/components/rich-text/index.native.js +8 -25
- package/src/components/rich-text/native/get-format-colors.native.js +33 -40
- package/src/components/rich-text/native/index.native.js +22 -71
- package/src/components/rich-text/native/test/__snapshots__/index.native.js.snap +3 -3
- package/src/components/rich-text/native/test/index.native.js +72 -5
- package/src/components/rich-text/use-input-rules.js +8 -3
- package/src/components/rich-text/use-mark-persistent.js +1 -2
- package/src/components/rich-text/with-deprecations.js +51 -0
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
- package/src/components/text-decoration-control/README.md +40 -0
- package/src/components/text-transform-control/README.md +0 -4
- package/src/components/ungroup-button/README.md +0 -5
- package/src/components/unit-control/README.md +0 -4
- package/src/components/url-input/index.js +11 -11
- package/src/components/use-block-commands/index.js +18 -21
- package/src/components/use-block-drop-zone/index.js +181 -30
- package/src/components/use-moving-animation/index.js +107 -103
- package/src/components/use-on-block-drop/index.js +9 -24
- package/src/components/use-on-block-drop/test/index.js +12 -26
- package/src/components/use-resize-canvas/README.md +3 -7
- package/src/components/use-resize-canvas/index.js +4 -1
- package/src/components/use-settings/README.md +0 -4
- package/src/components/use-settings/index.js +15 -1
- package/src/components/writing-flow/index.js +0 -1
- package/src/components/writing-flow/use-drag-selection.js +18 -4
- package/src/components/writing-flow/use-selection-observer.js +99 -37
- package/src/components/writing-flow/use-tab-nav.js +7 -7
- package/src/hooks/align.js +16 -81
- package/src/hooks/align.native.js +1 -0
- package/src/hooks/anchor.js +14 -38
- package/src/hooks/aria-label.js +8 -5
- package/src/hooks/background.js +269 -32
- package/src/hooks/block-hooks.js +22 -51
- package/src/hooks/block-renaming.js +23 -37
- package/src/hooks/border.js +62 -124
- package/src/hooks/color.js +111 -138
- package/src/hooks/content-lock-ui.js +110 -122
- package/src/hooks/custom-class-name.js +9 -45
- package/src/hooks/custom-class-name.native.js +8 -5
- package/src/hooks/dimensions.js +14 -16
- package/src/hooks/duotone.js +70 -127
- package/src/hooks/font-family.js +14 -36
- package/src/hooks/font-size.js +67 -168
- package/src/hooks/index.js +58 -16
- package/src/hooks/index.native.js +22 -6
- package/src/hooks/layout-child.js +53 -0
- package/src/hooks/layout.js +17 -103
- package/src/hooks/padding.js +2 -2
- package/src/hooks/position.js +50 -90
- package/src/hooks/style.js +118 -193
- package/src/hooks/test/align.js +1 -178
- package/src/hooks/test/anchor.js +4 -9
- package/src/hooks/test/custom-class-name.js +3 -8
- package/src/hooks/test/style.js +4 -14
- package/src/hooks/typography.js +14 -16
- package/src/hooks/typography.native.js +31 -33
- package/src/hooks/use-typography-props.js +7 -1
- package/src/hooks/utils.js +261 -10
- package/src/private-apis.js +2 -6
- package/src/private-apis.native.js +0 -2
- package/src/store/actions.js +0 -15
- package/src/store/private-actions.js +48 -0
- package/src/store/private-selectors.js +56 -0
- package/src/store/reducer.js +20 -1
- package/src/store/selectors.js +10 -82
- package/src/store/undo-ignore.js +4 -0
- package/src/store/utils.js +74 -0
- package/src/style.scss +1 -2
- package/src/utils/get-px-from-css-unit.js +8 -0
- package/src/utils/index.js +1 -1
- package/src/utils/object.js +34 -104
- package/src/utils/selection.js +9 -2
- package/src/utils/test/object.js +1 -96
- package/src/utils/use-can-block-toolbar-be-focused.js +48 -0
- package/build/components/block-list/block-list-block-context.js +0 -14
- package/build/components/block-list/block-list-block-context.js.map +0 -1
- package/build/components/block-list/use-block-props/use-block-class-names.js +0 -67
- package/build/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
- package/build/components/block-list/use-block-props/use-block-custom-class-name.js +0 -46
- package/build/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
- package/build/components/block-list/use-block-props/use-block-default-class-name.js +0 -37
- package/build/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
- package/build/components/block-tools/back-compat.js +0 -45
- package/build/components/block-tools/back-compat.js.map +0 -1
- package/build/components/block-tools/block-contextual-toolbar.js +0 -91
- package/build/components/block-tools/block-contextual-toolbar.js.map +0 -1
- package/build/components/block-tools/selected-block-tools.js +0 -113
- package/build/components/block-tools/selected-block-tools.js.map +0 -1
- package/build/components/inserter/hooks/use-debounced-input.js +0 -22
- package/build/components/inserter/hooks/use-debounced-input.js.map +0 -1
- package/build/components/use-display-block-controls/index.js +0 -39
- package/build/components/use-display-block-controls/index.js.map +0 -1
- package/build/components/use-display-block-controls/index.native.js +0 -39
- package/build/components/use-display-block-controls/index.native.js.map +0 -1
- package/build/hooks/custom-fields.js +0 -120
- package/build/hooks/custom-fields.js.map +0 -1
- package/build/utils/parse-css-unit-to-px.js +0 -302
- package/build/utils/parse-css-unit-to-px.js.map +0 -1
- package/build/utils/use-should-contextual-toolbar-show.js +0 -63
- package/build/utils/use-should-contextual-toolbar-show.js.map +0 -1
- package/build-module/components/block-list/block-list-block-context.js +0 -6
- package/build-module/components/block-list/block-list-block-context.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-block-class-names.js +0 -60
- package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js +0 -40
- package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-block-default-class-name.js +0 -31
- package/build-module/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
- package/build-module/components/block-tools/back-compat.js +0 -35
- package/build-module/components/block-tools/back-compat.js.map +0 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js +0 -83
- package/build-module/components/block-tools/block-contextual-toolbar.js.map +0 -1
- package/build-module/components/block-tools/selected-block-tools.js +0 -105
- package/build-module/components/block-tools/selected-block-tools.js.map +0 -1
- package/build-module/components/inserter/hooks/use-debounced-input.js +0 -15
- package/build-module/components/inserter/hooks/use-debounced-input.js.map +0 -1
- package/build-module/components/use-display-block-controls/index.js +0 -32
- package/build-module/components/use-display-block-controls/index.js.map +0 -1
- package/build-module/components/use-display-block-controls/index.native.js +0 -32
- package/build-module/components/use-display-block-controls/index.native.js.map +0 -1
- package/build-module/hooks/custom-fields.js +0 -118
- package/build-module/hooks/custom-fields.js.map +0 -1
- package/build-module/utils/parse-css-unit-to-px.js +0 -294
- package/build-module/utils/parse-css-unit-to-px.js.map +0 -1
- package/build-module/utils/use-should-contextual-toolbar-show.js +0 -57
- package/build-module/utils/use-should-contextual-toolbar-show.js.map +0 -1
- package/src/components/block-list/use-block-props/use-block-class-names.js +0 -66
- package/src/components/block-list/use-block-props/use-block-custom-class-name.js +0 -44
- package/src/components/block-list/use-block-props/use-block-default-class-name.js +0 -35
- package/src/components/block-parent-selector/style.scss +0 -11
- package/src/components/block-tools/back-compat.js +0 -35
- package/src/components/block-tools/block-contextual-toolbar.js +0 -100
- package/src/components/block-tools/selected-block-tools.js +0 -127
- package/src/components/inserter/hooks/use-debounced-input.js +0 -18
- package/src/components/preview-options/README.md +0 -94
- package/src/components/preview-options/style.scss +0 -64
- package/src/components/use-display-block-controls/index.js +0 -36
- package/src/components/use-display-block-controls/index.native.js +0 -37
- package/src/hooks/custom-fields.js +0 -142
- package/src/hooks/test/color.js +0 -112
- package/src/utils/parse-css-unit-to-px.js +0 -329
- package/src/utils/test/parse-css-unit-to-px.js +0 -172
- package/src/utils/use-should-contextual-toolbar-show.js +0 -85
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classnames","_interopRequireDefault","require","_blocks","_components","_compose","_icons","_element","_data","_i18n","_keycodes","_leaf","_useListViewScrollIntoView","_button","_blockContents","_context","_utils","_store","_useBlockDisplayInformation","_blockLock","_ariaReferencedText","ListViewBlock","block","clientId","isDragged","isSelected","isBranchSelected","selectBlock","position","level","rowCount","siblingBlockCount","showBlockMovers","path","isExpanded","selectedClientIds","isSyncedBranch","cellRef","useRef","rowRef","isHovered","setIsHovered","useState","isLocked","canEdit","useBlockLock","isFirstSelectedBlock","isLastSelectedBlock","length","toggleBlockHighlight","useDispatch","blockEditorStore","blockInformation","useBlockDisplayInformation","blockTitle","name","title","__","blockName","blockEditingMode","useSelect","select","getBlock","getBlockName","getBlockEditingMode","showBlockActions","hasBlockSupport","instanceId","useInstanceId","descriptionId","blockPositionDescription","getBlockPositionDescription","blockAriaLabel","sprintf","settingsAriaLabel","expand","collapse","BlockSettingsMenu","listViewInstanceId","expandedState","setInsertedBlock","treeGridElementRef","useListViewContext","hasSiblings","hasRenderedMovers","moverCellClassName","classnames","listViewBlockSettingsClassName","onKeyDown","event","keyCode","ESCAPE","defaultPrevented","stopPropagation","preventDefault","undefined","onMouseEnter","useCallback","onMouseLeave","selectEditorBlock","updateFocusAndSelection","focusClientId","shouldSelectBlock","focusListItem","toggleExpanded","colSpan","classes","isSynced","dropdownClientIds","includes","useListViewScrollIntoView","rowItemRef","currentlyEditingBlockInCanvas","_react","createElement","default","className","onFocus","onBlur","id","ref","__experimentalTreeGridCell","tabIndex","onClick","onToggleExpanded","ariaLabel","ariaDescribedBy","Fragment","withoutGridItem","__experimentalTreeGridItem","BlockMoverUpButton","orientation","clientIds","BlockMoverDownButton","icon","moreVertical","label","toggleProps","disableOpenOnArrowDown","__experimentalSelectBlock","_default","memo","exports"],"sources":["@wordpress/block-editor/src/components/list-view/block.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport {\n\t__experimentalTreeGridCell as TreeGridCell,\n\t__experimentalTreeGridItem as TreeGridItem,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { moreVertical } from '@wordpress/icons';\nimport { useState, useRef, useCallback, memo } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { sprintf, __ } from '@wordpress/i18n';\nimport { ESCAPE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport ListViewLeaf from './leaf';\nimport useListViewScrollIntoView from './use-list-view-scroll-into-view';\nimport {\n\tBlockMoverUpButton,\n\tBlockMoverDownButton,\n} from '../block-mover/button';\nimport ListViewBlockContents from './block-contents';\nimport { useListViewContext } from './context';\nimport { getBlockPositionDescription, focusListItem } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { useBlockLock } from '../block-lock';\nimport AriaReferencedText from './aria-referenced-text';\n\nfunction ListViewBlock( {\n\tblock: { clientId },\n\tisDragged,\n\tisSelected,\n\tisBranchSelected,\n\tselectBlock,\n\tposition,\n\tlevel,\n\trowCount,\n\tsiblingBlockCount,\n\tshowBlockMovers,\n\tpath,\n\tisExpanded,\n\tselectedClientIds,\n\tisSyncedBranch,\n} ) {\n\tconst cellRef = useRef( null );\n\tconst rowRef = useRef( null );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\n\tconst { isLocked, canEdit } = useBlockLock( clientId );\n\n\tconst isFirstSelectedBlock =\n\t\tisSelected && selectedClientIds[ 0 ] === clientId;\n\tconst isLastSelectedBlock =\n\t\tisSelected &&\n\t\tselectedClientIds[ selectedClientIds.length - 1 ] === clientId;\n\n\tconst { toggleBlockHighlight } = useDispatch( blockEditorStore );\n\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst blockTitle =\n\t\tblockInformation?.name || blockInformation?.title || __( 'Untitled' );\n\n\tconst { block, blockName, blockEditingMode } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getBlockName, getBlockEditingMode } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tblock: getBlock( clientId ),\n\t\t\t\tblockName: getBlockName( clientId ),\n\t\t\t\tblockEditingMode: getBlockEditingMode( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst showBlockActions =\n\t\t// When a block hides its toolbar it also hides the block settings menu,\n\t\t// since that menu is part of the toolbar in the editor canvas.\n\t\t// List View respects this by also hiding the block settings menu.\n\t\thasBlockSupport( blockName, '__experimentalToolbar', true ) &&\n\t\t// Don't show the settings menu if block is disabled or content only.\n\t\tblockEditingMode === 'default';\n\tconst instanceId = useInstanceId( ListViewBlock );\n\tconst descriptionId = `list-view-block-select-button__${ instanceId }`;\n\tconst blockPositionDescription = getBlockPositionDescription(\n\t\tposition,\n\t\tsiblingBlockCount,\n\t\tlevel\n\t);\n\n\tconst blockAriaLabel = isLocked\n\t\t? sprintf(\n\t\t\t\t// translators: %s: The title of the block. This string indicates a link to select the locked block.\n\t\t\t\t__( '%s (locked)' ),\n\t\t\t\tblockTitle\n\t\t )\n\t\t: blockTitle;\n\n\tconst settingsAriaLabel = sprintf(\n\t\t// translators: %s: The title of the block.\n\t\t__( 'Options for %s' ),\n\t\tblockTitle\n\t);\n\n\tconst {\n\t\texpand,\n\t\tcollapse,\n\t\tBlockSettingsMenu,\n\t\tlistViewInstanceId,\n\t\texpandedState,\n\t\tsetInsertedBlock,\n\t\ttreeGridElementRef,\n\t} = useListViewContext();\n\n\tconst hasSiblings = siblingBlockCount > 0;\n\tconst hasRenderedMovers = showBlockMovers && hasSiblings;\n\tconst moverCellClassName = classnames(\n\t\t'block-editor-list-view-block__mover-cell',\n\t\t{ 'is-visible': isHovered || isSelected }\n\t);\n\n\tconst listViewBlockSettingsClassName = classnames(\n\t\t'block-editor-list-view-block__menu-cell',\n\t\t{ 'is-visible': isHovered || isFirstSelectedBlock }\n\t);\n\n\t// If multiple blocks are selected, deselect all blocks when the user\n\t// presses the escape key.\n\tconst onKeyDown = ( event ) => {\n\t\tif (\n\t\t\tevent.keyCode === ESCAPE &&\n\t\t\t! event.defaultPrevented &&\n\t\t\tselectedClientIds.length > 0\n\t\t) {\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\t\t\tselectBlock( event, undefined );\n\t\t}\n\t};\n\n\tconst onMouseEnter = useCallback( () => {\n\t\tsetIsHovered( true );\n\t\ttoggleBlockHighlight( clientId, true );\n\t}, [ clientId, setIsHovered, toggleBlockHighlight ] );\n\tconst onMouseLeave = useCallback( () => {\n\t\tsetIsHovered( false );\n\t\ttoggleBlockHighlight( clientId, false );\n\t}, [ clientId, setIsHovered, toggleBlockHighlight ] );\n\n\tconst selectEditorBlock = useCallback(\n\t\t( event ) => {\n\t\t\tselectBlock( event, clientId );\n\t\t\tevent.preventDefault();\n\t\t},\n\t\t[ clientId, selectBlock ]\n\t);\n\n\tconst updateFocusAndSelection = useCallback(\n\t\t( focusClientId, shouldSelectBlock ) => {\n\t\t\tif ( shouldSelectBlock ) {\n\t\t\t\tselectBlock( undefined, focusClientId, null, null );\n\t\t\t}\n\n\t\t\tfocusListItem( focusClientId, treeGridElementRef );\n\t\t},\n\t\t[ selectBlock, treeGridElementRef ]\n\t);\n\n\tconst toggleExpanded = useCallback(\n\t\t( event ) => {\n\t\t\t// Prevent shift+click from opening link in a new window when toggling.\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tif ( isExpanded === true ) {\n\t\t\t\tcollapse( clientId );\n\t\t\t} else if ( isExpanded === false ) {\n\t\t\t\texpand( clientId );\n\t\t\t}\n\t\t},\n\t\t[ clientId, expand, collapse, isExpanded ]\n\t);\n\n\tlet colSpan;\n\tif ( hasRenderedMovers ) {\n\t\tcolSpan = 2;\n\t} else if ( ! showBlockActions ) {\n\t\tcolSpan = 3;\n\t}\n\n\tconst classes = classnames( {\n\t\t'is-selected': isSelected,\n\t\t'is-first-selected': isFirstSelectedBlock,\n\t\t'is-last-selected': isLastSelectedBlock,\n\t\t'is-branch-selected': isBranchSelected,\n\t\t'is-synced-branch': isSyncedBranch,\n\t\t'is-dragging': isDragged,\n\t\t'has-single-cell': ! showBlockActions,\n\t\t'is-synced': blockInformation?.isSynced,\n\t} );\n\n\t// Only include all selected blocks if the currently clicked on block\n\t// is one of the selected blocks. This ensures that if a user attempts\n\t// to alter a block that isn't part of the selection, they're still able\n\t// to do so.\n\tconst dropdownClientIds = selectedClientIds.includes( clientId )\n\t\t? selectedClientIds\n\t\t: [ clientId ];\n\n\t// Pass in a ref to the row, so that it can be scrolled\n\t// into view when selected. For long lists, the placeholder for the\n\t// selected block is also observed, within ListViewLeafPlaceholder.\n\tuseListViewScrollIntoView( {\n\t\tisSelected,\n\t\trowItemRef: rowRef,\n\t\tselectedClientIds,\n\t} );\n\n\t// Detect if there is a block in the canvas currently being edited and multi-selection is not happening.\n\tconst currentlyEditingBlockInCanvas =\n\t\tisSelected && selectedClientIds.length === 1;\n\n\treturn (\n\t\t<ListViewLeaf\n\t\t\tclassName={ classes }\n\t\t\tonKeyDown={ onKeyDown }\n\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\tonFocus={ onMouseEnter }\n\t\t\tonBlur={ onMouseLeave }\n\t\t\tlevel={ level }\n\t\t\tposition={ position }\n\t\t\trowCount={ rowCount }\n\t\t\tpath={ path }\n\t\t\tid={ `list-view-${ listViewInstanceId }-block-${ clientId }` }\n\t\t\tdata-block={ clientId }\n\t\t\tdata-expanded={ canEdit ? isExpanded : undefined }\n\t\t\tref={ rowRef }\n\t\t>\n\t\t\t<TreeGridCell\n\t\t\t\tclassName=\"block-editor-list-view-block__contents-cell\"\n\t\t\t\tcolSpan={ colSpan }\n\t\t\t\tref={ cellRef }\n\t\t\t\taria-selected={ !! isSelected }\n\t\t\t>\n\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t<div className=\"block-editor-list-view-block__contents-container\">\n\t\t\t\t\t\t<ListViewBlockContents\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\tonClick={ selectEditorBlock }\n\t\t\t\t\t\t\tonToggleExpanded={ toggleExpanded }\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\tsiblingBlockCount={ siblingBlockCount }\n\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\ttabIndex={\n\t\t\t\t\t\t\t\tcurrentlyEditingBlockInCanvas ? 0 : tabIndex\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tisExpanded={ canEdit ? isExpanded : undefined }\n\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\tariaLabel={ blockAriaLabel }\n\t\t\t\t\t\t\tariaDescribedBy={ descriptionId }\n\t\t\t\t\t\t\tupdateFocusAndSelection={ updateFocusAndSelection }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<AriaReferencedText id={ descriptionId }>\n\t\t\t\t\t\t\t{ blockPositionDescription }\n\t\t\t\t\t\t</AriaReferencedText>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</TreeGridCell>\n\t\t\t{ hasRenderedMovers && (\n\t\t\t\t<>\n\t\t\t\t\t<TreeGridCell\n\t\t\t\t\t\tclassName={ moverCellClassName }\n\t\t\t\t\t\twithoutGridItem\n\t\t\t\t\t>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ showBlockActions && BlockSettingsMenu && (\n\t\t\t\t<TreeGridCell\n\t\t\t\t\tclassName={ listViewBlockSettingsClassName }\n\t\t\t\t\taria-selected={ !! isSelected }\n\t\t\t\t>\n\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t<BlockSettingsMenu\n\t\t\t\t\t\t\tclientIds={ dropdownClientIds }\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\tlabel={ settingsAriaLabel }\n\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\tref,\n\t\t\t\t\t\t\t\tclassName: 'block-editor-list-view-block__menu',\n\t\t\t\t\t\t\t\ttabIndex,\n\t\t\t\t\t\t\t\tonFocus,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tdisableOpenOnArrowDown\n\t\t\t\t\t\t\texpand={ expand }\n\t\t\t\t\t\t\texpandedState={ expandedState }\n\t\t\t\t\t\t\tsetInsertedBlock={ setInsertedBlock }\n\t\t\t\t\t\t\t__experimentalSelectBlock={\n\t\t\t\t\t\t\t\tupdateFocusAndSelection\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</TreeGridCell>\n\t\t\t) }\n\t\t</ListViewLeaf>\n\t);\n}\n\nexport default memo( ListViewBlock );\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_classnames","_interopRequireDefault","require","_blocks","_components","_compose","_icons","_element","_data","_i18n","_keycodes","_leaf","_useListViewScrollIntoView","_button","_blockContents","_context","_utils","_store","_useBlockDisplayInformation","_blockLock","_ariaReferencedText","ListViewBlock","block","clientId","isDragged","isSelected","isBranchSelected","selectBlock","position","level","rowCount","siblingBlockCount","showBlockMovers","path","isExpanded","selectedClientIds","isSyncedBranch","cellRef","useRef","rowRef","settingsRef","isHovered","setIsHovered","useState","settingsAnchorRect","setSettingsAnchorRect","isLocked","canEdit","canMove","useBlockLock","isFirstSelectedBlock","isLastSelectedBlock","length","toggleBlockHighlight","useDispatch","blockEditorStore","blockInformation","useBlockDisplayInformation","blockTitle","name","title","__","blockName","blockEditingMode","useSelect","select","getBlock","getBlockName","getBlockEditingMode","allowRightClickOverrides","getSettings","showBlockActions","hasBlockSupport","instanceId","useInstanceId","descriptionId","blockPositionDescription","getBlockPositionDescription","blockAriaLabel","sprintf","settingsAriaLabel","expand","collapse","BlockSettingsMenu","listViewInstanceId","expandedState","setInsertedBlock","treeGridElementRef","useListViewContext","hasSiblings","hasRenderedMovers","moverCellClassName","classnames","listViewBlockSettingsClassName","onKeyDown","event","keyCode","ESCAPE","defaultPrevented","stopPropagation","preventDefault","undefined","onMouseEnter","useCallback","onMouseLeave","selectEditorBlock","updateFocusAndSelection","focusClientId","shouldSelectBlock","focusListItem","toggleExpanded","onContextMenu","current","click","window","DOMRect","clientX","clientY","onMouseDown","button","settingsPopoverAnchor","useMemo","ownerDocument","getBoundingClientRect","clearSettingsAnchorRect","colSpan","classes","isSynced","dropdownClientIds","includes","useListViewScrollIntoView","rowItemRef","currentlyEditingBlockInCanvas","_react","createElement","default","className","onFocus","onBlur","id","ref","__experimentalTreeGridCell","tabIndex","onClick","onToggleExpanded","ariaLabel","ariaDescribedBy","Fragment","withoutGridItem","__experimentalTreeGridItem","BlockMoverUpButton","orientation","clientIds","BlockMoverDownButton","icon","moreVertical","label","popoverProps","anchor","toggleProps","disableOpenOnArrowDown","__experimentalSelectBlock","_default","memo","exports"],"sources":["@wordpress/block-editor/src/components/list-view/block.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport {\n\t__experimentalTreeGridCell as TreeGridCell,\n\t__experimentalTreeGridItem as TreeGridItem,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { moreVertical } from '@wordpress/icons';\nimport {\n\tuseCallback,\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tmemo,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { sprintf, __ } from '@wordpress/i18n';\nimport { ESCAPE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport ListViewLeaf from './leaf';\nimport useListViewScrollIntoView from './use-list-view-scroll-into-view';\nimport {\n\tBlockMoverUpButton,\n\tBlockMoverDownButton,\n} from '../block-mover/button';\nimport ListViewBlockContents from './block-contents';\nimport { useListViewContext } from './context';\nimport { getBlockPositionDescription, focusListItem } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { useBlockLock } from '../block-lock';\nimport AriaReferencedText from './aria-referenced-text';\n\nfunction ListViewBlock( {\n\tblock: { clientId },\n\tisDragged,\n\tisSelected,\n\tisBranchSelected,\n\tselectBlock,\n\tposition,\n\tlevel,\n\trowCount,\n\tsiblingBlockCount,\n\tshowBlockMovers,\n\tpath,\n\tisExpanded,\n\tselectedClientIds,\n\tisSyncedBranch,\n} ) {\n\tconst cellRef = useRef( null );\n\tconst rowRef = useRef( null );\n\tconst settingsRef = useRef( null );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst [ settingsAnchorRect, setSettingsAnchorRect ] = useState();\n\n\tconst { isLocked, canEdit, canMove } = useBlockLock( clientId );\n\n\tconst isFirstSelectedBlock =\n\t\tisSelected && selectedClientIds[ 0 ] === clientId;\n\tconst isLastSelectedBlock =\n\t\tisSelected &&\n\t\tselectedClientIds[ selectedClientIds.length - 1 ] === clientId;\n\n\tconst { toggleBlockHighlight } = useDispatch( blockEditorStore );\n\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst blockTitle =\n\t\tblockInformation?.name || blockInformation?.title || __( 'Untitled' );\n\n\tconst { block, blockName, blockEditingMode } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getBlockName, getBlockEditingMode } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tblock: getBlock( clientId ),\n\t\t\t\tblockName: getBlockName( clientId ),\n\t\t\t\tblockEditingMode: getBlockEditingMode( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst allowRightClickOverrides = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings().allowRightClickOverrides,\n\t\t[]\n\t);\n\n\tconst showBlockActions =\n\t\t// When a block hides its toolbar it also hides the block settings menu,\n\t\t// since that menu is part of the toolbar in the editor canvas.\n\t\t// List View respects this by also hiding the block settings menu.\n\t\thasBlockSupport( blockName, '__experimentalToolbar', true ) &&\n\t\t// Don't show the settings menu if block is disabled or content only.\n\t\tblockEditingMode === 'default';\n\tconst instanceId = useInstanceId( ListViewBlock );\n\tconst descriptionId = `list-view-block-select-button__${ instanceId }`;\n\tconst blockPositionDescription = getBlockPositionDescription(\n\t\tposition,\n\t\tsiblingBlockCount,\n\t\tlevel\n\t);\n\n\tconst blockAriaLabel = isLocked\n\t\t? sprintf(\n\t\t\t\t// translators: %s: The title of the block. This string indicates a link to select the locked block.\n\t\t\t\t__( '%s (locked)' ),\n\t\t\t\tblockTitle\n\t\t )\n\t\t: blockTitle;\n\n\tconst settingsAriaLabel = sprintf(\n\t\t// translators: %s: The title of the block.\n\t\t__( 'Options for %s' ),\n\t\tblockTitle\n\t);\n\n\tconst {\n\t\texpand,\n\t\tcollapse,\n\t\tBlockSettingsMenu,\n\t\tlistViewInstanceId,\n\t\texpandedState,\n\t\tsetInsertedBlock,\n\t\ttreeGridElementRef,\n\t} = useListViewContext();\n\n\tconst hasSiblings = siblingBlockCount > 0;\n\tconst hasRenderedMovers = showBlockMovers && hasSiblings;\n\tconst moverCellClassName = classnames(\n\t\t'block-editor-list-view-block__mover-cell',\n\t\t{ 'is-visible': isHovered || isSelected }\n\t);\n\n\tconst listViewBlockSettingsClassName = classnames(\n\t\t'block-editor-list-view-block__menu-cell',\n\t\t{ 'is-visible': isHovered || isFirstSelectedBlock }\n\t);\n\n\t// If multiple blocks are selected, deselect all blocks when the user\n\t// presses the escape key.\n\tconst onKeyDown = ( event ) => {\n\t\tif (\n\t\t\tevent.keyCode === ESCAPE &&\n\t\t\t! event.defaultPrevented &&\n\t\t\tselectedClientIds.length > 0\n\t\t) {\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\t\t\tselectBlock( event, undefined );\n\t\t}\n\t};\n\n\tconst onMouseEnter = useCallback( () => {\n\t\tsetIsHovered( true );\n\t\ttoggleBlockHighlight( clientId, true );\n\t}, [ clientId, setIsHovered, toggleBlockHighlight ] );\n\tconst onMouseLeave = useCallback( () => {\n\t\tsetIsHovered( false );\n\t\ttoggleBlockHighlight( clientId, false );\n\t}, [ clientId, setIsHovered, toggleBlockHighlight ] );\n\n\tconst selectEditorBlock = useCallback(\n\t\t( event ) => {\n\t\t\tselectBlock( event, clientId );\n\t\t\tevent.preventDefault();\n\t\t},\n\t\t[ clientId, selectBlock ]\n\t);\n\n\tconst updateFocusAndSelection = useCallback(\n\t\t( focusClientId, shouldSelectBlock ) => {\n\t\t\tif ( shouldSelectBlock ) {\n\t\t\t\tselectBlock( undefined, focusClientId, null, null );\n\t\t\t}\n\n\t\t\tfocusListItem( focusClientId, treeGridElementRef );\n\t\t},\n\t\t[ selectBlock, treeGridElementRef ]\n\t);\n\n\tconst toggleExpanded = useCallback(\n\t\t( event ) => {\n\t\t\t// Prevent shift+click from opening link in a new window when toggling.\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tif ( isExpanded === true ) {\n\t\t\t\tcollapse( clientId );\n\t\t\t} else if ( isExpanded === false ) {\n\t\t\t\texpand( clientId );\n\t\t\t}\n\t\t},\n\t\t[ clientId, expand, collapse, isExpanded ]\n\t);\n\n\t// Allow right-clicking an item in the List View to open up the block settings dropdown.\n\tconst onContextMenu = useCallback(\n\t\t( event ) => {\n\t\t\tif ( showBlockActions && allowRightClickOverrides ) {\n\t\t\t\tsettingsRef.current?.click();\n\t\t\t\t// Ensure the position of the settings dropdown is at the cursor.\n\t\t\t\tsetSettingsAnchorRect(\n\t\t\t\t\tnew window.DOMRect( event.clientX, event.clientY, 0, 0 )\n\t\t\t\t);\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t},\n\t\t[ allowRightClickOverrides, settingsRef, showBlockActions ]\n\t);\n\n\tconst onMouseDown = useCallback(\n\t\t( event ) => {\n\t\t\t// Prevent right-click from focusing the block,\n\t\t\t// because focus will be handled when opening the block settings dropdown.\n\t\t\tif ( allowRightClickOverrides && event.button === 2 ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t},\n\t\t[ allowRightClickOverrides ]\n\t);\n\n\tconst settingsPopoverAnchor = useMemo( () => {\n\t\tconst { ownerDocument } = rowRef?.current || {};\n\n\t\t// If no custom position is set, the settings dropdown will be anchored to the\n\t\t// DropdownMenu toggle button.\n\t\tif ( ! settingsAnchorRect || ! ownerDocument ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Position the settings dropdown at the cursor when right-clicking a block.\n\t\treturn {\n\t\t\townerDocument,\n\t\t\tgetBoundingClientRect() {\n\t\t\t\treturn settingsAnchorRect;\n\t\t\t},\n\t\t};\n\t}, [ settingsAnchorRect ] );\n\n\tconst clearSettingsAnchorRect = useCallback( () => {\n\t\t// Clear the custom position for the settings dropdown so that it is restored back\n\t\t// to being anchored to the DropdownMenu toggle button.\n\t\tsetSettingsAnchorRect( undefined );\n\t}, [ setSettingsAnchorRect ] );\n\n\tlet colSpan;\n\tif ( hasRenderedMovers ) {\n\t\tcolSpan = 2;\n\t} else if ( ! showBlockActions ) {\n\t\tcolSpan = 3;\n\t}\n\n\tconst classes = classnames( {\n\t\t'is-selected': isSelected,\n\t\t'is-first-selected': isFirstSelectedBlock,\n\t\t'is-last-selected': isLastSelectedBlock,\n\t\t'is-branch-selected': isBranchSelected,\n\t\t'is-synced-branch': isSyncedBranch,\n\t\t'is-dragging': isDragged,\n\t\t'has-single-cell': ! showBlockActions,\n\t\t'is-synced': blockInformation?.isSynced,\n\t\t'is-draggable': canMove,\n\t} );\n\n\t// Only include all selected blocks if the currently clicked on block\n\t// is one of the selected blocks. This ensures that if a user attempts\n\t// to alter a block that isn't part of the selection, they're still able\n\t// to do so.\n\tconst dropdownClientIds = selectedClientIds.includes( clientId )\n\t\t? selectedClientIds\n\t\t: [ clientId ];\n\n\t// Pass in a ref to the row, so that it can be scrolled\n\t// into view when selected. For long lists, the placeholder for the\n\t// selected block is also observed, within ListViewLeafPlaceholder.\n\tuseListViewScrollIntoView( {\n\t\tisSelected,\n\t\trowItemRef: rowRef,\n\t\tselectedClientIds,\n\t} );\n\n\t// Detect if there is a block in the canvas currently being edited and multi-selection is not happening.\n\tconst currentlyEditingBlockInCanvas =\n\t\tisSelected && selectedClientIds.length === 1;\n\n\treturn (\n\t\t<ListViewLeaf\n\t\t\tclassName={ classes }\n\t\t\tonKeyDown={ onKeyDown }\n\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\tonFocus={ onMouseEnter }\n\t\t\tonBlur={ onMouseLeave }\n\t\t\tlevel={ level }\n\t\t\tposition={ position }\n\t\t\trowCount={ rowCount }\n\t\t\tpath={ path }\n\t\t\tid={ `list-view-${ listViewInstanceId }-block-${ clientId }` }\n\t\t\tdata-block={ clientId }\n\t\t\tdata-expanded={ canEdit ? isExpanded : undefined }\n\t\t\tref={ rowRef }\n\t\t>\n\t\t\t<TreeGridCell\n\t\t\t\tclassName=\"block-editor-list-view-block__contents-cell\"\n\t\t\t\tcolSpan={ colSpan }\n\t\t\t\tref={ cellRef }\n\t\t\t\taria-selected={ !! isSelected }\n\t\t\t>\n\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t<div className=\"block-editor-list-view-block__contents-container\">\n\t\t\t\t\t\t<ListViewBlockContents\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\tonClick={ selectEditorBlock }\n\t\t\t\t\t\t\tonContextMenu={ onContextMenu }\n\t\t\t\t\t\t\tonMouseDown={ onMouseDown }\n\t\t\t\t\t\t\tonToggleExpanded={ toggleExpanded }\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\tsiblingBlockCount={ siblingBlockCount }\n\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\ttabIndex={\n\t\t\t\t\t\t\t\tcurrentlyEditingBlockInCanvas ? 0 : tabIndex\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tisExpanded={ canEdit ? isExpanded : undefined }\n\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\tariaLabel={ blockAriaLabel }\n\t\t\t\t\t\t\tariaDescribedBy={ descriptionId }\n\t\t\t\t\t\t\tupdateFocusAndSelection={ updateFocusAndSelection }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<AriaReferencedText id={ descriptionId }>\n\t\t\t\t\t\t\t{ blockPositionDescription }\n\t\t\t\t\t\t</AriaReferencedText>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</TreeGridCell>\n\t\t\t{ hasRenderedMovers && (\n\t\t\t\t<>\n\t\t\t\t\t<TreeGridCell\n\t\t\t\t\t\tclassName={ moverCellClassName }\n\t\t\t\t\t\twithoutGridItem\n\t\t\t\t\t>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ showBlockActions && BlockSettingsMenu && (\n\t\t\t\t<TreeGridCell\n\t\t\t\t\tclassName={ listViewBlockSettingsClassName }\n\t\t\t\t\taria-selected={ !! isSelected }\n\t\t\t\t\tref={ settingsRef }\n\t\t\t\t>\n\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t<BlockSettingsMenu\n\t\t\t\t\t\t\tclientIds={ dropdownClientIds }\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\tlabel={ settingsAriaLabel }\n\t\t\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\t\t\tanchor: settingsPopoverAnchor, // Used to position the settings at the cursor on right-click.\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\tref,\n\t\t\t\t\t\t\t\tclassName: 'block-editor-list-view-block__menu',\n\t\t\t\t\t\t\t\ttabIndex,\n\t\t\t\t\t\t\t\tonClick: clearSettingsAnchorRect,\n\t\t\t\t\t\t\t\tonFocus,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tdisableOpenOnArrowDown\n\t\t\t\t\t\t\texpand={ expand }\n\t\t\t\t\t\t\texpandedState={ expandedState }\n\t\t\t\t\t\t\tsetInsertedBlock={ setInsertedBlock }\n\t\t\t\t\t\t\t__experimentalSelectBlock={\n\t\t\t\t\t\t\t\tupdateFocusAndSelection\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</TreeGridCell>\n\t\t\t) }\n\t\t</ListViewLeaf>\n\t);\n}\n\nexport default memo( ListViewBlock );\n"],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.MEDIA_UPLOAD_STATE_UPLOADING = exports.MEDIA_UPLOAD_STATE_SUCCEEDED = exports.MEDIA_UPLOAD_STATE_RESET = exports.MEDIA_UPLOAD_STATE_PAUSED = exports.MEDIA_UPLOAD_STATE_IDLE = exports.MEDIA_UPLOAD_STATE_FAILED = void 0;
|
|
7
|
+
const MEDIA_UPLOAD_STATE_IDLE = 0;
|
|
8
|
+
exports.MEDIA_UPLOAD_STATE_IDLE = MEDIA_UPLOAD_STATE_IDLE;
|
|
9
|
+
const MEDIA_UPLOAD_STATE_UPLOADING = 1;
|
|
10
|
+
exports.MEDIA_UPLOAD_STATE_UPLOADING = MEDIA_UPLOAD_STATE_UPLOADING;
|
|
11
|
+
const MEDIA_UPLOAD_STATE_SUCCEEDED = 2;
|
|
12
|
+
exports.MEDIA_UPLOAD_STATE_SUCCEEDED = MEDIA_UPLOAD_STATE_SUCCEEDED;
|
|
13
|
+
const MEDIA_UPLOAD_STATE_FAILED = 3;
|
|
14
|
+
exports.MEDIA_UPLOAD_STATE_FAILED = MEDIA_UPLOAD_STATE_FAILED;
|
|
15
|
+
const MEDIA_UPLOAD_STATE_RESET = 4;
|
|
16
|
+
exports.MEDIA_UPLOAD_STATE_RESET = MEDIA_UPLOAD_STATE_RESET;
|
|
17
|
+
const MEDIA_UPLOAD_STATE_PAUSED = 11;
|
|
18
|
+
exports.MEDIA_UPLOAD_STATE_PAUSED = MEDIA_UPLOAD_STATE_PAUSED;
|
|
19
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MEDIA_UPLOAD_STATE_IDLE","exports","MEDIA_UPLOAD_STATE_UPLOADING","MEDIA_UPLOAD_STATE_SUCCEEDED","MEDIA_UPLOAD_STATE_FAILED","MEDIA_UPLOAD_STATE_RESET","MEDIA_UPLOAD_STATE_PAUSED"],"sources":["@wordpress/block-editor/src/components/media-upload-progress/constants.js"],"sourcesContent":["export const MEDIA_UPLOAD_STATE_IDLE = 0;\nexport const MEDIA_UPLOAD_STATE_UPLOADING = 1;\nexport const MEDIA_UPLOAD_STATE_SUCCEEDED = 2;\nexport const MEDIA_UPLOAD_STATE_FAILED = 3;\nexport const MEDIA_UPLOAD_STATE_RESET = 4;\nexport const MEDIA_UPLOAD_STATE_PAUSED = 11;\n"],"mappings":";;;;;;AAAO,MAAMA,uBAAuB,GAAG,CAAC;AAACC,OAAA,CAAAD,uBAAA,GAAAA,uBAAA;AAClC,MAAME,4BAA4B,GAAG,CAAC;AAACD,OAAA,CAAAC,4BAAA,GAAAA,4BAAA;AACvC,MAAMC,4BAA4B,GAAG,CAAC;AAACF,OAAA,CAAAE,4BAAA,GAAAA,4BAAA;AACvC,MAAMC,yBAAyB,GAAG,CAAC;AAACH,OAAA,CAAAG,yBAAA,GAAAA,yBAAA;AACpC,MAAMC,wBAAwB,GAAG,CAAC;AAACJ,OAAA,CAAAI,wBAAA,GAAAA,wBAAA;AACnC,MAAMC,yBAAyB,GAAG,EAAE;AAACL,OAAA,CAAAK,yBAAA,GAAAA,yBAAA"}
|
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.default = exports.MediaUploadProgress =
|
|
7
|
+
exports.default = exports.MediaUploadProgress = void 0;
|
|
8
8
|
var _react = require("react");
|
|
9
9
|
var _reactNative = require("react-native");
|
|
10
10
|
var _element = require("@wordpress/element");
|
|
@@ -12,6 +12,7 @@ var _components = require("@wordpress/components");
|
|
|
12
12
|
var _i18n = require("@wordpress/i18n");
|
|
13
13
|
var _reactNativeBridge = require("@wordpress/react-native-bridge");
|
|
14
14
|
var _styles = _interopRequireDefault(require("./styles.scss"));
|
|
15
|
+
var _constants = require("./constants");
|
|
15
16
|
/**
|
|
16
17
|
* External dependencies
|
|
17
18
|
*/
|
|
@@ -24,23 +25,17 @@ var _styles = _interopRequireDefault(require("./styles.scss"));
|
|
|
24
25
|
* Internal dependencies
|
|
25
26
|
*/
|
|
26
27
|
|
|
27
|
-
const MEDIA_UPLOAD_STATE_UPLOADING = 1;
|
|
28
|
-
exports.MEDIA_UPLOAD_STATE_UPLOADING = MEDIA_UPLOAD_STATE_UPLOADING;
|
|
29
|
-
const MEDIA_UPLOAD_STATE_SUCCEEDED = 2;
|
|
30
|
-
exports.MEDIA_UPLOAD_STATE_SUCCEEDED = MEDIA_UPLOAD_STATE_SUCCEEDED;
|
|
31
|
-
const MEDIA_UPLOAD_STATE_FAILED = 3;
|
|
32
|
-
exports.MEDIA_UPLOAD_STATE_FAILED = MEDIA_UPLOAD_STATE_FAILED;
|
|
33
|
-
const MEDIA_UPLOAD_STATE_RESET = 4;
|
|
34
|
-
exports.MEDIA_UPLOAD_STATE_RESET = MEDIA_UPLOAD_STATE_RESET;
|
|
35
28
|
class MediaUploadProgress extends _element.Component {
|
|
36
29
|
constructor(props) {
|
|
37
30
|
super(props);
|
|
38
31
|
this.state = {
|
|
32
|
+
uploadState: _constants.MEDIA_UPLOAD_STATE_IDLE,
|
|
39
33
|
progress: 0,
|
|
40
34
|
isUploadInProgress: false,
|
|
41
35
|
isUploadFailed: false
|
|
42
36
|
};
|
|
43
37
|
this.mediaUpload = this.mediaUpload.bind(this);
|
|
38
|
+
this.getRetryMessage = this.getRetryMessage.bind(this);
|
|
44
39
|
}
|
|
45
40
|
componentDidMount() {
|
|
46
41
|
this.addMediaUploadListener();
|
|
@@ -52,20 +47,23 @@ class MediaUploadProgress extends _element.Component {
|
|
|
52
47
|
const {
|
|
53
48
|
mediaId
|
|
54
49
|
} = this.props;
|
|
55
|
-
if (payload.mediaId !== mediaId) {
|
|
50
|
+
if (payload.mediaId !== mediaId || payload.state === this.state.uploadState && payload.progress === this.state.progress) {
|
|
56
51
|
return;
|
|
57
52
|
}
|
|
58
53
|
switch (payload.state) {
|
|
59
|
-
case MEDIA_UPLOAD_STATE_UPLOADING:
|
|
54
|
+
case _constants.MEDIA_UPLOAD_STATE_UPLOADING:
|
|
60
55
|
this.updateMediaProgress(payload);
|
|
61
56
|
break;
|
|
62
|
-
case MEDIA_UPLOAD_STATE_SUCCEEDED:
|
|
57
|
+
case _constants.MEDIA_UPLOAD_STATE_SUCCEEDED:
|
|
63
58
|
this.finishMediaUploadWithSuccess(payload);
|
|
64
59
|
break;
|
|
65
|
-
case
|
|
60
|
+
case _constants.MEDIA_UPLOAD_STATE_PAUSED:
|
|
61
|
+
this.finishMediaUploadWithPause(payload);
|
|
62
|
+
break;
|
|
63
|
+
case _constants.MEDIA_UPLOAD_STATE_FAILED:
|
|
66
64
|
this.finishMediaUploadWithFailure(payload);
|
|
67
65
|
break;
|
|
68
|
-
case MEDIA_UPLOAD_STATE_RESET:
|
|
66
|
+
case _constants.MEDIA_UPLOAD_STATE_RESET:
|
|
69
67
|
this.mediaUploadStateReset(payload);
|
|
70
68
|
break;
|
|
71
69
|
}
|
|
@@ -73,6 +71,7 @@ class MediaUploadProgress extends _element.Component {
|
|
|
73
71
|
updateMediaProgress(payload) {
|
|
74
72
|
this.setState({
|
|
75
73
|
progress: payload.progress,
|
|
74
|
+
uploadState: payload.state,
|
|
76
75
|
isUploadInProgress: true,
|
|
77
76
|
isUploadFailed: false
|
|
78
77
|
});
|
|
@@ -82,14 +81,30 @@ class MediaUploadProgress extends _element.Component {
|
|
|
82
81
|
}
|
|
83
82
|
finishMediaUploadWithSuccess(payload) {
|
|
84
83
|
this.setState({
|
|
84
|
+
uploadState: payload.state,
|
|
85
85
|
isUploadInProgress: false
|
|
86
86
|
});
|
|
87
87
|
if (this.props.onFinishMediaUploadWithSuccess) {
|
|
88
88
|
this.props.onFinishMediaUploadWithSuccess(payload);
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
|
+
finishMediaUploadWithPause(payload) {
|
|
92
|
+
if (!this.props.enablePausedUploads) {
|
|
93
|
+
this.finishMediaUploadWithFailure(payload);
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
this.setState({
|
|
97
|
+
uploadState: payload.state,
|
|
98
|
+
isUploadInProgress: true,
|
|
99
|
+
isUploadFailed: false
|
|
100
|
+
});
|
|
101
|
+
if (this.props.onFinishMediaUploadWithFailure) {
|
|
102
|
+
this.props.onFinishMediaUploadWithFailure(payload);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
91
105
|
finishMediaUploadWithFailure(payload) {
|
|
92
106
|
this.setState({
|
|
107
|
+
uploadState: payload.state,
|
|
93
108
|
isUploadInProgress: false,
|
|
94
109
|
isUploadFailed: true
|
|
95
110
|
});
|
|
@@ -99,6 +114,7 @@ class MediaUploadProgress extends _element.Component {
|
|
|
99
114
|
}
|
|
100
115
|
mediaUploadStateReset(payload) {
|
|
101
116
|
this.setState({
|
|
117
|
+
uploadState: payload.state,
|
|
102
118
|
isUploadInProgress: false,
|
|
103
119
|
isUploadFailed: false
|
|
104
120
|
});
|
|
@@ -120,18 +136,26 @@ class MediaUploadProgress extends _element.Component {
|
|
|
120
136
|
this.subscriptionParentMediaUpload.remove();
|
|
121
137
|
}
|
|
122
138
|
}
|
|
139
|
+
getRetryMessage() {
|
|
140
|
+
if (this.state.uploadState === _constants.MEDIA_UPLOAD_STATE_PAUSED && this.props.enablePausedUploads) {
|
|
141
|
+
return (0, _i18n.__)('Waiting for connection');
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
// eslint-disable-next-line @wordpress/i18n-no-collapsible-whitespace
|
|
145
|
+
return (0, _i18n.__)('Failed to insert media.\nTap for more info.');
|
|
146
|
+
}
|
|
123
147
|
render() {
|
|
124
148
|
const {
|
|
125
149
|
renderContent = () => null
|
|
126
150
|
} = this.props;
|
|
127
151
|
const {
|
|
128
152
|
isUploadInProgress,
|
|
129
|
-
isUploadFailed
|
|
153
|
+
isUploadFailed,
|
|
154
|
+
uploadState
|
|
130
155
|
} = this.state;
|
|
131
156
|
const showSpinner = this.state.isUploadInProgress;
|
|
132
157
|
const progress = this.state.progress * 100;
|
|
133
|
-
|
|
134
|
-
const retryMessage = (0, _i18n.__)('Failed to insert media.\nTap for more info.');
|
|
158
|
+
const retryMessage = this.getRetryMessage();
|
|
135
159
|
const progressBarStyle = [_styles.default.progressBar, showSpinner || _styles.default.progressBarHidden, this.props.progressBarStyle];
|
|
136
160
|
return (0, _react.createElement)(_reactNative.View, {
|
|
137
161
|
style: [_styles.default.mediaUploadProgress, this.props.containerStyle],
|
|
@@ -143,6 +167,7 @@ class MediaUploadProgress extends _element.Component {
|
|
|
143
167
|
style: this.props.spinnerStyle,
|
|
144
168
|
testID: "spinner"
|
|
145
169
|
})), renderContent({
|
|
170
|
+
isUploadPaused: uploadState === _constants.MEDIA_UPLOAD_STATE_PAUSED && this.props.enablePausedUploads,
|
|
146
171
|
isUploadInProgress,
|
|
147
172
|
isUploadFailed,
|
|
148
173
|
retryMessage
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_element","_components","_i18n","_reactNativeBridge","_styles","_interopRequireDefault","MEDIA_UPLOAD_STATE_UPLOADING","exports","MEDIA_UPLOAD_STATE_SUCCEEDED","MEDIA_UPLOAD_STATE_FAILED","MEDIA_UPLOAD_STATE_RESET","MediaUploadProgress","Component","constructor","props","state","progress","isUploadInProgress","isUploadFailed","mediaUpload","bind","componentDidMount","addMediaUploadListener","componentWillUnmount","removeMediaUploadListener","payload","mediaId","updateMediaProgress","finishMediaUploadWithSuccess","finishMediaUploadWithFailure","mediaUploadStateReset","setState","onUpdateMediaProgress","onFinishMediaUploadWithSuccess","onFinishMediaUploadWithFailure","onMediaUploadStateReset","subscriptionParentMediaUpload","subscribeMediaUpload","remove","render","renderContent","showSpinner","retryMessage","__","progressBarStyle","styles","progressBar","progressBarHidden","_react","createElement","View","style","mediaUploadProgress","containerStyle","pointerEvents","Spinner","spinnerStyle","testID","_default","default"],"sources":["@wordpress/block-editor/src/components/media-upload-progress/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { Spinner } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { subscribeMediaUpload } from '@wordpress/react-native-bridge';\n\n/**\n * Internal dependencies\n */\nimport styles from './styles.scss';\n\nexport const MEDIA_UPLOAD_STATE_UPLOADING = 1;\nexport const MEDIA_UPLOAD_STATE_SUCCEEDED = 2;\nexport const MEDIA_UPLOAD_STATE_FAILED = 3;\nexport const MEDIA_UPLOAD_STATE_RESET = 4;\n\nexport class MediaUploadProgress extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.state = {\n\t\t\tprogress: 0,\n\t\t\tisUploadInProgress: false,\n\t\t\tisUploadFailed: false,\n\t\t};\n\n\t\tthis.mediaUpload = this.mediaUpload.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.addMediaUploadListener();\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.removeMediaUploadListener();\n\t}\n\n\tmediaUpload( payload ) {\n\t\tconst { mediaId } = this.props;\n\n\t\tif ( payload.mediaId !== mediaId ) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitch ( payload.state ) {\n\t\t\tcase MEDIA_UPLOAD_STATE_UPLOADING:\n\t\t\t\tthis.updateMediaProgress( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_UPLOAD_STATE_SUCCEEDED:\n\t\t\t\tthis.finishMediaUploadWithSuccess( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_UPLOAD_STATE_FAILED:\n\t\t\t\tthis.finishMediaUploadWithFailure( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_UPLOAD_STATE_RESET:\n\t\t\t\tthis.mediaUploadStateReset( payload );\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tupdateMediaProgress( payload ) {\n\t\tthis.setState( {\n\t\t\tprogress: payload.progress,\n\t\t\tisUploadInProgress: true,\n\t\t\tisUploadFailed: false,\n\t\t} );\n\t\tif ( this.props.onUpdateMediaProgress ) {\n\t\t\tthis.props.onUpdateMediaProgress( payload );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithSuccess( payload ) {\n\t\tthis.setState( { isUploadInProgress: false } );\n\t\tif ( this.props.onFinishMediaUploadWithSuccess ) {\n\t\t\tthis.props.onFinishMediaUploadWithSuccess( payload );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithFailure( payload ) {\n\t\tthis.setState( { isUploadInProgress: false, isUploadFailed: true } );\n\t\tif ( this.props.onFinishMediaUploadWithFailure ) {\n\t\t\tthis.props.onFinishMediaUploadWithFailure( payload );\n\t\t}\n\t}\n\n\tmediaUploadStateReset( payload ) {\n\t\tthis.setState( { isUploadInProgress: false, isUploadFailed: false } );\n\t\tif ( this.props.onMediaUploadStateReset ) {\n\t\t\tthis.props.onMediaUploadStateReset( payload );\n\t\t}\n\t}\n\n\taddMediaUploadListener() {\n\t\t// If we already have a subscription not worth doing it again.\n\t\tif ( this.subscriptionParentMediaUpload ) {\n\t\t\treturn;\n\t\t}\n\t\tthis.subscriptionParentMediaUpload = subscribeMediaUpload(\n\t\t\t( payload ) => {\n\t\t\t\tthis.mediaUpload( payload );\n\t\t\t}\n\t\t);\n\t}\n\n\tremoveMediaUploadListener() {\n\t\tif ( this.subscriptionParentMediaUpload ) {\n\t\t\tthis.subscriptionParentMediaUpload.remove();\n\t\t}\n\t}\n\n\trender() {\n\t\tconst { renderContent = () => null } = this.props;\n\t\tconst { isUploadInProgress, isUploadFailed } = this.state;\n\t\tconst showSpinner = this.state.isUploadInProgress;\n\t\tconst progress = this.state.progress * 100;\n\t\t// eslint-disable-next-line @wordpress/i18n-no-collapsible-whitespace\n\t\tconst retryMessage = __(\n\t\t\t'Failed to insert media.\\nTap for more info.'\n\t\t);\n\n\t\tconst progressBarStyle = [\n\t\t\tstyles.progressBar,\n\t\t\tshowSpinner || styles.progressBarHidden,\n\t\t\tthis.props.progressBarStyle,\n\t\t];\n\n\t\treturn (\n\t\t\t<View\n\t\t\t\tstyle={ [\n\t\t\t\t\tstyles.mediaUploadProgress,\n\t\t\t\t\tthis.props.containerStyle,\n\t\t\t\t] }\n\t\t\t\tpointerEvents=\"box-none\"\n\t\t\t>\n\t\t\t\t<View style={ progressBarStyle }>\n\t\t\t\t\t{ showSpinner && (\n\t\t\t\t\t\t<Spinner\n\t\t\t\t\t\t\tprogress={ progress }\n\t\t\t\t\t\t\tstyle={ this.props.spinnerStyle }\n\t\t\t\t\t\t\ttestID=\"spinner\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</View>\n\t\t\t\t{ renderContent( {\n\t\t\t\t\tisUploadInProgress,\n\t\t\t\t\tisUploadFailed,\n\t\t\t\t\tretryMessage,\n\t\t\t\t} ) }\n\t\t\t</View>\n\t\t);\n\t}\n}\n\nexport default MediaUploadProgress;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_element","_components","_i18n","_reactNativeBridge","_styles","_interopRequireDefault","_constants","MediaUploadProgress","Component","constructor","props","state","uploadState","MEDIA_UPLOAD_STATE_IDLE","progress","isUploadInProgress","isUploadFailed","mediaUpload","bind","getRetryMessage","componentDidMount","addMediaUploadListener","componentWillUnmount","removeMediaUploadListener","payload","mediaId","MEDIA_UPLOAD_STATE_UPLOADING","updateMediaProgress","MEDIA_UPLOAD_STATE_SUCCEEDED","finishMediaUploadWithSuccess","MEDIA_UPLOAD_STATE_PAUSED","finishMediaUploadWithPause","MEDIA_UPLOAD_STATE_FAILED","finishMediaUploadWithFailure","MEDIA_UPLOAD_STATE_RESET","mediaUploadStateReset","setState","onUpdateMediaProgress","onFinishMediaUploadWithSuccess","enablePausedUploads","onFinishMediaUploadWithFailure","onMediaUploadStateReset","subscriptionParentMediaUpload","subscribeMediaUpload","remove","__","render","renderContent","showSpinner","retryMessage","progressBarStyle","styles","progressBar","progressBarHidden","_react","createElement","View","style","mediaUploadProgress","containerStyle","pointerEvents","Spinner","spinnerStyle","testID","isUploadPaused","exports","_default","default"],"sources":["@wordpress/block-editor/src/components/media-upload-progress/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { Spinner } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { subscribeMediaUpload } from '@wordpress/react-native-bridge';\n\n/**\n * Internal dependencies\n */\nimport styles from './styles.scss';\nimport {\n\tMEDIA_UPLOAD_STATE_IDLE,\n\tMEDIA_UPLOAD_STATE_UPLOADING,\n\tMEDIA_UPLOAD_STATE_SUCCEEDED,\n\tMEDIA_UPLOAD_STATE_FAILED,\n\tMEDIA_UPLOAD_STATE_RESET,\n\tMEDIA_UPLOAD_STATE_PAUSED,\n} from './constants';\n\nexport class MediaUploadProgress extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.state = {\n\t\t\tuploadState: MEDIA_UPLOAD_STATE_IDLE,\n\t\t\tprogress: 0,\n\t\t\tisUploadInProgress: false,\n\t\t\tisUploadFailed: false,\n\t\t};\n\n\t\tthis.mediaUpload = this.mediaUpload.bind( this );\n\t\tthis.getRetryMessage = this.getRetryMessage.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.addMediaUploadListener();\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.removeMediaUploadListener();\n\t}\n\n\tmediaUpload( payload ) {\n\t\tconst { mediaId } = this.props;\n\n\t\tif (\n\t\t\tpayload.mediaId !== mediaId ||\n\t\t\t( payload.state === this.state.uploadState &&\n\t\t\t\tpayload.progress === this.state.progress )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitch ( payload.state ) {\n\t\t\tcase MEDIA_UPLOAD_STATE_UPLOADING:\n\t\t\t\tthis.updateMediaProgress( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_UPLOAD_STATE_SUCCEEDED:\n\t\t\t\tthis.finishMediaUploadWithSuccess( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_UPLOAD_STATE_PAUSED:\n\t\t\t\tthis.finishMediaUploadWithPause( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_UPLOAD_STATE_FAILED:\n\t\t\t\tthis.finishMediaUploadWithFailure( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_UPLOAD_STATE_RESET:\n\t\t\t\tthis.mediaUploadStateReset( payload );\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tupdateMediaProgress( payload ) {\n\t\tthis.setState( {\n\t\t\tprogress: payload.progress,\n\t\t\tuploadState: payload.state,\n\t\t\tisUploadInProgress: true,\n\t\t\tisUploadFailed: false,\n\t\t} );\n\t\tif ( this.props.onUpdateMediaProgress ) {\n\t\t\tthis.props.onUpdateMediaProgress( payload );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithSuccess( payload ) {\n\t\tthis.setState( {\n\t\t\tuploadState: payload.state,\n\t\t\tisUploadInProgress: false,\n\t\t} );\n\t\tif ( this.props.onFinishMediaUploadWithSuccess ) {\n\t\t\tthis.props.onFinishMediaUploadWithSuccess( payload );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithPause( payload ) {\n\t\tif ( ! this.props.enablePausedUploads ) {\n\t\t\tthis.finishMediaUploadWithFailure( payload );\n\t\t\treturn;\n\t\t}\n\n\t\tthis.setState( {\n\t\t\tuploadState: payload.state,\n\t\t\tisUploadInProgress: true,\n\t\t\tisUploadFailed: false,\n\t\t} );\n\t\tif ( this.props.onFinishMediaUploadWithFailure ) {\n\t\t\tthis.props.onFinishMediaUploadWithFailure( payload );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithFailure( payload ) {\n\t\tthis.setState( {\n\t\t\tuploadState: payload.state,\n\t\t\tisUploadInProgress: false,\n\t\t\tisUploadFailed: true,\n\t\t} );\n\t\tif ( this.props.onFinishMediaUploadWithFailure ) {\n\t\t\tthis.props.onFinishMediaUploadWithFailure( payload );\n\t\t}\n\t}\n\n\tmediaUploadStateReset( payload ) {\n\t\tthis.setState( {\n\t\t\tuploadState: payload.state,\n\t\t\tisUploadInProgress: false,\n\t\t\tisUploadFailed: false,\n\t\t} );\n\t\tif ( this.props.onMediaUploadStateReset ) {\n\t\t\tthis.props.onMediaUploadStateReset( payload );\n\t\t}\n\t}\n\n\taddMediaUploadListener() {\n\t\t// If we already have a subscription not worth doing it again.\n\t\tif ( this.subscriptionParentMediaUpload ) {\n\t\t\treturn;\n\t\t}\n\t\tthis.subscriptionParentMediaUpload = subscribeMediaUpload(\n\t\t\t( payload ) => {\n\t\t\t\tthis.mediaUpload( payload );\n\t\t\t}\n\t\t);\n\t}\n\n\tremoveMediaUploadListener() {\n\t\tif ( this.subscriptionParentMediaUpload ) {\n\t\t\tthis.subscriptionParentMediaUpload.remove();\n\t\t}\n\t}\n\n\tgetRetryMessage() {\n\t\tif (\n\t\t\tthis.state.uploadState === MEDIA_UPLOAD_STATE_PAUSED &&\n\t\t\tthis.props.enablePausedUploads\n\t\t) {\n\t\t\treturn __( 'Waiting for connection' );\n\t\t}\n\n\t\t// eslint-disable-next-line @wordpress/i18n-no-collapsible-whitespace\n\t\treturn __( 'Failed to insert media.\\nTap for more info.' );\n\t}\n\n\trender() {\n\t\tconst { renderContent = () => null } = this.props;\n\t\tconst { isUploadInProgress, isUploadFailed, uploadState } = this.state;\n\t\tconst showSpinner = this.state.isUploadInProgress;\n\t\tconst progress = this.state.progress * 100;\n\t\tconst retryMessage = this.getRetryMessage();\n\n\t\tconst progressBarStyle = [\n\t\t\tstyles.progressBar,\n\t\t\tshowSpinner || styles.progressBarHidden,\n\t\t\tthis.props.progressBarStyle,\n\t\t];\n\n\t\treturn (\n\t\t\t<View\n\t\t\t\tstyle={ [\n\t\t\t\t\tstyles.mediaUploadProgress,\n\t\t\t\t\tthis.props.containerStyle,\n\t\t\t\t] }\n\t\t\t\tpointerEvents=\"box-none\"\n\t\t\t>\n\t\t\t\t<View style={ progressBarStyle }>\n\t\t\t\t\t{ showSpinner && (\n\t\t\t\t\t\t<Spinner\n\t\t\t\t\t\t\tprogress={ progress }\n\t\t\t\t\t\t\tstyle={ this.props.spinnerStyle }\n\t\t\t\t\t\t\ttestID=\"spinner\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</View>\n\t\t\t\t{ renderContent( {\n\t\t\t\t\tisUploadPaused:\n\t\t\t\t\t\tuploadState === MEDIA_UPLOAD_STATE_PAUSED &&\n\t\t\t\t\t\tthis.props.enablePausedUploads,\n\t\t\t\t\tisUploadInProgress,\n\t\t\t\t\tisUploadFailed,\n\t\t\t\t\tretryMessage,\n\t\t\t\t} ) }\n\t\t\t</View>\n\t\t);\n\t}\n}\n\nexport default MediaUploadProgress;\n"],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ var _dom = require("@wordpress/dom");
|
|
|
14
14
|
var _keyboardShortcuts = require("@wordpress/keyboard-shortcuts");
|
|
15
15
|
var _keycodes = require("@wordpress/keycodes");
|
|
16
16
|
var _store = require("../../store");
|
|
17
|
+
var _lockUnlock = require("../../lock-unlock");
|
|
17
18
|
/**
|
|
18
19
|
* WordPress dependencies
|
|
19
20
|
*/
|
|
@@ -26,8 +27,8 @@ function hasOnlyToolbarItem(elements) {
|
|
|
26
27
|
const dataProp = 'toolbarItem';
|
|
27
28
|
return !elements.some(element => !(dataProp in element.dataset));
|
|
28
29
|
}
|
|
29
|
-
function
|
|
30
|
-
return Array.from(container.querySelectorAll('[data-toolbar-item]'));
|
|
30
|
+
function getAllFocusableToolbarItemsIn(container) {
|
|
31
|
+
return Array.from(container.querySelectorAll('[data-toolbar-item]:not([disabled]):not([aria-disabled="true"])'));
|
|
31
32
|
}
|
|
32
33
|
function hasFocusWithin(container) {
|
|
33
34
|
return container.contains(container.ownerDocument.activeElement);
|
|
@@ -125,7 +126,7 @@ function useToolbarFocus({
|
|
|
125
126
|
let raf = 0;
|
|
126
127
|
if (!initialFocusOnMount) {
|
|
127
128
|
raf = window.requestAnimationFrame(() => {
|
|
128
|
-
const items =
|
|
129
|
+
const items = getAllFocusableToolbarItemsIn(navigableToolbarRef);
|
|
129
130
|
const index = initialIndex || 0;
|
|
130
131
|
if (items[index] && hasFocusWithin(navigableToolbarRef)) {
|
|
131
132
|
items[index].focus({
|
|
@@ -142,21 +143,14 @@ function useToolbarFocus({
|
|
|
142
143
|
if (!onIndexChange || !navigableToolbarRef) return;
|
|
143
144
|
// When the toolbar element is unmounted and onIndexChange is passed, we
|
|
144
145
|
// pass the focused toolbar item index so it can be hydrated later.
|
|
145
|
-
const items =
|
|
146
|
+
const items = getAllFocusableToolbarItemsIn(navigableToolbarRef);
|
|
146
147
|
const index = items.findIndex(item => item.tabIndex === 0);
|
|
147
148
|
onIndexChange(index);
|
|
148
149
|
};
|
|
149
|
-
}, [initialIndex, initialFocusOnMount, toolbarRef]);
|
|
150
|
+
}, [initialIndex, initialFocusOnMount, onIndexChange, toolbarRef]);
|
|
150
151
|
const {
|
|
151
|
-
|
|
152
|
-
} = (0, _data.useSelect)(
|
|
153
|
-
const {
|
|
154
|
-
getLastFocus
|
|
155
|
-
} = select(_store.store);
|
|
156
|
-
return {
|
|
157
|
-
lastFocus: getLastFocus()
|
|
158
|
-
};
|
|
159
|
-
}, []);
|
|
152
|
+
getLastFocus
|
|
153
|
+
} = (0, _lockUnlock.unlock)((0, _data.useSelect)(_store.store));
|
|
160
154
|
/**
|
|
161
155
|
* Handles returning focus to the block editor canvas when pressing escape.
|
|
162
156
|
*/
|
|
@@ -164,6 +158,7 @@ function useToolbarFocus({
|
|
|
164
158
|
const navigableToolbarRef = toolbarRef.current;
|
|
165
159
|
if (focusEditorOnEscape) {
|
|
166
160
|
const handleKeyDown = event => {
|
|
161
|
+
const lastFocus = getLastFocus();
|
|
167
162
|
if (event.keyCode === _keycodes.ESCAPE && lastFocus?.current) {
|
|
168
163
|
// Focus the last focused element when pressing escape.
|
|
169
164
|
event.preventDefault();
|
|
@@ -175,7 +170,7 @@ function useToolbarFocus({
|
|
|
175
170
|
navigableToolbarRef.removeEventListener('keydown', handleKeyDown);
|
|
176
171
|
};
|
|
177
172
|
}
|
|
178
|
-
}, [focusEditorOnEscape,
|
|
173
|
+
}, [focusEditorOnEscape, getLastFocus, toolbarRef]);
|
|
179
174
|
}
|
|
180
175
|
function NavigableToolbar({
|
|
181
176
|
children,
|
|
@@ -191,9 +186,9 @@ function NavigableToolbar({
|
|
|
191
186
|
useToolbarFocus({
|
|
192
187
|
toolbarRef,
|
|
193
188
|
focusOnMount,
|
|
194
|
-
isAccessibleToolbar,
|
|
195
189
|
defaultIndex: initialIndex,
|
|
196
190
|
onIndexChange,
|
|
191
|
+
isAccessibleToolbar,
|
|
197
192
|
shouldUseKeyboardFocusShortcut,
|
|
198
193
|
focusEditorOnEscape
|
|
199
194
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_element","_data","_deprecated","_interopRequireDefault","_dom","_keyboardShortcuts","_keycodes","_store","hasOnlyToolbarItem","elements","dataProp","some","element","dataset","getAllToolbarItemsIn","container","Array","from","querySelectorAll","hasFocusWithin","contains","ownerDocument","activeElement","focusFirstTabbableIn","firstTabbable","focus","tabbable","find","preventScroll","useIsAccessibleToolbar","toolbarRef","initialAccessibleToolbarState","isAccessibleToolbar","setIsAccessibleToolbar","useState","determineIsAccessibleToolbar","useCallback","tabbables","current","onlyToolbarItem","deprecated","since","alternative","link","useLayoutEffect","observer","window","MutationObserver","observe","childList","subtree","disconnect","useToolbarFocus","focusOnMount","defaultIndex","onIndexChange","shouldUseKeyboardFocusShortcut","focusEditorOnEscape","initialFocusOnMount","initialIndex","focusToolbar","focusToolbarViaShortcut","useShortcut","useEffect","navigableToolbarRef","raf","requestAnimationFrame","items","index","cancelAnimationFrame","findIndex","item","tabIndex","lastFocus","useSelect","select","getLastFocus","blockEditorStore","handleKeyDown","event","keyCode","ESCAPE","preventDefault","addEventListener","removeEventListener","NavigableToolbar","children","__experimentalInitialIndex","__experimentalOnIndexChange","props","useRef","_react","createElement","Toolbar","label","ref","NavigableMenu","orientation","role"],"sources":["@wordpress/block-editor/src/components/navigable-toolbar/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { NavigableMenu, Toolbar } from '@wordpress/components';\nimport {\n\tuseState,\n\tuseRef,\n\tuseLayoutEffect,\n\tuseEffect,\n\tuseCallback,\n} from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport deprecated from '@wordpress/deprecated';\nimport { focus } from '@wordpress/dom';\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\nimport { ESCAPE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nfunction hasOnlyToolbarItem( elements ) {\n\tconst dataProp = 'toolbarItem';\n\treturn ! elements.some( ( element ) => ! ( dataProp in element.dataset ) );\n}\n\nfunction getAllToolbarItemsIn( container ) {\n\treturn Array.from( container.querySelectorAll( '[data-toolbar-item]' ) );\n}\n\nfunction hasFocusWithin( container ) {\n\treturn container.contains( container.ownerDocument.activeElement );\n}\n\nfunction focusFirstTabbableIn( container ) {\n\tconst [ firstTabbable ] = focus.tabbable.find( container );\n\n\tif ( firstTabbable ) {\n\t\tfirstTabbable.focus( {\n\t\t\t// When focusing newly mounted toolbars,\n\t\t\t// the position of the popover is often not right on the first render\n\t\t\t// This prevents the layout shifts when focusing the dialogs.\n\t\t\tpreventScroll: true,\n\t\t} );\n\t}\n}\n\nfunction useIsAccessibleToolbar( toolbarRef ) {\n\t/*\n\t * By default, we'll assume the starting accessible state of the Toolbar\n\t * is true, as it seems to be the most common case.\n\t *\n\t * Transitioning from an (initial) false to true state causes the\n\t * <Toolbar /> component to mount twice, which is causing undesired\n\t * side-effects. These side-effects appear to only affect certain\n\t * E2E tests.\n\t *\n\t * This was initial discovered in this pull-request:\n\t * https://github.com/WordPress/gutenberg/pull/23425\n\t */\n\tconst initialAccessibleToolbarState = true;\n\n\t// By default, it's gonna render NavigableMenu. If all the tabbable elements\n\t// inside the toolbar are ToolbarItem components (or derived components like\n\t// ToolbarButton), then we can wrap them with the accessible Toolbar\n\t// component.\n\tconst [ isAccessibleToolbar, setIsAccessibleToolbar ] = useState(\n\t\tinitialAccessibleToolbarState\n\t);\n\n\tconst determineIsAccessibleToolbar = useCallback( () => {\n\t\tconst tabbables = focus.tabbable.find( toolbarRef.current );\n\t\tconst onlyToolbarItem = hasOnlyToolbarItem( tabbables );\n\t\tif ( ! onlyToolbarItem ) {\n\t\t\tdeprecated( 'Using custom components as toolbar controls', {\n\t\t\t\tsince: '5.6',\n\t\t\t\talternative:\n\t\t\t\t\t'ToolbarItem, ToolbarButton or ToolbarDropdownMenu components',\n\t\t\t\tlink: 'https://developer.wordpress.org/block-editor/components/toolbar-button/#inside-blockcontrols',\n\t\t\t} );\n\t\t}\n\t\tsetIsAccessibleToolbar( onlyToolbarItem );\n\t}, [ toolbarRef ] );\n\n\tuseLayoutEffect( () => {\n\t\t// Toolbar buttons may be rendered asynchronously, so we use\n\t\t// MutationObserver to check if the toolbar subtree has been modified.\n\t\tconst observer = new window.MutationObserver(\n\t\t\tdetermineIsAccessibleToolbar\n\t\t);\n\t\tobserver.observe( toolbarRef.current, {\n\t\t\tchildList: true,\n\t\t\tsubtree: true,\n\t\t} );\n\t\treturn () => observer.disconnect();\n\t}, [ determineIsAccessibleToolbar, isAccessibleToolbar, toolbarRef ] );\n\n\treturn isAccessibleToolbar;\n}\n\nfunction useToolbarFocus( {\n\ttoolbarRef,\n\tfocusOnMount,\n\tisAccessibleToolbar,\n\tdefaultIndex,\n\tonIndexChange,\n\tshouldUseKeyboardFocusShortcut,\n\tfocusEditorOnEscape,\n} ) {\n\t// Make sure we don't use modified versions of this prop.\n\tconst [ initialFocusOnMount ] = useState( focusOnMount );\n\tconst [ initialIndex ] = useState( defaultIndex );\n\n\tconst focusToolbar = useCallback( () => {\n\t\tfocusFirstTabbableIn( toolbarRef.current );\n\t}, [ toolbarRef ] );\n\n\tconst focusToolbarViaShortcut = () => {\n\t\tif ( shouldUseKeyboardFocusShortcut ) {\n\t\t\tfocusToolbar();\n\t\t}\n\t};\n\n\t// Focus on toolbar when pressing alt+F10 when the toolbar is visible.\n\tuseShortcut( 'core/block-editor/focus-toolbar', focusToolbarViaShortcut );\n\n\tuseEffect( () => {\n\t\tif ( initialFocusOnMount ) {\n\t\t\tfocusToolbar();\n\t\t}\n\t}, [ isAccessibleToolbar, initialFocusOnMount, focusToolbar ] );\n\n\tuseEffect( () => {\n\t\t// Store ref so we have access on useEffect cleanup: https://legacy.reactjs.org/blog/2020/08/10/react-v17-rc.html#effect-cleanup-timing\n\t\tconst navigableToolbarRef = toolbarRef.current;\n\t\t// If initialIndex is passed, we focus on that toolbar item when the\n\t\t// toolbar gets mounted and initial focus is not forced.\n\t\t// We have to wait for the next browser paint because block controls aren't\n\t\t// rendered right away when the toolbar gets mounted.\n\t\tlet raf = 0;\n\t\tif ( ! initialFocusOnMount ) {\n\t\t\traf = window.requestAnimationFrame( () => {\n\t\t\t\tconst items = getAllToolbarItemsIn( navigableToolbarRef );\n\t\t\t\tconst index = initialIndex || 0;\n\t\t\t\tif ( items[ index ] && hasFocusWithin( navigableToolbarRef ) ) {\n\t\t\t\t\titems[ index ].focus( {\n\t\t\t\t\t\t// When focusing newly mounted toolbars,\n\t\t\t\t\t\t// the position of the popover is often not right on the first render\n\t\t\t\t\t\t// This prevents the layout shifts when focusing the dialogs.\n\t\t\t\t\t\tpreventScroll: true,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t\treturn () => {\n\t\t\twindow.cancelAnimationFrame( raf );\n\t\t\tif ( ! onIndexChange || ! navigableToolbarRef ) return;\n\t\t\t// When the toolbar element is unmounted and onIndexChange is passed, we\n\t\t\t// pass the focused toolbar item index so it can be hydrated later.\n\t\t\tconst items = getAllToolbarItemsIn( navigableToolbarRef );\n\t\t\tconst index = items.findIndex( ( item ) => item.tabIndex === 0 );\n\t\t\tonIndexChange( index );\n\t\t};\n\t}, [ initialIndex, initialFocusOnMount, toolbarRef ] );\n\n\tconst { lastFocus } = useSelect( ( select ) => {\n\t\tconst { getLastFocus } = select( blockEditorStore );\n\t\treturn {\n\t\t\tlastFocus: getLastFocus(),\n\t\t};\n\t}, [] );\n\t/**\n\t * Handles returning focus to the block editor canvas when pressing escape.\n\t */\n\tuseEffect( () => {\n\t\tconst navigableToolbarRef = toolbarRef.current;\n\n\t\tif ( focusEditorOnEscape ) {\n\t\t\tconst handleKeyDown = ( event ) => {\n\t\t\t\tif ( event.keyCode === ESCAPE && lastFocus?.current ) {\n\t\t\t\t\t// Focus the last focused element when pressing escape.\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tlastFocus.current.focus();\n\t\t\t\t}\n\t\t\t};\n\t\t\tnavigableToolbarRef.addEventListener( 'keydown', handleKeyDown );\n\t\t\treturn () => {\n\t\t\t\tnavigableToolbarRef.removeEventListener(\n\t\t\t\t\t'keydown',\n\t\t\t\t\thandleKeyDown\n\t\t\t\t);\n\t\t\t};\n\t\t}\n\t}, [ focusEditorOnEscape, lastFocus, toolbarRef ] );\n}\n\nexport default function NavigableToolbar( {\n\tchildren,\n\tfocusOnMount,\n\tfocusEditorOnEscape = false,\n\tshouldUseKeyboardFocusShortcut = true,\n\t__experimentalInitialIndex: initialIndex,\n\t__experimentalOnIndexChange: onIndexChange,\n\t...props\n} ) {\n\tconst toolbarRef = useRef();\n\tconst isAccessibleToolbar = useIsAccessibleToolbar( toolbarRef );\n\n\tuseToolbarFocus( {\n\t\ttoolbarRef,\n\t\tfocusOnMount,\n\t\tisAccessibleToolbar,\n\t\tdefaultIndex: initialIndex,\n\t\tonIndexChange,\n\t\tshouldUseKeyboardFocusShortcut,\n\t\tfocusEditorOnEscape,\n\t} );\n\n\tif ( isAccessibleToolbar ) {\n\t\treturn (\n\t\t\t<Toolbar\n\t\t\t\tlabel={ props[ 'aria-label' ] }\n\t\t\t\tref={ toolbarRef }\n\t\t\t\t{ ...props }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</Toolbar>\n\t\t);\n\t}\n\n\treturn (\n\t\t<NavigableMenu\n\t\t\torientation=\"horizontal\"\n\t\t\trole=\"toolbar\"\n\t\t\tref={ toolbarRef }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ children }\n\t\t</NavigableMenu>\n\t);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_components","require","_element","_data","_deprecated","_interopRequireDefault","_dom","_keyboardShortcuts","_keycodes","_store","_lockUnlock","hasOnlyToolbarItem","elements","dataProp","some","element","dataset","getAllFocusableToolbarItemsIn","container","Array","from","querySelectorAll","hasFocusWithin","contains","ownerDocument","activeElement","focusFirstTabbableIn","firstTabbable","focus","tabbable","find","preventScroll","useIsAccessibleToolbar","toolbarRef","initialAccessibleToolbarState","isAccessibleToolbar","setIsAccessibleToolbar","useState","determineIsAccessibleToolbar","useCallback","tabbables","current","onlyToolbarItem","deprecated","since","alternative","link","useLayoutEffect","observer","window","MutationObserver","observe","childList","subtree","disconnect","useToolbarFocus","focusOnMount","defaultIndex","onIndexChange","shouldUseKeyboardFocusShortcut","focusEditorOnEscape","initialFocusOnMount","initialIndex","focusToolbar","focusToolbarViaShortcut","useShortcut","useEffect","navigableToolbarRef","raf","requestAnimationFrame","items","index","cancelAnimationFrame","findIndex","item","tabIndex","getLastFocus","unlock","useSelect","blockEditorStore","handleKeyDown","event","lastFocus","keyCode","ESCAPE","preventDefault","addEventListener","removeEventListener","NavigableToolbar","children","__experimentalInitialIndex","__experimentalOnIndexChange","props","useRef","_react","createElement","Toolbar","label","ref","NavigableMenu","orientation","role"],"sources":["@wordpress/block-editor/src/components/navigable-toolbar/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { NavigableMenu, Toolbar } from '@wordpress/components';\nimport {\n\tuseState,\n\tuseRef,\n\tuseLayoutEffect,\n\tuseEffect,\n\tuseCallback,\n} from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport deprecated from '@wordpress/deprecated';\nimport { focus } from '@wordpress/dom';\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\nimport { ESCAPE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nfunction hasOnlyToolbarItem( elements ) {\n\tconst dataProp = 'toolbarItem';\n\treturn ! elements.some( ( element ) => ! ( dataProp in element.dataset ) );\n}\n\nfunction getAllFocusableToolbarItemsIn( container ) {\n\treturn Array.from(\n\t\tcontainer.querySelectorAll(\n\t\t\t'[data-toolbar-item]:not([disabled]):not([aria-disabled=\"true\"])'\n\t\t)\n\t);\n}\n\nfunction hasFocusWithin( container ) {\n\treturn container.contains( container.ownerDocument.activeElement );\n}\n\nfunction focusFirstTabbableIn( container ) {\n\tconst [ firstTabbable ] = focus.tabbable.find( container );\n\n\tif ( firstTabbable ) {\n\t\tfirstTabbable.focus( {\n\t\t\t// When focusing newly mounted toolbars,\n\t\t\t// the position of the popover is often not right on the first render\n\t\t\t// This prevents the layout shifts when focusing the dialogs.\n\t\t\tpreventScroll: true,\n\t\t} );\n\t}\n}\n\nfunction useIsAccessibleToolbar( toolbarRef ) {\n\t/*\n\t * By default, we'll assume the starting accessible state of the Toolbar\n\t * is true, as it seems to be the most common case.\n\t *\n\t * Transitioning from an (initial) false to true state causes the\n\t * <Toolbar /> component to mount twice, which is causing undesired\n\t * side-effects. These side-effects appear to only affect certain\n\t * E2E tests.\n\t *\n\t * This was initial discovered in this pull-request:\n\t * https://github.com/WordPress/gutenberg/pull/23425\n\t */\n\tconst initialAccessibleToolbarState = true;\n\n\t// By default, it's gonna render NavigableMenu. If all the tabbable elements\n\t// inside the toolbar are ToolbarItem components (or derived components like\n\t// ToolbarButton), then we can wrap them with the accessible Toolbar\n\t// component.\n\tconst [ isAccessibleToolbar, setIsAccessibleToolbar ] = useState(\n\t\tinitialAccessibleToolbarState\n\t);\n\n\tconst determineIsAccessibleToolbar = useCallback( () => {\n\t\tconst tabbables = focus.tabbable.find( toolbarRef.current );\n\t\tconst onlyToolbarItem = hasOnlyToolbarItem( tabbables );\n\t\tif ( ! onlyToolbarItem ) {\n\t\t\tdeprecated( 'Using custom components as toolbar controls', {\n\t\t\t\tsince: '5.6',\n\t\t\t\talternative:\n\t\t\t\t\t'ToolbarItem, ToolbarButton or ToolbarDropdownMenu components',\n\t\t\t\tlink: 'https://developer.wordpress.org/block-editor/components/toolbar-button/#inside-blockcontrols',\n\t\t\t} );\n\t\t}\n\t\tsetIsAccessibleToolbar( onlyToolbarItem );\n\t}, [ toolbarRef ] );\n\n\tuseLayoutEffect( () => {\n\t\t// Toolbar buttons may be rendered asynchronously, so we use\n\t\t// MutationObserver to check if the toolbar subtree has been modified.\n\t\tconst observer = new window.MutationObserver(\n\t\t\tdetermineIsAccessibleToolbar\n\t\t);\n\t\tobserver.observe( toolbarRef.current, {\n\t\t\tchildList: true,\n\t\t\tsubtree: true,\n\t\t} );\n\t\treturn () => observer.disconnect();\n\t}, [ determineIsAccessibleToolbar, isAccessibleToolbar, toolbarRef ] );\n\n\treturn isAccessibleToolbar;\n}\n\nfunction useToolbarFocus( {\n\ttoolbarRef,\n\tfocusOnMount,\n\tisAccessibleToolbar,\n\tdefaultIndex,\n\tonIndexChange,\n\tshouldUseKeyboardFocusShortcut,\n\tfocusEditorOnEscape,\n} ) {\n\t// Make sure we don't use modified versions of this prop.\n\tconst [ initialFocusOnMount ] = useState( focusOnMount );\n\tconst [ initialIndex ] = useState( defaultIndex );\n\n\tconst focusToolbar = useCallback( () => {\n\t\tfocusFirstTabbableIn( toolbarRef.current );\n\t}, [ toolbarRef ] );\n\n\tconst focusToolbarViaShortcut = () => {\n\t\tif ( shouldUseKeyboardFocusShortcut ) {\n\t\t\tfocusToolbar();\n\t\t}\n\t};\n\n\t// Focus on toolbar when pressing alt+F10 when the toolbar is visible.\n\tuseShortcut( 'core/block-editor/focus-toolbar', focusToolbarViaShortcut );\n\n\tuseEffect( () => {\n\t\tif ( initialFocusOnMount ) {\n\t\t\tfocusToolbar();\n\t\t}\n\t}, [ isAccessibleToolbar, initialFocusOnMount, focusToolbar ] );\n\n\tuseEffect( () => {\n\t\t// Store ref so we have access on useEffect cleanup: https://legacy.reactjs.org/blog/2020/08/10/react-v17-rc.html#effect-cleanup-timing\n\t\tconst navigableToolbarRef = toolbarRef.current;\n\t\t// If initialIndex is passed, we focus on that toolbar item when the\n\t\t// toolbar gets mounted and initial focus is not forced.\n\t\t// We have to wait for the next browser paint because block controls aren't\n\t\t// rendered right away when the toolbar gets mounted.\n\t\tlet raf = 0;\n\t\tif ( ! initialFocusOnMount ) {\n\t\t\traf = window.requestAnimationFrame( () => {\n\t\t\t\tconst items =\n\t\t\t\t\tgetAllFocusableToolbarItemsIn( navigableToolbarRef );\n\t\t\t\tconst index = initialIndex || 0;\n\t\t\t\tif ( items[ index ] && hasFocusWithin( navigableToolbarRef ) ) {\n\t\t\t\t\titems[ index ].focus( {\n\t\t\t\t\t\t// When focusing newly mounted toolbars,\n\t\t\t\t\t\t// the position of the popover is often not right on the first render\n\t\t\t\t\t\t// This prevents the layout shifts when focusing the dialogs.\n\t\t\t\t\t\tpreventScroll: true,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t\treturn () => {\n\t\t\twindow.cancelAnimationFrame( raf );\n\t\t\tif ( ! onIndexChange || ! navigableToolbarRef ) return;\n\t\t\t// When the toolbar element is unmounted and onIndexChange is passed, we\n\t\t\t// pass the focused toolbar item index so it can be hydrated later.\n\t\t\tconst items = getAllFocusableToolbarItemsIn( navigableToolbarRef );\n\t\t\tconst index = items.findIndex( ( item ) => item.tabIndex === 0 );\n\t\t\tonIndexChange( index );\n\t\t};\n\t}, [ initialIndex, initialFocusOnMount, onIndexChange, toolbarRef ] );\n\n\tconst { getLastFocus } = unlock( useSelect( blockEditorStore ) );\n\t/**\n\t * Handles returning focus to the block editor canvas when pressing escape.\n\t */\n\tuseEffect( () => {\n\t\tconst navigableToolbarRef = toolbarRef.current;\n\n\t\tif ( focusEditorOnEscape ) {\n\t\t\tconst handleKeyDown = ( event ) => {\n\t\t\t\tconst lastFocus = getLastFocus();\n\t\t\t\tif ( event.keyCode === ESCAPE && lastFocus?.current ) {\n\t\t\t\t\t// Focus the last focused element when pressing escape.\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tlastFocus.current.focus();\n\t\t\t\t}\n\t\t\t};\n\t\t\tnavigableToolbarRef.addEventListener( 'keydown', handleKeyDown );\n\t\t\treturn () => {\n\t\t\t\tnavigableToolbarRef.removeEventListener(\n\t\t\t\t\t'keydown',\n\t\t\t\t\thandleKeyDown\n\t\t\t\t);\n\t\t\t};\n\t\t}\n\t}, [ focusEditorOnEscape, getLastFocus, toolbarRef ] );\n}\n\nexport default function NavigableToolbar( {\n\tchildren,\n\tfocusOnMount,\n\tfocusEditorOnEscape = false,\n\tshouldUseKeyboardFocusShortcut = true,\n\t__experimentalInitialIndex: initialIndex,\n\t__experimentalOnIndexChange: onIndexChange,\n\t...props\n} ) {\n\tconst toolbarRef = useRef();\n\tconst isAccessibleToolbar = useIsAccessibleToolbar( toolbarRef );\n\n\tuseToolbarFocus( {\n\t\ttoolbarRef,\n\t\tfocusOnMount,\n\t\tdefaultIndex: initialIndex,\n\t\tonIndexChange,\n\t\tisAccessibleToolbar,\n\t\tshouldUseKeyboardFocusShortcut,\n\t\tfocusEditorOnEscape,\n\t} );\n\n\tif ( isAccessibleToolbar ) {\n\t\treturn (\n\t\t\t<Toolbar\n\t\t\t\tlabel={ props[ 'aria-label' ] }\n\t\t\t\tref={ toolbarRef }\n\t\t\t\t{ ...props }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</Toolbar>\n\t\t);\n\t}\n\n\treturn (\n\t\t<NavigableMenu\n\t\t\torientation=\"horizontal\"\n\t\t\trole=\"toolbar\"\n\t\t\tref={ toolbarRef }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ children }\n\t\t</NavigableMenu>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -8,7 +8,8 @@ exports.default = void 0;
|
|
|
8
8
|
var _react = require("react");
|
|
9
9
|
var _reactNative = require("react-native");
|
|
10
10
|
var _element = require("@wordpress/element");
|
|
11
|
-
var
|
|
11
|
+
var _components = require("@wordpress/components");
|
|
12
|
+
var _richText = _interopRequireDefault(require("../rich-text"));
|
|
12
13
|
var _style = _interopRequireDefault(require("./style.scss"));
|
|
13
14
|
/**
|
|
14
15
|
* External dependencies
|
|
@@ -22,6 +23,10 @@ var _style = _interopRequireDefault(require("./style.scss"));
|
|
|
22
23
|
* Internal dependencies
|
|
23
24
|
*/
|
|
24
25
|
|
|
26
|
+
/**
|
|
27
|
+
* Internal dependencies
|
|
28
|
+
*/
|
|
29
|
+
|
|
25
30
|
class PlainText extends _element.Component {
|
|
26
31
|
constructor() {
|
|
27
32
|
super(...arguments);
|
|
@@ -78,7 +83,7 @@ class PlainText extends _element.Component {
|
|
|
78
83
|
width
|
|
79
84
|
};
|
|
80
85
|
return {
|
|
81
|
-
fontSize: parseFloat((0,
|
|
86
|
+
fontSize: parseFloat((0, _components.getPxFromCssUnit)(style.fontSize, cssUnitOptions))
|
|
82
87
|
};
|
|
83
88
|
}
|
|
84
89
|
replaceLineBreakTags(value) {
|
|
@@ -123,7 +128,7 @@ class PlainText extends _element.Component {
|
|
|
123
128
|
fontSize: style?.fontSize,
|
|
124
129
|
fontWeight: style?.fontWeight
|
|
125
130
|
};
|
|
126
|
-
return (0, _react.createElement)(
|
|
131
|
+
return (0, _react.createElement)(_richText.default, {
|
|
127
132
|
...otherProps,
|
|
128
133
|
...disableFormattingProps,
|
|
129
134
|
...forcePlainTextProps,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_element","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_element","_components","_richText","_interopRequireDefault","_style","PlainText","Component","constructor","arguments","isAndroid","Platform","OS","onChangeTextInput","bind","onChangeRichText","componentDidMount","_input","isFocused","props","isSelected","timeoutID","setTimeout","focus","componentDidUpdate","prevProps","blur","componentWillUnmount","clearTimeout","getFontSize","style","fontSize","width","height","Dimensions","get","cssUnitOptions","parseFloat","getPxFromCssUnit","replaceLineBreakTags","value","replace","RegExp","event","onChange","nativeEvent","text","render","__experimentalVersion","onFocus","otherProps","textStyles","styles","disableFormattingProps","withoutInteractiveFormatting","disableEditingMenu","__unstableDisableFormats","disableSuggestions","forcePlainTextProps","preserveWhiteSpace","__unstablePastePlainText","multiline","fontProps","fontFamily","fontWeight","_react","createElement","default","identifier","unstableOnFocus","TextInput","ref","x","onBlur","scrollEnabled","exports"],"sources":["@wordpress/block-editor/src/components/plain-text/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { TextInput, Platform, Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { getPxFromCssUnit } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport RichText from '../rich-text';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nexport default class PlainText extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.isAndroid = Platform.OS === 'android';\n\n\t\tthis.onChangeTextInput = this.onChangeTextInput.bind( this );\n\t\tthis.onChangeRichText = this.onChangeRichText.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\t// If isSelected is true, we should request the focus on this TextInput.\n\t\tif (\n\t\t\tthis._input &&\n\t\t\tthis._input.isFocused() === false &&\n\t\t\tthis.props.isSelected\n\t\t) {\n\t\t\tif ( this.isAndroid ) {\n\t\t\t\t/*\n\t\t\t\t * There seems to be an issue in React Native where the keyboard doesn't show if called shortly after rendering.\n\t\t\t\t * As a common work around this delay is used.\n\t\t\t\t * https://github.com/facebook/react-native/issues/19366#issuecomment-400603928\n\t\t\t\t */\n\t\t\t\tthis.timeoutID = setTimeout( () => {\n\t\t\t\t\tthis._input.focus();\n\t\t\t\t}, 100 );\n\t\t\t} else {\n\t\t\t\tthis._input.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tif ( ! this.props.isSelected && prevProps.isSelected ) {\n\t\t\tthis._input?.blur();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif ( this.isAndroid ) {\n\t\t\tclearTimeout( this.timeoutID );\n\t\t}\n\t}\n\n\tfocus() {\n\t\tthis._input?.focus();\n\t}\n\n\tblur() {\n\t\tthis._input?.blur();\n\t}\n\n\tgetFontSize() {\n\t\tconst { style } = this.props;\n\n\t\tif ( ! style?.fontSize ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { width, height } = Dimensions.get( 'window' );\n\t\tconst cssUnitOptions = { height, width };\n\n\t\treturn {\n\t\t\tfontSize: parseFloat(\n\t\t\t\tgetPxFromCssUnit( style.fontSize, cssUnitOptions )\n\t\t\t),\n\t\t};\n\t}\n\n\treplaceLineBreakTags( value ) {\n\t\treturn value?.replace( RegExp( '<br>', 'gim' ), '\\n' );\n\t}\n\n\tonChangeTextInput( event ) {\n\t\tconst { onChange } = this.props;\n\t\tonChange( event.nativeEvent.text );\n\t}\n\n\tonChangeRichText( value ) {\n\t\tconst { onChange } = this.props;\n\t\t// The <br> tags have to be replaced with new line characters\n\t\t// as the content of plain text shouldn't contain HTML tags.\n\t\tonChange( this.replaceLineBreakTags( value ) );\n\t}\n\n\trender() {\n\t\tconst { style, __experimentalVersion, onFocus, ...otherProps } =\n\t\t\tthis.props;\n\t\tconst textStyles = [\n\t\t\tstyle || styles[ 'block-editor-plain-text' ],\n\t\t\tthis.getFontSize(),\n\t\t];\n\n\t\tif ( __experimentalVersion === 2 ) {\n\t\t\tconst disableFormattingProps = {\n\t\t\t\twithoutInteractiveFormatting: true,\n\t\t\t\tdisableEditingMenu: true,\n\t\t\t\t__unstableDisableFormats: true,\n\t\t\t\tdisableSuggestions: true,\n\t\t\t};\n\n\t\t\tconst forcePlainTextProps = {\n\t\t\t\tpreserveWhiteSpace: true,\n\t\t\t\t__unstablePastePlainText: true,\n\t\t\t\tmultiline: false,\n\t\t\t};\n\n\t\t\tconst fontProps = {\n\t\t\t\tfontFamily: style?.fontFamily,\n\t\t\t\tfontSize: style?.fontSize,\n\t\t\t\tfontWeight: style?.fontWeight,\n\t\t\t};\n\n\t\t\treturn (\n\t\t\t\t<RichText\n\t\t\t\t\t{ ...otherProps }\n\t\t\t\t\t{ ...disableFormattingProps }\n\t\t\t\t\t{ ...forcePlainTextProps }\n\t\t\t\t\t{ ...fontProps }\n\t\t\t\t\tidentifier=\"content\"\n\t\t\t\t\tstyle={ style }\n\t\t\t\t\tonChange={ this.onChangeRichText }\n\t\t\t\t\tunstableOnFocus={ onFocus }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<TextInput\n\t\t\t\t{ ...this.props }\n\t\t\t\tref={ ( x ) => ( this._input = x ) }\n\t\t\t\tonChange={ this.onChangeTextInput }\n\t\t\t\tonFocus={ this.props.onFocus } // Always assign onFocus as a props.\n\t\t\t\tonBlur={ this.props.onBlur } // Always assign onBlur as a props.\n\t\t\t\tfontFamily={\n\t\t\t\t\t( this.props.style && this.props.style.fontFamily ) ||\n\t\t\t\t\tstyles[ 'block-editor-plain-text' ].fontFamily\n\t\t\t\t}\n\t\t\t\tstyle={ textStyles }\n\t\t\t\tscrollEnabled={ false }\n\t\t\t/>\n\t\t);\n\t}\n}\n"],"mappings":"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"}
|