@wordpress/block-editor 7.0.1 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/README.md +47 -4
- package/build/components/autocomplete/index.js +1 -1
- package/build/components/autocomplete/index.js.map +1 -1
- package/build/components/block-actions/index.js +8 -4
- package/build/components/block-actions/index.js.map +1 -1
- package/build/components/block-alignment-control/ui.js +61 -14
- package/build/components/block-alignment-control/ui.js.map +1 -1
- package/build/components/block-alignment-control/use-available-alignments.js +25 -3
- package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
- package/build/components/block-content-overlay/index.js +2 -4
- package/build/components/block-content-overlay/index.js.map +1 -1
- package/build/components/block-controls/fill.js +6 -6
- package/build/components/block-controls/fill.js.map +1 -1
- package/build/components/block-controls/groups.js +3 -1
- package/build/components/block-controls/groups.js.map +1 -1
- package/build/components/block-controls/hook.js +57 -0
- package/build/components/block-controls/hook.js.map +1 -0
- package/build/components/block-edit/context.js +6 -5
- package/build/components/block-edit/context.js.map +1 -1
- package/build/components/block-edit/edit.js +1 -1
- package/build/components/block-edit/edit.js.map +1 -1
- package/build/components/block-icon/index.js +5 -1
- package/build/components/block-icon/index.js.map +1 -1
- package/build/components/block-icon/index.native.js +13 -9
- package/build/components/block-icon/index.native.js.map +1 -1
- package/build/components/block-inspector/index.js +14 -7
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block-html.js +5 -0
- package/build/components/block-list/block-html.js.map +1 -1
- package/build/components/block-list/block-list-item.native.js +31 -12
- package/build/components/block-list/block-list-item.native.js.map +1 -1
- package/build/components/block-list/block-selection-button.native.js +4 -4
- package/build/components/block-list/block-selection-button.native.js.map +1 -1
- package/build/components/block-list/block.js +15 -9
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +6 -7
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/grid-item.native.js +68 -0
- package/build/components/block-list/grid-item.native.js.map +1 -0
- package/build/components/block-list/index.js +19 -15
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list/index.native.js +13 -9
- package/build/components/block-list/index.native.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +6 -6
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-custom-class-name.js +4 -6
- package/build/components/block-list/use-block-props/use-block-custom-class-name.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-default-class-name.js +1 -1
- package/build/components/block-list/use-block-props/use-block-default-class-name.js.map +1 -1
- package/build/components/block-list/use-block-props/use-multi-selection.js +21 -6
- package/build/components/block-list/use-block-props/use-multi-selection.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +9 -1
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-list-appender/index.js +9 -1
- package/build/components/block-list-appender/index.js.map +1 -1
- package/build/components/block-mover/index.js +4 -4
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-mover/index.native.js +4 -4
- package/build/components/block-mover/index.native.js.map +1 -1
- package/build/components/block-navigation/dropdown.js +0 -1
- package/build/components/block-navigation/dropdown.js.map +1 -1
- package/build/components/block-patterns-list/index.js +1 -8
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-preview/auto.js +42 -14
- package/build/components/block-preview/auto.js.map +1 -1
- package/build/components/block-settings/container.native.js +5 -2
- package/build/components/block-settings/container.native.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +26 -5
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +10 -3
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-styles/index.js +5 -1
- package/build/components/block-styles/index.js.map +1 -1
- package/build/components/block-styles/preview.native.js +2 -2
- package/build/components/block-styles/preview.native.js.map +1 -1
- package/build/components/block-switcher/block-styles-menu.js +1 -1
- package/build/components/block-switcher/block-styles-menu.js.map +1 -1
- package/build/components/block-switcher/index.js +10 -3
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-title/index.js +3 -2
- package/build/components/block-title/index.js.map +1 -1
- package/build/components/block-toolbar/index.js +3 -0
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/block-contextual-toolbar.js +1 -1
- package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build/components/block-tools/block-popover.js +8 -7
- package/build/components/block-tools/block-popover.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +2 -4
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/index.js +4 -1
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +96 -7
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-types-list/index.native.js +3 -2
- package/build/components/block-types-list/index.native.js.map +1 -1
- package/build/components/border-radius-control/index.js.map +1 -1
- package/build/components/border-radius-control/utils.js +17 -8
- package/build/components/border-radius-control/utils.js.map +1 -1
- package/build/components/colors/utils.js +11 -3
- package/build/components/colors/utils.js.map +1 -1
- package/build/components/colors-gradients/control.js +22 -57
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/colors-gradients/panel-color-gradient-settings.js +83 -7
- package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
- package/build/components/contrast-checker/index.js +18 -12
- package/build/components/contrast-checker/index.js.map +1 -1
- package/build/components/copy-handler/index.js +9 -3
- package/build/components/copy-handler/index.js.map +1 -1
- package/build/components/default-block-appender/index.js +2 -2
- package/build/components/default-block-appender/index.js.map +1 -1
- package/build/components/duotone-control/index.js +41 -39
- package/build/components/duotone-control/index.js.map +1 -1
- package/build/components/editor-styles/index.js +9 -3
- package/build/components/editor-styles/index.js.map +1 -1
- package/build/components/font-appearance-control/index.js +44 -12
- package/build/components/font-appearance-control/index.js.map +1 -1
- package/build/components/font-sizes/index.native.js +24 -0
- package/build/components/font-sizes/index.native.js.map +1 -1
- package/build/components/iframe/index.js +46 -63
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-editor/aspect-ratio-dropdown.js +126 -0
- package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -0
- package/build/components/image-editor/constants.js +16 -0
- package/build/components/image-editor/constants.js.map +1 -0
- package/build/components/image-editor/context.js +59 -0
- package/build/components/image-editor/context.js.map +1 -0
- package/build/components/image-editor/cropper.js +83 -0
- package/build/components/image-editor/cropper.js.map +1 -0
- package/build/components/image-editor/form-controls.js +36 -0
- package/build/components/image-editor/form-controls.js.map +1 -0
- package/build/components/image-editor/index.js +60 -0
- package/build/components/image-editor/index.js.map +1 -0
- package/build/components/image-editor/rotation-button.js +37 -0
- package/build/components/image-editor/rotation-button.js.map +1 -0
- package/build/components/image-editor/use-save-image.js +84 -0
- package/build/components/image-editor/use-save-image.js.map +1 -0
- package/build/components/image-editor/use-transform-image.js +135 -0
- package/build/components/image-editor/use-transform-image.js.map +1 -0
- package/build/components/image-editor/zoom-dropdown.js +55 -0
- package/build/components/image-editor/zoom-dropdown.js.map +1 -0
- package/build/components/image-size-control/use-dimension-handler.js +14 -3
- package/build/components/image-size-control/use-dimension-handler.js.map +1 -1
- package/build/components/index.js +42 -37
- package/build/components/index.js.map +1 -1
- package/build/components/index.native.js +12 -7
- package/build/components/index.native.js.map +1 -1
- package/build/components/inner-blocks/button-block-appender.js +11 -1
- package/build/components/inner-blocks/button-block-appender.js.map +1 -1
- package/build/components/inner-blocks/index.js +28 -10
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/index.native.js +42 -4
- package/build/components/inner-blocks/index.native.js.map +1 -1
- package/build/components/inner-blocks/use-nested-settings-update.js +24 -13
- package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/explorer.js +62 -0
- package/build/components/inserter/block-patterns-explorer/explorer.js.map +1 -0
- package/build/components/inserter/block-patterns-explorer/patterns-list.js +111 -0
- package/build/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -0
- package/build/components/inserter/block-patterns-explorer/sidebar.js +78 -0
- package/build/components/inserter/block-patterns-explorer/sidebar.js.map +1 -0
- package/build/components/inserter/block-patterns-tab.js +74 -35
- package/build/components/inserter/block-patterns-tab.js.map +1 -1
- package/build/components/inserter/block-types-tab.native.js +3 -6
- package/build/components/inserter/block-types-tab.native.js.map +1 -1
- package/build/components/inserter/hooks/use-block-type-impressions.native.js +4 -7
- package/build/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
- package/build/components/inserter/hooks/use-clipboard-block.native.js +5 -4
- package/build/components/inserter/hooks/use-clipboard-block.native.js.map +1 -1
- package/build/components/inserter/index.js +12 -4
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/index.native.js +1 -7
- package/build/components/inserter/index.native.js.map +1 -1
- package/build/components/inserter/library.js +2 -0
- package/build/components/inserter/library.js.map +1 -1
- package/build/components/inserter/menu.js +2 -1
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/menu.native.js +18 -17
- package/build/components/inserter/menu.native.js.map +1 -1
- package/build/components/inserter/pattern-panel.js +19 -10
- package/build/components/inserter/pattern-panel.js.map +1 -1
- package/build/components/inserter/preview-panel.js +1 -1
- package/build/components/inserter/preview-panel.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +2 -1
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter/reusable-blocks-tab.native.js +5 -6
- package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build/components/inserter/search-results.native.js +9 -2
- package/build/components/inserter/search-results.native.js.map +1 -1
- package/build/components/inserter/tabs.native.js +1 -4
- package/build/components/inserter/tabs.native.js.map +1 -1
- package/build/components/inserter/utils.native.js +44 -0
- package/build/components/inserter/utils.native.js.map +1 -0
- package/build/components/inspector-controls/block-support-slot-container.js +28 -0
- package/build/components/inspector-controls/block-support-slot-container.js.map +1 -0
- package/build/components/inspector-controls/block-support-tools-panel.js +78 -0
- package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -0
- package/build/components/inspector-controls/fill.js +64 -0
- package/build/components/inspector-controls/fill.js.map +1 -0
- package/build/components/inspector-controls/{index.native.js → fill.native.js} +20 -19
- package/build/components/inspector-controls/fill.native.js.map +1 -0
- package/build/components/inspector-controls/groups.js +25 -0
- package/build/components/inspector-controls/groups.js.map +1 -0
- package/build/components/inspector-controls/index.js +22 -20
- package/build/components/inspector-controls/index.js.map +1 -1
- package/build/components/inspector-controls/slot.js +67 -0
- package/build/components/inspector-controls/slot.js.map +1 -0
- package/build/components/inspector-controls/slot.native.js +38 -0
- package/build/components/inspector-controls/slot.native.js.map +1 -0
- package/build/components/letter-spacing-control/index.js +9 -6
- package/build/components/letter-spacing-control/index.js.map +1 -1
- package/build/components/line-height-control/index.native.js +39 -0
- package/build/components/line-height-control/index.native.js.map +1 -0
- package/build/components/link-control/index.js +93 -34
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/link-preview.js +45 -15
- package/build/components/link-control/link-preview.js.map +1 -1
- package/build/components/link-control/search-input.js +25 -7
- package/build/components/link-control/search-input.js.map +1 -1
- package/build/components/list-view/block-contents.js +1 -20
- package/build/components/list-view/block-contents.js.map +1 -1
- package/build/components/list-view/block.js +54 -69
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +102 -76
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/index.js +53 -23
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/list-view/leaf.js +2 -2
- package/build/components/list-view/leaf.js.map +1 -1
- package/build/components/list-view/list-item.js +3 -2
- package/build/components/list-view/list-item.js.map +1 -1
- package/build/components/list-view/use-list-view-client-ids.js +13 -54
- package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
- package/build/components/media-placeholder/index.js +35 -21
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/media-placeholder/index.native.js +2 -1
- package/build/components/media-placeholder/index.native.js.map +1 -1
- package/build/components/media-replace-flow/index.js +5 -3
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/navigable-toolbar/index.js +1 -4
- package/build/components/navigable-toolbar/index.js.map +1 -1
- package/build/components/observe-typing/index.js +1 -1
- package/build/components/observe-typing/index.js.map +1 -1
- package/build/components/plain-text/index.native.js +30 -1
- package/build/components/plain-text/index.native.js.map +1 -1
- package/build/components/rich-text/embed-handler-picker.native.js +66 -0
- package/build/components/rich-text/embed-handler-picker.native.js.map +1 -0
- package/build/components/rich-text/format-edit.js +28 -2
- package/build/components/rich-text/format-edit.js.map +1 -1
- package/build/components/rich-text/format-toolbar/index.js +32 -11
- package/build/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build/components/rich-text/index.js +29 -7
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +43 -5
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/input-event.js +25 -24
- package/build/components/rich-text/input-event.js.map +1 -1
- package/build/components/rich-text/shortcut.js +23 -9
- package/build/components/rich-text/shortcut.js.map +1 -1
- package/build/components/rich-text/use-input-events.js +27 -0
- package/build/components/rich-text/use-input-events.js.map +1 -0
- package/build/components/rich-text/use-paste-handler.js +45 -10
- package/build/components/rich-text/use-paste-handler.js.map +1 -1
- package/build/components/rich-text/use-shortcuts.js +27 -0
- package/build/components/rich-text/use-shortcuts.js.map +1 -0
- package/build/components/rich-text/utils.js +22 -0
- package/build/components/rich-text/utils.js.map +1 -1
- package/build/components/typewriter/index.js +1 -1
- package/build/components/typewriter/index.js.map +1 -1
- package/build/components/url-input/index.js +25 -11
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/use-display-block-controls/index.js +5 -7
- package/build/components/use-display-block-controls/index.js.map +1 -1
- package/build/components/use-moving-animation/index.js +13 -10
- package/build/components/use-moving-animation/index.js.map +1 -1
- package/build/components/use-on-block-drop/index.js +2 -1
- package/build/components/use-on-block-drop/index.js.map +1 -1
- package/build/components/use-resize-canvas/index.js +2 -13
- package/build/components/use-resize-canvas/index.js.map +1 -1
- package/build/components/use-setting/index.js +49 -14
- package/build/components/use-setting/index.js.map +1 -1
- package/build/components/writing-flow/use-multi-selection.js +6 -0
- package/build/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +18 -3
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/hooks/align.js +14 -14
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/anchor.js +4 -2
- package/build/hooks/anchor.js.map +1 -1
- package/build/hooks/border-color.js +9 -5
- package/build/hooks/border-color.js.map +1 -1
- package/build/hooks/border.js +5 -5
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color-panel.js +5 -2
- package/build/hooks/color-panel.js.map +1 -1
- package/build/hooks/color.js +6 -4
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/compat.js +23 -0
- package/build/hooks/compat.js.map +1 -0
- package/build/hooks/custom-class-name.js +3 -1
- package/build/hooks/custom-class-name.js.map +1 -1
- package/build/hooks/dimensions.js +63 -28
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/duotone.js +63 -18
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/font-appearance.js +49 -6
- package/build/hooks/font-appearance.js.map +1 -1
- package/build/hooks/font-family.js +123 -32
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/font-size.js +51 -9
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/gap.js +163 -0
- package/build/hooks/gap.js.map +1 -0
- package/build/hooks/index.js +12 -0
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/index.native.js +10 -0
- package/build/hooks/index.native.js.map +1 -1
- package/build/hooks/layout.js +47 -30
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/letter-spacing.js +45 -8
- package/build/hooks/letter-spacing.js.map +1 -1
- package/build/hooks/line-height.js +45 -8
- package/build/hooks/line-height.js.map +1 -1
- package/build/hooks/lock.js +43 -0
- package/build/hooks/lock.js.map +1 -0
- package/build/hooks/margin.js +6 -3
- package/build/hooks/margin.js.map +1 -1
- package/build/hooks/padding.js +6 -3
- package/build/hooks/padding.js.map +1 -1
- package/build/hooks/style.js +39 -11
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/text-decoration.js +42 -6
- package/build/hooks/text-decoration.js.map +1 -1
- package/build/hooks/text-transform.js +42 -6
- package/build/hooks/text-transform.js.map +1 -1
- package/build/hooks/typography.js +109 -9
- package/build/hooks/typography.js.map +1 -1
- package/build/hooks/typography.native.js +60 -0
- package/build/hooks/typography.native.js.map +1 -0
- package/build/hooks/use-cached-truthy.js +29 -0
- package/build/hooks/use-cached-truthy.js.map +1 -0
- package/build/index.js +7 -0
- package/build/index.js.map +1 -1
- package/build/layouts/flex.js +215 -11
- package/build/layouts/flex.js.map +1 -1
- package/build/layouts/flow.js +99 -6
- package/build/layouts/flow.js.map +1 -1
- package/build/store/actions.js +331 -266
- package/build/store/actions.js.map +1 -1
- package/build/store/defaults.js +2 -0
- package/build/store/defaults.js.map +1 -1
- package/build/store/defaults.native.js +16 -1
- package/build/store/defaults.native.js.map +1 -1
- package/build/store/index.js +1 -3
- package/build/store/index.js.map +1 -1
- package/build/store/reducer.js +165 -114
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +203 -115
- package/build/store/selectors.js.map +1 -1
- package/build/utils/index.js +10 -1
- package/build/utils/index.js.map +1 -1
- package/build/utils/parse-css-unit-to-px.js +295 -0
- package/build/utils/parse-css-unit-to-px.js.map +1 -0
- package/build/utils/transform-styles/transforms/wrap.js +16 -0
- package/build/utils/transform-styles/transforms/wrap.js.map +1 -1
- package/build-module/components/autocomplete/index.js +2 -2
- package/build-module/components/autocomplete/index.js.map +1 -1
- package/build-module/components/block-actions/index.js +8 -4
- package/build-module/components/block-actions/index.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.js +64 -17
- package/build-module/components/block-alignment-control/ui.js.map +1 -1
- package/build-module/components/block-alignment-control/use-available-alignments.js +25 -3
- package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
- package/build-module/components/block-content-overlay/index.js +2 -4
- package/build-module/components/block-content-overlay/index.js.map +1 -1
- package/build-module/components/block-controls/fill.js +6 -5
- package/build-module/components/block-controls/fill.js.map +1 -1
- package/build-module/components/block-controls/groups.js +3 -1
- package/build-module/components/block-controls/groups.js.map +1 -1
- package/build-module/components/block-controls/hook.js +42 -0
- package/build-module/components/block-controls/hook.js.map +1 -0
- package/build-module/components/block-edit/context.js +4 -4
- package/build-module/components/block-edit/context.js.map +1 -1
- package/build-module/components/block-edit/edit.js +1 -1
- package/build-module/components/block-edit/edit.js.map +1 -1
- package/build-module/components/block-icon/index.js +5 -1
- package/build-module/components/block-icon/index.js.map +1 -1
- package/build-module/components/block-icon/index.native.js +14 -9
- package/build-module/components/block-icon/index.native.js.map +1 -1
- package/build-module/components/block-inspector/index.js +12 -6
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block-html.js +5 -0
- package/build-module/components/block-list/block-html.js.map +1 -1
- package/build-module/components/block-list/block-list-item.native.js +30 -12
- package/build-module/components/block-list/block-list-item.native.js.map +1 -1
- package/build-module/components/block-list/block-selection-button.native.js +3 -4
- package/build-module/components/block-list/block-selection-button.native.js.map +1 -1
- package/build-module/components/block-list/block.js +16 -10
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +6 -7
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/grid-item.native.js +57 -0
- package/build-module/components/block-list/grid-item.native.js.map +1 -0
- package/build-module/components/block-list/index.js +17 -14
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list/index.native.js +13 -9
- package/build-module/components/block-list/index.native.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +7 -7
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js +5 -7
- package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-block-default-class-name.js +2 -2
- package/build-module/components/block-list/use-block-props/use-block-default-class-name.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-multi-selection.js +21 -6
- package/build-module/components/block-list/use-block-props/use-multi-selection.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +9 -1
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-list-appender/index.js +9 -1
- package/build-module/components/block-list-appender/index.js.map +1 -1
- package/build-module/components/block-mover/index.js +4 -4
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-mover/index.native.js +4 -4
- package/build-module/components/block-mover/index.native.js.map +1 -1
- package/build-module/components/block-navigation/dropdown.js +0 -1
- package/build-module/components/block-navigation/dropdown.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js +1 -6
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-preview/auto.js +40 -16
- package/build-module/components/block-preview/auto.js.map +1 -1
- package/build-module/components/block-settings/container.native.js +6 -3
- package/build-module/components/block-settings/container.native.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +28 -7
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +10 -3
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-styles/index.js +5 -1
- package/build-module/components/block-styles/index.js.map +1 -1
- package/build-module/components/block-styles/preview.native.js +2 -2
- package/build-module/components/block-styles/preview.native.js.map +1 -1
- package/build-module/components/block-switcher/block-styles-menu.js +1 -1
- package/build-module/components/block-switcher/block-styles-menu.js.map +1 -1
- package/build-module/components/block-switcher/index.js +10 -3
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-title/index.js +3 -2
- package/build-module/components/block-title/index.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +3 -0
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js +1 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build-module/components/block-tools/block-popover.js +9 -8
- package/build-module/components/block-tools/block-popover.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +2 -4
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/index.js +4 -1
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +96 -8
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-types-list/index.native.js +3 -2
- package/build-module/components/block-types-list/index.native.js.map +1 -1
- package/build-module/components/border-radius-control/index.js.map +1 -1
- package/build-module/components/border-radius-control/utils.js +16 -9
- package/build-module/components/border-radius-control/utils.js.map +1 -1
- package/build-module/components/colors/utils.js +9 -3
- package/build-module/components/colors/utils.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +26 -63
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/colors-gradients/panel-color-gradient-settings.js +84 -7
- package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
- package/build-module/components/contrast-checker/index.js +13 -10
- package/build-module/components/contrast-checker/index.js.map +1 -1
- package/build-module/components/copy-handler/index.js +9 -3
- package/build-module/components/copy-handler/index.js.map +1 -1
- package/build-module/components/default-block-appender/index.js +2 -2
- package/build-module/components/default-block-appender/index.js.map +1 -1
- package/build-module/components/duotone-control/index.js +43 -39
- package/build-module/components/duotone-control/index.js.map +1 -1
- package/build-module/components/editor-styles/index.js +7 -3
- package/build-module/components/editor-styles/index.js.map +1 -1
- package/build-module/components/font-appearance-control/index.js +40 -12
- package/build-module/components/font-appearance-control/index.js.map +1 -1
- package/build-module/components/font-sizes/index.native.js +3 -1
- package/build-module/components/font-sizes/index.native.js.map +1 -1
- package/build-module/components/iframe/index.js +47 -65
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-editor/aspect-ratio-dropdown.js +115 -0
- package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -0
- package/build-module/components/image-editor/constants.js +7 -0
- package/build-module/components/image-editor/constants.js.map +1 -0
- package/build-module/components/image-editor/context.js +44 -0
- package/build-module/components/image-editor/context.js.map +1 -0
- package/build-module/components/image-editor/cropper.js +69 -0
- package/build-module/components/image-editor/cropper.js.map +1 -0
- package/build-module/components/image-editor/form-controls.js +26 -0
- package/build-module/components/image-editor/form-controls.js.map +1 -0
- package/build-module/components/image-editor/index.js +37 -0
- package/build-module/components/image-editor/index.js.map +1 -0
- package/build-module/components/image-editor/rotation-button.js +26 -0
- package/build-module/components/image-editor/rotation-button.js.map +1 -0
- package/build-module/components/image-editor/use-save-image.js +70 -0
- package/build-module/components/image-editor/use-save-image.js.map +1 -0
- package/build-module/components/image-editor/use-transform-image.js +127 -0
- package/build-module/components/image-editor/use-transform-image.js.map +1 -0
- package/build-module/components/image-editor/zoom-dropdown.js +43 -0
- package/build-module/components/image-editor/zoom-dropdown.js.map +1 -0
- package/build-module/components/image-size-control/use-dimension-handler.js +13 -2
- package/build-module/components/image-size-control/use-dimension-handler.js.map +1 -1
- package/build-module/components/index.js +5 -6
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/index.native.js +2 -3
- package/build-module/components/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/button-block-appender.js +10 -1
- package/build-module/components/inner-blocks/button-block-appender.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +29 -11
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.native.js +41 -5
- package/build-module/components/inner-blocks/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/use-nested-settings-update.js +24 -13
- package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/explorer.js +50 -0
- package/build-module/components/inserter/block-patterns-explorer/explorer.js.map +1 -0
- package/build-module/components/inserter/block-patterns-explorer/patterns-list.js +92 -0
- package/build-module/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -0
- package/build-module/components/inserter/block-patterns-explorer/sidebar.js +69 -0
- package/build-module/components/inserter/block-patterns-explorer/sidebar.js.map +1 -0
- package/build-module/components/inserter/block-patterns-tab.js +75 -36
- package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.native.js +2 -5
- package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
- package/build-module/components/inserter/hooks/use-block-type-impressions.native.js +4 -7
- package/build-module/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
- package/build-module/components/inserter/hooks/use-clipboard-block.native.js +5 -4
- package/build-module/components/inserter/hooks/use-clipboard-block.native.js.map +1 -1
- package/build-module/components/inserter/index.js +12 -4
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/index.native.js +1 -7
- package/build-module/components/inserter/index.native.js.map +1 -1
- package/build-module/components/inserter/library.js +2 -0
- package/build-module/components/inserter/library.js.map +1 -1
- package/build-module/components/inserter/menu.js +2 -1
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/menu.native.js +17 -17
- package/build-module/components/inserter/menu.native.js.map +1 -1
- package/build-module/components/inserter/pattern-panel.js +21 -13
- package/build-module/components/inserter/pattern-panel.js.map +1 -1
- package/build-module/components/inserter/preview-panel.js +1 -1
- package/build-module/components/inserter/preview-panel.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +2 -1
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter/reusable-blocks-tab.native.js +4 -5
- package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build-module/components/inserter/search-results.native.js +8 -2
- package/build-module/components/inserter/search-results.native.js.map +1 -1
- package/build-module/components/inserter/tabs.native.js +1 -4
- package/build-module/components/inserter/tabs.native.js.map +1 -1
- package/build-module/components/inserter/utils.native.js +35 -0
- package/build-module/components/inserter/utils.native.js.map +1 -0
- package/build-module/components/inspector-controls/block-support-slot-container.js +18 -0
- package/build-module/components/inspector-controls/block-support-slot-container.js.map +1 -0
- package/build-module/components/inspector-controls/block-support-tools-panel.js +67 -0
- package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -0
- package/build-module/components/inspector-controls/fill.js +50 -0
- package/build-module/components/inspector-controls/fill.js.map +1 -0
- package/build-module/components/inspector-controls/{index.native.js → fill.native.js} +16 -18
- package/build-module/components/inspector-controls/fill.native.js.map +1 -0
- package/build-module/components/inspector-controls/groups.js +16 -0
- package/build-module/components/inspector-controls/groups.js.map +1 -0
- package/build-module/components/inspector-controls/index.js +16 -17
- package/build-module/components/inspector-controls/index.js.map +1 -1
- package/build-module/components/inspector-controls/slot.js +52 -0
- package/build-module/components/inspector-controls/slot.js.map +1 -0
- package/build-module/components/inspector-controls/slot.native.js +27 -0
- package/build-module/components/inspector-controls/slot.native.js.map +1 -0
- package/build-module/components/letter-spacing-control/index.js +9 -6
- package/build-module/components/letter-spacing-control/index.js.map +1 -1
- package/build-module/components/line-height-control/index.native.js +29 -0
- package/build-module/components/line-height-control/index.native.js.map +1 -0
- package/build-module/components/link-control/index.js +93 -35
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/link-preview.js +46 -17
- package/build-module/components/link-control/link-preview.js.map +1 -1
- package/build-module/components/link-control/search-input.js +24 -7
- package/build-module/components/link-control/search-input.js.map +1 -1
- package/build-module/components/list-view/block-contents.js +1 -18
- package/build-module/components/list-view/block-contents.js.map +1 -1
- package/build-module/components/list-view/block.js +56 -71
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +102 -78
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/index.js +55 -27
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/list-view/leaf.js +2 -2
- package/build-module/components/list-view/leaf.js.map +1 -1
- package/build-module/components/list-view/list-item.js +3 -2
- package/build-module/components/list-view/list-item.js.map +1 -1
- package/build-module/components/list-view/use-list-view-client-ids.js +13 -54
- package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +35 -21
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/media-placeholder/index.native.js +2 -1
- package/build-module/components/media-placeholder/index.native.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +5 -3
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/navigable-toolbar/index.js +1 -4
- package/build-module/components/navigable-toolbar/index.js.map +1 -1
- package/build-module/components/observe-typing/index.js +1 -1
- package/build-module/components/observe-typing/index.js.map +1 -1
- package/build-module/components/plain-text/index.native.js +29 -2
- package/build-module/components/plain-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/embed-handler-picker.native.js +54 -0
- package/build-module/components/rich-text/embed-handler-picker.native.js.map +1 -0
- package/build-module/components/rich-text/format-edit.js +28 -3
- package/build-module/components/rich-text/format-edit.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar/index.js +29 -11
- package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +22 -6
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +43 -6
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/input-event.js +24 -22
- package/build-module/components/rich-text/input-event.js.map +1 -1
- package/build-module/components/rich-text/shortcut.js +22 -9
- package/build-module/components/rich-text/shortcut.js.map +1 -1
- package/build-module/components/rich-text/use-input-events.js +19 -0
- package/build-module/components/rich-text/use-input-events.js.map +1 -0
- package/build-module/components/rich-text/use-paste-handler.js +44 -10
- package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
- package/build-module/components/rich-text/use-shortcuts.js +19 -0
- package/build-module/components/rich-text/use-shortcuts.js.map +1 -0
- package/build-module/components/rich-text/utils.js +20 -0
- package/build-module/components/rich-text/utils.js.map +1 -1
- package/build-module/components/typewriter/index.js +1 -1
- package/build-module/components/typewriter/index.js.map +1 -1
- package/build-module/components/url-input/index.js +25 -11
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/use-display-block-controls/index.js +5 -7
- package/build-module/components/use-display-block-controls/index.js.map +1 -1
- package/build-module/components/use-moving-animation/index.js +13 -10
- package/build-module/components/use-moving-animation/index.js.map +1 -1
- package/build-module/components/use-on-block-drop/index.js +3 -2
- package/build-module/components/use-on-block-drop/index.js.map +1 -1
- package/build-module/components/use-resize-canvas/index.js +2 -10
- package/build-module/components/use-resize-canvas/index.js.map +1 -1
- package/build-module/components/use-setting/index.js +48 -14
- package/build-module/components/use-setting/index.js.map +1 -1
- package/build-module/components/writing-flow/use-multi-selection.js +6 -0
- package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +18 -3
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/hooks/align.js +15 -15
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/anchor.js +5 -3
- package/build-module/hooks/anchor.js.map +1 -1
- package/build-module/hooks/border-color.js +10 -5
- package/build-module/hooks/border-color.js.map +1 -1
- package/build-module/hooks/border.js +5 -5
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color-panel.js +6 -3
- package/build-module/hooks/color-panel.js.map +1 -1
- package/build-module/hooks/color.js +6 -4
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/compat.js +20 -0
- package/build-module/hooks/compat.js.map +1 -0
- package/build-module/hooks/custom-class-name.js +4 -2
- package/build-module/hooks/custom-class-name.js.map +1 -1
- package/build-module/hooks/dimensions.js +57 -26
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/duotone.js +62 -18
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/font-appearance.js +45 -6
- package/build-module/hooks/font-appearance.js.map +1 -1
- package/build-module/hooks/font-family.js +117 -33
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/font-size.js +47 -9
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/gap.js +140 -0
- package/build-module/hooks/gap.js.map +1 -0
- package/build-module/hooks/index.js +3 -0
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/index.native.js +2 -0
- package/build-module/hooks/index.native.js.map +1 -1
- package/build-module/hooks/layout.js +47 -30
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/letter-spacing.js +41 -8
- package/build-module/hooks/letter-spacing.js.map +1 -1
- package/build-module/hooks/line-height.js +41 -8
- package/build-module/hooks/line-height.js.map +1 -1
- package/build-module/hooks/lock.js +33 -0
- package/build-module/hooks/lock.js.map +1 -0
- package/build-module/hooks/margin.js +7 -4
- package/build-module/hooks/margin.js.map +1 -1
- package/build-module/hooks/padding.js +7 -4
- package/build-module/hooks/padding.js.map +1 -1
- package/build-module/hooks/style.js +39 -11
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/text-decoration.js +38 -6
- package/build-module/hooks/text-decoration.js.map +1 -1
- package/build-module/hooks/text-transform.js +38 -6
- package/build-module/hooks/text-transform.js.map +1 -1
- package/build-module/hooks/typography.js +118 -19
- package/build-module/hooks/typography.js.map +1 -1
- package/build-module/hooks/typography.native.js +41 -0
- package/build-module/hooks/typography.native.js.map +1 -0
- package/build-module/hooks/use-cached-truthy.js +21 -0
- package/build-module/hooks/use-cached-truthy.js.map +1 -0
- package/build-module/index.js +1 -1
- package/build-module/index.js.map +1 -1
- package/build-module/layouts/flex.js +210 -12
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/layouts/flow.js +99 -7
- package/build-module/layouts/flow.js.map +1 -1
- package/build-module/store/actions.js +294 -242
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/defaults.js +2 -0
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/defaults.native.js +15 -1
- package/build-module/store/defaults.native.js.map +1 -1
- package/build-module/store/index.js +1 -2
- package/build-module/store/index.js.map +1 -1
- package/build-module/store/reducer.js +167 -115
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +189 -104
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/index.js +1 -0
- package/build-module/utils/index.js.map +1 -1
- package/build-module/utils/parse-css-unit-to-px.js +285 -0
- package/build-module/utils/parse-css-unit-to-px.js.map +1 -0
- package/build-module/utils/transform-styles/transforms/wrap.js +16 -0
- package/build-module/utils/transform-styles/transforms/wrap.js.map +1 -1
- package/build-style/default-editor-styles-rtl.css +114 -0
- package/build-style/default-editor-styles.css +114 -0
- package/build-style/style-rtl.css +292 -181
- package/build-style/style.css +292 -181
- package/build-types/components/block-context/index.d.ts +1 -1
- package/build-types/components/block-context/index.d.ts.map +1 -1
- package/package.json +28 -27
- package/src/components/autocomplete/index.js +5 -2
- package/src/components/block-actions/index.js +9 -5
- package/src/components/block-alignment-control/style.scss +5 -0
- package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +15 -1
- package/src/components/block-alignment-control/test/index.native.js +37 -0
- package/src/components/block-alignment-control/ui.js +98 -27
- package/src/components/block-alignment-control/use-available-alignments.js +31 -10
- package/src/components/block-content-overlay/index.js +3 -6
- package/src/components/block-content-overlay/style.scss +9 -21
- package/src/components/block-controls/fill.js +7 -4
- package/src/components/block-controls/groups.js +2 -0
- package/src/components/block-controls/hook.js +44 -0
- package/src/components/block-draggable/style.scss +19 -4
- package/src/components/block-edit/context.js +4 -3
- package/src/components/block-edit/edit.js +1 -4
- package/src/components/block-icon/index.js +4 -1
- package/src/components/block-icon/index.native.js +11 -12
- package/src/components/block-inspector/index.js +19 -9
- package/src/components/block-list/block-html.js +5 -0
- package/src/components/block-list/block-list-item.native.js +34 -11
- package/src/components/block-list/block-list-item.native.scss +4 -0
- package/src/components/block-list/block-selection-button.native.js +8 -5
- package/src/components/block-list/block.js +13 -9
- package/src/components/block-list/block.native.js +7 -5
- package/src/components/block-list/grid-item.native.js +58 -0
- package/src/components/block-list/index.js +33 -27
- package/src/components/block-list/index.native.js +10 -4
- package/src/components/block-list/style.native.scss +0 -1
- package/src/components/block-list/style.scss +15 -0
- package/src/components/block-list/use-block-props/index.js +4 -7
- package/src/components/block-list/use-block-props/use-block-custom-class-name.js +5 -7
- package/src/components/block-list/use-block-props/use-block-default-class-name.js +2 -8
- package/src/components/block-list/use-block-props/use-multi-selection.js +30 -4
- package/src/components/block-list/use-in-between-inserter.js +9 -0
- package/src/components/block-list-appender/index.js +8 -0
- package/src/components/block-mover/index.js +4 -4
- package/src/components/block-mover/index.native.js +4 -4
- package/src/components/block-mover/test/__snapshots__/index.native.js.snap +10 -6
- package/src/components/block-mover/test/index.native.js +26 -28
- package/src/components/block-navigation/dropdown.js +0 -1
- package/src/components/block-patterns-list/index.js +1 -8
- package/src/components/block-patterns-list/style.scss +22 -12
- package/src/components/block-preview/README.md +1 -1
- package/src/components/block-preview/auto.js +36 -18
- package/src/components/block-preview/style.scss +0 -20
- package/src/components/block-settings/container.native.js +7 -0
- package/src/components/block-settings-menu/block-settings-dropdown.js +26 -13
- package/src/components/block-settings-menu-controls/index.js +9 -6
- package/src/components/block-styles/index.js +6 -1
- package/src/components/block-styles/preview.native.js +2 -2
- package/src/components/block-switcher/block-styles-menu.js +1 -1
- package/src/components/block-switcher/index.js +7 -3
- package/src/components/block-switcher/test/__snapshots__/index.js.snap +1 -1
- package/src/components/block-switcher/test/index.js +3 -0
- package/src/components/block-title/index.js +5 -2
- package/src/components/block-toolbar/index.js +4 -0
- package/src/components/block-tools/block-contextual-toolbar.js +7 -5
- package/src/components/block-tools/block-popover.js +8 -8
- package/src/components/block-tools/block-selection-button.js +2 -4
- package/src/components/block-tools/index.js +5 -2
- package/src/components/block-tools/insertion-point.js +97 -9
- package/src/components/block-tools/style.scss +4 -35
- package/src/components/block-types-list/index.native.js +8 -2
- package/src/components/block-types-list/style.scss +0 -3
- package/src/components/block-variation-picker/README.md +47 -14
- package/src/components/block-variation-picker/style.native.scss +4 -0
- package/src/components/border-radius-control/index.js +1 -0
- package/src/components/border-radius-control/test/utils.js +216 -0
- package/src/components/border-radius-control/utils.js +18 -10
- package/src/components/color-palette/test/__snapshots__/control.js.snap +128 -71
- package/src/components/colors/test/utils.js +41 -0
- package/src/components/colors/utils.js +9 -5
- package/src/components/colors-gradients/control.js +70 -110
- package/src/components/colors-gradients/panel-color-gradient-settings.js +79 -7
- package/src/components/colors-gradients/style.scss +10 -18
- package/src/components/colors-gradients/test/control.js +41 -66
- package/src/components/contrast-checker/index.js +14 -10
- package/src/components/copy-handler/index.js +6 -1
- package/src/components/default-block-appender/index.js +2 -2
- package/src/components/default-block-appender/test/__snapshots__/index.js.snap +3 -3
- package/src/components/duotone-control/index.js +49 -41
- package/src/components/duotone-control/style.scss +27 -12
- package/src/components/editor-styles/index.js +8 -4
- package/src/components/font-appearance-control/index.js +62 -24
- package/src/components/font-appearance-control/style.scss +1 -1
- package/src/components/font-sizes/index.native.js +7 -1
- package/src/components/iframe/index.js +64 -75
- package/src/components/image-editor/aspect-ratio-dropdown.js +129 -0
- package/src/components/image-editor/constants.js +6 -0
- package/src/components/image-editor/context.js +56 -0
- package/src/components/image-editor/cropper.js +74 -0
- package/src/components/image-editor/form-controls.js +22 -0
- package/src/components/image-editor/index.js +52 -0
- package/src/components/image-editor/rotation-button.js +24 -0
- package/src/components/image-editor/use-save-image.js +97 -0
- package/src/components/image-editor/use-transform-image.js +162 -0
- package/src/components/image-editor/zoom-dropdown.js +40 -0
- package/src/components/image-size-control/use-dimension-handler.js +18 -1
- package/src/components/index.js +10 -8
- package/src/components/index.native.js +5 -3
- package/src/components/inner-blocks/button-block-appender.js +9 -0
- package/src/components/inner-blocks/index.js +43 -14
- package/src/components/inner-blocks/index.native.js +48 -4
- package/src/components/inner-blocks/use-nested-settings-update.js +26 -11
- package/src/components/inserter/block-patterns-explorer/explorer.js +50 -0
- package/src/components/inserter/block-patterns-explorer/patterns-list.js +122 -0
- package/src/components/inserter/block-patterns-explorer/sidebar.js +73 -0
- package/src/components/inserter/block-patterns-tab.js +107 -73
- package/src/components/inserter/block-types-tab.native.js +3 -6
- package/src/components/inserter/hooks/use-block-type-impressions.native.js +14 -21
- package/src/components/inserter/hooks/use-clipboard-block.native.js +3 -2
- package/src/components/inserter/index.js +15 -3
- package/src/components/inserter/index.native.js +2 -19
- package/src/components/inserter/library.js +2 -0
- package/src/components/inserter/menu.js +4 -1
- package/src/components/inserter/menu.native.js +18 -15
- package/src/components/inserter/pattern-panel.js +33 -16
- package/src/components/inserter/preview-panel.js +1 -1
- package/src/components/inserter/quick-inserter.js +1 -1
- package/src/components/inserter/reusable-blocks-tab.native.js +4 -6
- package/src/components/inserter/search-results.native.js +8 -1
- package/src/components/inserter/style.native.scss +8 -5
- package/src/components/inserter/style.scss +80 -16
- package/src/components/inserter/tabs.native.js +1 -7
- package/src/components/inserter/test/block-types-tab.native.js +3 -2
- package/src/components/inserter/test/fixtures/index.native.js +12 -0
- package/src/components/inserter/utils.native.js +35 -0
- package/src/components/inserter-list-item/style.scss +4 -2
- package/src/components/inspector-controls/README.md +43 -198
- package/src/components/inspector-controls/block-support-slot-container.js +10 -0
- package/src/components/inspector-controls/block-support-tools-panel.js +60 -0
- package/src/components/inspector-controls/fill.js +53 -0
- package/src/components/inspector-controls/{index.native.js → fill.native.js} +14 -14
- package/src/components/inspector-controls/groups.js +22 -0
- package/src/components/inspector-controls/index.js +16 -18
- package/src/components/inspector-controls/slot.js +45 -0
- package/src/components/inspector-controls/slot.native.js +22 -0
- package/src/components/letter-spacing-control/index.js +12 -6
- package/src/components/line-height-control/index.native.js +25 -0
- package/src/components/link-control/README.md +47 -14
- package/src/components/link-control/index.js +102 -31
- package/src/components/link-control/link-preview.js +53 -20
- package/src/components/link-control/search-input.js +21 -7
- package/src/components/link-control/style.scss +66 -19
- package/src/components/link-control/test/index.js +311 -4
- package/src/components/list-view/block-contents.js +17 -38
- package/src/components/list-view/block.js +73 -84
- package/src/components/list-view/branch.js +123 -94
- package/src/components/list-view/index.js +95 -37
- package/src/components/list-view/leaf.js +2 -2
- package/src/components/list-view/list-item.js +5 -4
- package/src/components/list-view/style.scss +70 -33
- package/src/components/list-view/use-list-view-client-ids.js +9 -68
- package/src/components/media-placeholder/README.md +9 -0
- package/src/components/media-placeholder/index.js +31 -20
- package/src/components/media-placeholder/index.native.js +2 -1
- package/src/components/media-placeholder/style.scss +2 -0
- package/src/components/media-replace-flow/README.md +7 -0
- package/src/components/media-replace-flow/index.js +4 -1
- package/src/components/media-replace-flow/style.scss +11 -12
- package/src/components/media-upload/README.md +1 -1
- package/src/components/navigable-toolbar/index.js +1 -4
- package/src/components/observe-typing/index.js +3 -2
- package/src/components/plain-text/index.native.js +26 -4
- package/src/components/rich-text/embed-handler-picker.native.js +68 -0
- package/src/components/rich-text/format-edit.js +36 -2
- package/src/components/rich-text/format-toolbar/index.js +25 -6
- package/src/components/rich-text/index.js +38 -12
- package/src/components/rich-text/index.native.js +37 -4
- package/src/components/rich-text/input-event.js +21 -20
- package/src/components/rich-text/shortcut.js +24 -9
- package/src/components/rich-text/style.scss +7 -5
- package/src/components/rich-text/use-input-events.js +19 -0
- package/src/components/rich-text/use-paste-handler.js +47 -12
- package/src/components/rich-text/use-shortcuts.js +19 -0
- package/src/components/rich-text/utils.js +16 -0
- package/src/components/skip-to-selected-block/README.md +39 -0
- package/src/components/tool-selector/style.scss +5 -5
- package/src/components/typewriter/index.js +3 -2
- package/src/components/url-input/index.js +26 -10
- package/src/components/use-display-block-controls/index.js +7 -10
- package/src/components/use-moving-animation/index.js +9 -8
- package/src/components/use-on-block-drop/index.js +5 -1
- package/src/components/use-resize-canvas/index.js +2 -17
- package/src/components/use-setting/index.js +48 -16
- package/src/components/writing-flow/use-multi-selection.js +6 -0
- package/src/components/writing-flow/use-tab-nav.js +21 -11
- package/src/default-editor-styles.scss +24 -0
- package/src/hooks/align.js +28 -20
- package/src/hooks/anchor.js +5 -5
- package/src/hooks/border-color.js +12 -1
- package/src/hooks/border.js +8 -11
- package/src/hooks/color-panel.js +4 -1
- package/src/hooks/color.js +11 -4
- package/src/hooks/compat.js +23 -0
- package/src/hooks/custom-class-name.js +3 -3
- package/src/hooks/dimensions.js +94 -50
- package/src/hooks/duotone.js +70 -21
- package/src/hooks/font-appearance.js +38 -7
- package/src/hooks/font-family.js +129 -33
- package/src/hooks/font-size.js +42 -6
- package/src/hooks/gap.js +146 -0
- package/src/hooks/index.js +3 -0
- package/src/hooks/index.native.js +2 -0
- package/src/hooks/layout.js +82 -56
- package/src/hooks/layout.scss +8 -0
- package/src/hooks/letter-spacing.js +37 -8
- package/src/hooks/line-height.js +37 -9
- package/src/hooks/lock.js +34 -0
- package/src/hooks/margin.js +13 -3
- package/src/hooks/padding.js +13 -3
- package/src/hooks/style.js +57 -18
- package/src/hooks/test/style.js +4 -0
- package/src/hooks/text-decoration.js +34 -6
- package/src/hooks/text-transform.js +34 -6
- package/src/hooks/typography.js +167 -21
- package/src/hooks/typography.native.js +64 -0
- package/src/hooks/typography.scss +16 -0
- package/src/hooks/use-cached-truthy.js +20 -0
- package/src/index.js +1 -0
- package/src/layouts/flex.js +237 -14
- package/src/layouts/flow.js +81 -14
- package/src/store/actions.js +248 -378
- package/src/store/defaults.js +2 -0
- package/src/store/defaults.native.js +15 -0
- package/src/store/index.js +1 -2
- package/src/store/reducer.js +248 -145
- package/src/store/selectors.js +212 -158
- package/src/store/test/actions.js +407 -705
- package/src/store/test/reducer.js +184 -146
- package/src/store/test/selectors.js +197 -177
- package/src/style.scss +2 -15
- package/src/utils/index.js +1 -0
- package/src/utils/parse-css-unit-to-px.js +272 -0
- package/src/utils/test/parse-css-unit-to-px.js +166 -0
- package/src/utils/transform-styles/transforms/test/wrap.js +1 -1
- package/src/utils/transform-styles/transforms/wrap.js +16 -0
- package/tsconfig.tsbuildinfo +1 -466
- package/build/components/block-list/head.js +0 -27
- package/build/components/block-list/head.js.map +0 -1
- package/build/components/duotone-control/duotone-picker-popover.js +0 -44
- package/build/components/duotone-control/duotone-picker-popover.js.map +0 -1
- package/build/components/inspector-advanced-controls/index.js +0 -46
- package/build/components/inspector-advanced-controls/index.js.map +0 -1
- package/build/components/inspector-controls/index.native.js.map +0 -1
- package/build/components/list-view/block-slot.js +0 -121
- package/build/components/list-view/block-slot.js.map +0 -1
- package/build/components/list-view/editor.js +0 -35
- package/build/components/list-view/editor.js.map +0 -1
- package/build/components/text-decoration-and-transform/index.js +0 -39
- package/build/components/text-decoration-and-transform/index.js.map +0 -1
- package/build/components/use-simulated-media-query/index.js +0 -137
- package/build/components/use-simulated-media-query/index.js.map +0 -1
- package/build/store/controls.js +0 -44
- package/build/store/controls.js.map +0 -1
- package/build-module/components/block-list/head.js +0 -19
- package/build-module/components/block-list/head.js.map +0 -1
- package/build-module/components/duotone-control/duotone-picker-popover.js +0 -35
- package/build-module/components/duotone-control/duotone-picker-popover.js.map +0 -1
- package/build-module/components/inspector-advanced-controls/index.js +0 -36
- package/build-module/components/inspector-advanced-controls/index.js.map +0 -1
- package/build-module/components/inspector-controls/index.native.js.map +0 -1
- package/build-module/components/list-view/block-slot.js +0 -96
- package/build-module/components/list-view/block-slot.js.map +0 -1
- package/build-module/components/list-view/editor.js +0 -25
- package/build-module/components/list-view/editor.js.map +0 -1
- package/build-module/components/text-decoration-and-transform/index.js +0 -30
- package/build-module/components/text-decoration-and-transform/index.js.map +0 -1
- package/build-module/components/use-simulated-media-query/index.js +0 -126
- package/build-module/components/use-simulated-media-query/index.js.map +0 -1
- package/build-module/store/controls.js +0 -32
- package/build-module/store/controls.js.map +0 -1
- package/src/components/block-list/head.js +0 -18
- package/src/components/duotone-control/duotone-picker-popover.js +0 -36
- package/src/components/inspector-advanced-controls/README.md +0 -72
- package/src/components/inspector-advanced-controls/index.js +0 -32
- package/src/components/list-view/block-slot.js +0 -120
- package/src/components/list-view/editor.js +0 -29
- package/src/components/text-decoration-and-transform/index.js +0 -36
- package/src/components/text-decoration-and-transform/style.scss +0 -3
- package/src/components/use-simulated-media-query/index.js +0 -144
- package/src/store/controls.js +0 -39
|
@@ -19,6 +19,7 @@ import { ReadableContentView, alignmentHelpers } from '@wordpress/components';
|
|
|
19
19
|
|
|
20
20
|
import BlockListBlock from './block';
|
|
21
21
|
import BlockInsertionPoint from './insertion-point';
|
|
22
|
+
import Grid from './grid-item';
|
|
22
23
|
import styles from './block-list-item.native.scss';
|
|
23
24
|
import { store as blockEditorStore } from '../../store';
|
|
24
25
|
const stretchStyle = {
|
|
@@ -94,7 +95,7 @@ export class BlockListItem extends Component {
|
|
|
94
95
|
}];
|
|
95
96
|
}
|
|
96
97
|
|
|
97
|
-
|
|
98
|
+
renderContent() {
|
|
98
99
|
const {
|
|
99
100
|
blockAlignment,
|
|
100
101
|
clientId,
|
|
@@ -113,11 +114,6 @@ export class BlockListItem extends Component {
|
|
|
113
114
|
const {
|
|
114
115
|
isContainerRelated
|
|
115
116
|
} = alignmentHelpers;
|
|
116
|
-
|
|
117
|
-
if (!blockWidth) {
|
|
118
|
-
return null;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
117
|
return createElement(ReadableContentView, {
|
|
122
118
|
align: blockAlignment,
|
|
123
119
|
style: [readableContentViewStyle, isContainerRelated(blockName) && parentWidth && {
|
|
@@ -137,6 +133,31 @@ export class BlockListItem extends Component {
|
|
|
137
133
|
})), !shouldShowInnerBlockAppender() && shouldShowInsertionPointAfter && createElement(BlockInsertionPoint, null)));
|
|
138
134
|
}
|
|
139
135
|
|
|
136
|
+
render() {
|
|
137
|
+
const {
|
|
138
|
+
gridProperties,
|
|
139
|
+
clientId,
|
|
140
|
+
parentWidth,
|
|
141
|
+
items,
|
|
142
|
+
blockWidth
|
|
143
|
+
} = this.props;
|
|
144
|
+
|
|
145
|
+
if (!blockWidth) {
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
if (gridProperties) {
|
|
150
|
+
return createElement(Grid, {
|
|
151
|
+
numOfColumns: gridProperties.numColumns,
|
|
152
|
+
tileCount: items.length,
|
|
153
|
+
index: items.indexOf(clientId),
|
|
154
|
+
maxWidth: parentWidth
|
|
155
|
+
}, this.renderContent());
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
return this.renderContent();
|
|
159
|
+
}
|
|
160
|
+
|
|
140
161
|
}
|
|
141
162
|
export default compose([withSelect((select, {
|
|
142
163
|
rootClientId,
|
|
@@ -149,7 +170,7 @@ export default compose([withSelect((select, {
|
|
|
149
170
|
isBlockInsertionPointVisible,
|
|
150
171
|
getSettings,
|
|
151
172
|
getBlockParents,
|
|
152
|
-
|
|
173
|
+
getBlock
|
|
153
174
|
} = select(blockEditorStore);
|
|
154
175
|
const blockClientIds = getBlockOrder(rootClientId);
|
|
155
176
|
const insertionPoint = getBlockInsertionPoint();
|
|
@@ -161,19 +182,16 @@ export default compose([withSelect((select, {
|
|
|
161
182
|
blockClientIds.length === insertionPoint.index && // and the denoted block is the last one on the list, show the indicator at the end of the block
|
|
162
183
|
blockClientIds[insertionPoint.index - 1] === clientId;
|
|
163
184
|
const isReadOnly = getSettings().readOnly;
|
|
164
|
-
|
|
165
|
-
const block = __unstableGetBlockWithoutInnerBlocks(clientId);
|
|
166
|
-
|
|
167
185
|
const {
|
|
168
186
|
attributes,
|
|
169
187
|
name
|
|
170
|
-
} =
|
|
188
|
+
} = getBlock(clientId) || {};
|
|
171
189
|
const {
|
|
172
190
|
align
|
|
173
191
|
} = attributes || {};
|
|
174
192
|
const parents = getBlockParents(clientId, true);
|
|
175
193
|
const hasParents = !!parents.length;
|
|
176
|
-
const parentBlock = hasParents ?
|
|
194
|
+
const parentBlock = hasParents ? getBlock(parents[0]) : {};
|
|
177
195
|
const {
|
|
178
196
|
align: parentBlockAlignment
|
|
179
197
|
} = (parentBlock === null || parentBlock === void 0 ? void 0 : parentBlock.attributes) || {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block-list-item.native.js"],"names":["View","Dimensions","Component","withSelect","compose","ReadableContentView","alignmentHelpers","BlockListBlock","BlockInsertionPoint","styles","store","blockEditorStore","stretchStyle","flex","BlockListItem","getMarginHorizontal","blockAlignment","marginHorizontal","parentBlockAlignment","hasParents","blockName","parentBlockName","parentWidth","blockWidth","props","isFullWidth","isWideWidth","isWider","isContainerRelated","screenWidth","Math","floor","get","width","isScreenWidthEqual","getContentStyles","readableContentViewStyle","fullAlignment","paddingHorizontal","fullAlignmentPadding","paddingLeft","render","clientId","isReadOnly","shouldShowInsertionPointBefore","shouldShowInsertionPointAfter","contentResizeMode","shouldShowInnerBlockAppender","restProps","maxWidth","select","rootClientId","isStackedHorizontally","getBlockOrder","getBlockInsertionPoint","isBlockInsertionPointVisible","getSettings","getBlockParents","__unstableGetBlockWithoutInnerBlocks","blockClientIds","insertionPoint","blockInsertionPointIsVisible","length","index","readOnly","block","attributes","name","align","parents","parentBlock"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { withSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { ReadableContentView, alignmentHelpers } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockListBlock from './block';\nimport BlockInsertionPoint from './insertion-point';\nimport styles from './block-list-item.native.scss';\nimport { store as blockEditorStore } from '../../store';\n\nconst stretchStyle = {\n\tflex: 1,\n};\n\nexport class BlockListItem extends Component {\n\tgetMarginHorizontal() {\n\t\tconst {\n\t\t\tblockAlignment,\n\t\t\tmarginHorizontal,\n\t\t\tparentBlockAlignment,\n\t\t\thasParents,\n\t\t\tblockName,\n\t\t\tparentBlockName,\n\t\t\tparentWidth,\n\t\t\tblockWidth,\n\t\t} = this.props;\n\t\tconst {\n\t\t\tisFullWidth,\n\t\t\tisWideWidth,\n\t\t\tisWider,\n\t\t\tisContainerRelated,\n\t\t} = alignmentHelpers;\n\n\t\tif ( isFullWidth( blockAlignment ) ) {\n\t\t\tif ( ! hasParents ) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\treturn marginHorizontal;\n\t\t}\n\t\tif ( isWideWidth( blockAlignment ) ) {\n\t\t\treturn marginHorizontal;\n\t\t}\n\n\t\tconst screenWidth = Math.floor( Dimensions.get( 'window' ).width );\n\n\t\tif (\n\t\t\tisFullWidth( parentBlockAlignment ) &&\n\t\t\t! isWider( blockWidth, 'medium' )\n\t\t) {\n\t\t\tif (\n\t\t\t\tisContainerRelated( blockName ) ||\n\t\t\t\tisWider( screenWidth, 'mobile' )\n\t\t\t) {\n\t\t\t\treturn marginHorizontal;\n\t\t\t}\n\t\t\treturn marginHorizontal * 2;\n\t\t}\n\n\t\tif (\n\t\t\tisContainerRelated( parentBlockName ) &&\n\t\t\t! isContainerRelated( blockName )\n\t\t) {\n\t\t\tconst isScreenWidthEqual = parentWidth === screenWidth;\n\t\t\tif ( isScreenWidthEqual || isWider( screenWidth, 'mobile' ) ) {\n\t\t\t\treturn marginHorizontal;\n\t\t\t}\n\t\t}\n\n\t\treturn marginHorizontal;\n\t}\n\n\tgetContentStyles( readableContentViewStyle ) {\n\t\tconst {\n\t\t\tblockAlignment,\n\t\t\tblockName,\n\t\t\thasParents,\n\t\t\tparentBlockName,\n\t\t} = this.props;\n\t\tconst { isFullWidth, isContainerRelated } = alignmentHelpers;\n\n\t\treturn [\n\t\t\treadableContentViewStyle,\n\t\t\tisFullWidth( blockAlignment ) &&\n\t\t\t\t! hasParents && {\n\t\t\t\t\twidth: styles.fullAlignment.width,\n\t\t\t\t},\n\t\t\t! blockAlignment &&\n\t\t\t\thasParents &&\n\t\t\t\t! isContainerRelated( parentBlockName ) &&\n\t\t\t\tisContainerRelated( blockName ) && {\n\t\t\t\t\tpaddingHorizontal: styles.fullAlignmentPadding.paddingLeft,\n\t\t\t\t},\n\t\t];\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tblockAlignment,\n\t\t\tclientId,\n\t\t\tisReadOnly,\n\t\t\tshouldShowInsertionPointBefore,\n\t\t\tshouldShowInsertionPointAfter,\n\t\t\tcontentResizeMode,\n\t\t\tshouldShowInnerBlockAppender,\n\t\t\tparentWidth,\n\t\t\tmarginHorizontal,\n\t\t\tblockName,\n\t\t\tblockWidth,\n\t\t\t...restProps\n\t\t} = this.props;\n\t\tconst readableContentViewStyle =\n\t\t\tcontentResizeMode === 'stretch' && stretchStyle;\n\t\tconst { isContainerRelated } = alignmentHelpers;\n\n\t\tif ( ! blockWidth ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<ReadableContentView\n\t\t\t\talign={ blockAlignment }\n\t\t\t\tstyle={ [\n\t\t\t\t\treadableContentViewStyle,\n\t\t\t\t\tisContainerRelated( blockName ) &&\n\t\t\t\t\t\tparentWidth && {\n\t\t\t\t\t\t\tmaxWidth: parentWidth + 2 * marginHorizontal,\n\t\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t>\n\t\t\t\t<View\n\t\t\t\t\tstyle={ this.getContentStyles( readableContentViewStyle ) }\n\t\t\t\t\tpointerEvents={ isReadOnly ? 'box-only' : 'auto' }\n\t\t\t\t>\n\t\t\t\t\t{ shouldShowInsertionPointBefore && (\n\t\t\t\t\t\t<BlockInsertionPoint />\n\t\t\t\t\t) }\n\t\t\t\t\t<BlockListBlock\n\t\t\t\t\t\tkey={ clientId }\n\t\t\t\t\t\tshowTitle={ false }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\t\t\t{ ...restProps }\n\t\t\t\t\t\tmarginHorizontal={ this.getMarginHorizontal() }\n\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! shouldShowInnerBlockAppender() &&\n\t\t\t\t\t\tshouldShowInsertionPointAfter && (\n\t\t\t\t\t\t\t<BlockInsertionPoint />\n\t\t\t\t\t\t) }\n\t\t\t\t</View>\n\t\t\t</ReadableContentView>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect(\n\t\t( select, { rootClientId, isStackedHorizontally, clientId } ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockInsertionPoint,\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockParents,\n\t\t\t\t__unstableGetBlockWithoutInnerBlocks,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst blockClientIds = getBlockOrder( rootClientId );\n\t\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\t\tconst blockInsertionPointIsVisible = isBlockInsertionPointVisible();\n\t\t\tconst shouldShowInsertionPointBefore =\n\t\t\t\t! isStackedHorizontally &&\n\t\t\t\tblockInsertionPointIsVisible &&\n\t\t\t\tinsertionPoint.rootClientId === rootClientId &&\n\t\t\t\t// if list is empty, show the insertion point (via the default appender)\n\t\t\t\t( blockClientIds.length === 0 ||\n\t\t\t\t\t// or if the insertion point is right before the denoted block\n\t\t\t\t\tblockClientIds[ insertionPoint.index ] === clientId );\n\n\t\t\tconst shouldShowInsertionPointAfter =\n\t\t\t\t! isStackedHorizontally &&\n\t\t\t\tblockInsertionPointIsVisible &&\n\t\t\t\tinsertionPoint.rootClientId === rootClientId &&\n\t\t\t\t// if the insertion point is at the end of the list\n\t\t\t\tblockClientIds.length === insertionPoint.index &&\n\t\t\t\t// and the denoted block is the last one on the list, show the indicator at the end of the block\n\t\t\t\tblockClientIds[ insertionPoint.index - 1 ] === clientId;\n\n\t\t\tconst isReadOnly = getSettings().readOnly;\n\n\t\t\tconst block = __unstableGetBlockWithoutInnerBlocks( clientId );\n\t\t\tconst { attributes, name } = block || {};\n\t\t\tconst { align } = attributes || {};\n\t\t\tconst parents = getBlockParents( clientId, true );\n\t\t\tconst hasParents = !! parents.length;\n\t\t\tconst parentBlock = hasParents\n\t\t\t\t? __unstableGetBlockWithoutInnerBlocks( parents[ 0 ] )\n\t\t\t\t: {};\n\t\t\tconst { align: parentBlockAlignment } =\n\t\t\t\tparentBlock?.attributes || {};\n\t\t\tconst { name: parentBlockName } = parentBlock || {};\n\n\t\t\treturn {\n\t\t\t\tshouldShowInsertionPointBefore,\n\t\t\t\tshouldShowInsertionPointAfter,\n\t\t\t\tisReadOnly,\n\t\t\t\thasParents,\n\t\t\t\tblockAlignment: align,\n\t\t\t\tparentBlockAlignment,\n\t\t\t\tblockName: name,\n\t\t\t\tparentBlockName,\n\t\t\t};\n\t\t}\n\t),\n] )( BlockListItem );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block-list-item.native.js"],"names":["View","Dimensions","Component","withSelect","compose","ReadableContentView","alignmentHelpers","BlockListBlock","BlockInsertionPoint","Grid","styles","store","blockEditorStore","stretchStyle","flex","BlockListItem","getMarginHorizontal","blockAlignment","marginHorizontal","parentBlockAlignment","hasParents","blockName","parentBlockName","parentWidth","blockWidth","props","isFullWidth","isWideWidth","isWider","isContainerRelated","screenWidth","Math","floor","get","width","isScreenWidthEqual","getContentStyles","readableContentViewStyle","fullAlignment","paddingHorizontal","fullAlignmentPadding","paddingLeft","renderContent","clientId","isReadOnly","shouldShowInsertionPointBefore","shouldShowInsertionPointAfter","contentResizeMode","shouldShowInnerBlockAppender","restProps","maxWidth","render","gridProperties","items","numColumns","length","indexOf","select","rootClientId","isStackedHorizontally","getBlockOrder","getBlockInsertionPoint","isBlockInsertionPointVisible","getSettings","getBlockParents","getBlock","blockClientIds","insertionPoint","blockInsertionPointIsVisible","index","readOnly","attributes","name","align","parents","parentBlock"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { withSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { ReadableContentView, alignmentHelpers } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockListBlock from './block';\nimport BlockInsertionPoint from './insertion-point';\nimport Grid from './grid-item';\n\nimport styles from './block-list-item.native.scss';\nimport { store as blockEditorStore } from '../../store';\n\nconst stretchStyle = {\n\tflex: 1,\n};\n\nexport class BlockListItem extends Component {\n\tgetMarginHorizontal() {\n\t\tconst {\n\t\t\tblockAlignment,\n\t\t\tmarginHorizontal,\n\t\t\tparentBlockAlignment,\n\t\t\thasParents,\n\t\t\tblockName,\n\t\t\tparentBlockName,\n\t\t\tparentWidth,\n\t\t\tblockWidth,\n\t\t} = this.props;\n\t\tconst {\n\t\t\tisFullWidth,\n\t\t\tisWideWidth,\n\t\t\tisWider,\n\t\t\tisContainerRelated,\n\t\t} = alignmentHelpers;\n\n\t\tif ( isFullWidth( blockAlignment ) ) {\n\t\t\tif ( ! hasParents ) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\treturn marginHorizontal;\n\t\t}\n\t\tif ( isWideWidth( blockAlignment ) ) {\n\t\t\treturn marginHorizontal;\n\t\t}\n\n\t\tconst screenWidth = Math.floor( Dimensions.get( 'window' ).width );\n\n\t\tif (\n\t\t\tisFullWidth( parentBlockAlignment ) &&\n\t\t\t! isWider( blockWidth, 'medium' )\n\t\t) {\n\t\t\tif (\n\t\t\t\tisContainerRelated( blockName ) ||\n\t\t\t\tisWider( screenWidth, 'mobile' )\n\t\t\t) {\n\t\t\t\treturn marginHorizontal;\n\t\t\t}\n\t\t\treturn marginHorizontal * 2;\n\t\t}\n\n\t\tif (\n\t\t\tisContainerRelated( parentBlockName ) &&\n\t\t\t! isContainerRelated( blockName )\n\t\t) {\n\t\t\tconst isScreenWidthEqual = parentWidth === screenWidth;\n\t\t\tif ( isScreenWidthEqual || isWider( screenWidth, 'mobile' ) ) {\n\t\t\t\treturn marginHorizontal;\n\t\t\t}\n\t\t}\n\n\t\treturn marginHorizontal;\n\t}\n\n\tgetContentStyles( readableContentViewStyle ) {\n\t\tconst {\n\t\t\tblockAlignment,\n\t\t\tblockName,\n\t\t\thasParents,\n\t\t\tparentBlockName,\n\t\t} = this.props;\n\t\tconst { isFullWidth, isContainerRelated } = alignmentHelpers;\n\n\t\treturn [\n\t\t\treadableContentViewStyle,\n\t\t\tisFullWidth( blockAlignment ) &&\n\t\t\t\t! hasParents && {\n\t\t\t\t\twidth: styles.fullAlignment.width,\n\t\t\t\t},\n\t\t\t! blockAlignment &&\n\t\t\t\thasParents &&\n\t\t\t\t! isContainerRelated( parentBlockName ) &&\n\t\t\t\tisContainerRelated( blockName ) && {\n\t\t\t\t\tpaddingHorizontal: styles.fullAlignmentPadding.paddingLeft,\n\t\t\t\t},\n\t\t];\n\t}\n\n\trenderContent() {\n\t\tconst {\n\t\t\tblockAlignment,\n\t\t\tclientId,\n\t\t\tisReadOnly,\n\t\t\tshouldShowInsertionPointBefore,\n\t\t\tshouldShowInsertionPointAfter,\n\t\t\tcontentResizeMode,\n\t\t\tshouldShowInnerBlockAppender,\n\t\t\tparentWidth,\n\t\t\tmarginHorizontal,\n\t\t\tblockName,\n\t\t\tblockWidth,\n\t\t\t...restProps\n\t\t} = this.props;\n\t\tconst readableContentViewStyle =\n\t\t\tcontentResizeMode === 'stretch' && stretchStyle;\n\t\tconst { isContainerRelated } = alignmentHelpers;\n\n\t\treturn (\n\t\t\t<ReadableContentView\n\t\t\t\talign={ blockAlignment }\n\t\t\t\tstyle={ [\n\t\t\t\t\treadableContentViewStyle,\n\t\t\t\t\tisContainerRelated( blockName ) &&\n\t\t\t\t\t\tparentWidth && {\n\t\t\t\t\t\t\tmaxWidth: parentWidth + 2 * marginHorizontal,\n\t\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t>\n\t\t\t\t<View\n\t\t\t\t\tstyle={ this.getContentStyles( readableContentViewStyle ) }\n\t\t\t\t\tpointerEvents={ isReadOnly ? 'box-only' : 'auto' }\n\t\t\t\t>\n\t\t\t\t\t{ shouldShowInsertionPointBefore && (\n\t\t\t\t\t\t<BlockInsertionPoint />\n\t\t\t\t\t) }\n\t\t\t\t\t<BlockListBlock\n\t\t\t\t\t\tkey={ clientId }\n\t\t\t\t\t\tshowTitle={ false }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\t\t\t{ ...restProps }\n\t\t\t\t\t\tmarginHorizontal={ this.getMarginHorizontal() }\n\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! shouldShowInnerBlockAppender() &&\n\t\t\t\t\t\tshouldShowInsertionPointAfter && (\n\t\t\t\t\t\t\t<BlockInsertionPoint />\n\t\t\t\t\t\t) }\n\t\t\t\t</View>\n\t\t\t</ReadableContentView>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tgridProperties,\n\t\t\tclientId,\n\t\t\tparentWidth,\n\t\t\titems,\n\t\t\tblockWidth,\n\t\t} = this.props;\n\n\t\tif ( ! blockWidth ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif ( gridProperties ) {\n\t\t\treturn (\n\t\t\t\t<Grid\n\t\t\t\t\tnumOfColumns={ gridProperties.numColumns }\n\t\t\t\t\ttileCount={ items.length }\n\t\t\t\t\tindex={ items.indexOf( clientId ) }\n\t\t\t\t\tmaxWidth={ parentWidth }\n\t\t\t\t>\n\t\t\t\t\t{ this.renderContent() }\n\t\t\t\t</Grid>\n\t\t\t);\n\t\t}\n\t\treturn this.renderContent();\n\t}\n}\n\nexport default compose( [\n\twithSelect(\n\t\t( select, { rootClientId, isStackedHorizontally, clientId } ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockInsertionPoint,\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetBlock,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst blockClientIds = getBlockOrder( rootClientId );\n\t\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\t\tconst blockInsertionPointIsVisible = isBlockInsertionPointVisible();\n\t\t\tconst shouldShowInsertionPointBefore =\n\t\t\t\t! isStackedHorizontally &&\n\t\t\t\tblockInsertionPointIsVisible &&\n\t\t\t\tinsertionPoint.rootClientId === rootClientId &&\n\t\t\t\t// if list is empty, show the insertion point (via the default appender)\n\t\t\t\t( blockClientIds.length === 0 ||\n\t\t\t\t\t// or if the insertion point is right before the denoted block\n\t\t\t\t\tblockClientIds[ insertionPoint.index ] === clientId );\n\n\t\t\tconst shouldShowInsertionPointAfter =\n\t\t\t\t! isStackedHorizontally &&\n\t\t\t\tblockInsertionPointIsVisible &&\n\t\t\t\tinsertionPoint.rootClientId === rootClientId &&\n\t\t\t\t// if the insertion point is at the end of the list\n\t\t\t\tblockClientIds.length === insertionPoint.index &&\n\t\t\t\t// and the denoted block is the last one on the list, show the indicator at the end of the block\n\t\t\t\tblockClientIds[ insertionPoint.index - 1 ] === clientId;\n\n\t\t\tconst isReadOnly = getSettings().readOnly;\n\n\t\t\tconst { attributes, name } = getBlock( clientId ) || {};\n\t\t\tconst { align } = attributes || {};\n\t\t\tconst parents = getBlockParents( clientId, true );\n\t\t\tconst hasParents = !! parents.length;\n\t\t\tconst parentBlock = hasParents ? getBlock( parents[ 0 ] ) : {};\n\t\t\tconst { align: parentBlockAlignment } =\n\t\t\t\tparentBlock?.attributes || {};\n\t\t\tconst { name: parentBlockName } = parentBlock || {};\n\n\t\t\treturn {\n\t\t\t\tshouldShowInsertionPointBefore,\n\t\t\t\tshouldShowInsertionPointAfter,\n\t\t\t\tisReadOnly,\n\t\t\t\thasParents,\n\t\t\t\tblockAlignment: align,\n\t\t\t\tparentBlockAlignment,\n\t\t\t\tblockName: name,\n\t\t\t\tparentBlockName,\n\t\t\t};\n\t\t}\n\t),\n] )( BlockListItem );\n"]}
|
|
@@ -7,6 +7,7 @@ import { Icon } from '@wordpress/components';
|
|
|
7
7
|
import { withSelect } from '@wordpress/data';
|
|
8
8
|
import { compose } from '@wordpress/compose';
|
|
9
9
|
import { getBlockType } from '@wordpress/blocks';
|
|
10
|
+
import { BlockIcon } from '@wordpress/block-editor';
|
|
10
11
|
/**
|
|
11
12
|
* External dependencies
|
|
12
13
|
*/
|
|
@@ -28,8 +29,6 @@ const BlockSelectionButton = ({
|
|
|
28
29
|
rootBlockIcon,
|
|
29
30
|
isRTL
|
|
30
31
|
}) => {
|
|
31
|
-
var _blockInformation$ico;
|
|
32
|
-
|
|
33
32
|
const blockInformation = useBlockDisplayInformation(clientId);
|
|
34
33
|
return createElement(View, {
|
|
35
34
|
style: [styles.selectionButtonContainer, rootClientId && styles.densedPaddingLeft]
|
|
@@ -52,9 +51,9 @@ const BlockSelectionButton = ({
|
|
|
52
51
|
}, createElement(SubdirectorSVG, {
|
|
53
52
|
fill: styles.arrow.color,
|
|
54
53
|
isRTL: isRTL
|
|
55
|
-
}))], createElement(
|
|
54
|
+
}))], (blockInformation === null || blockInformation === void 0 ? void 0 : blockInformation.icon) && createElement(BlockIcon, {
|
|
56
55
|
size: 24,
|
|
57
|
-
icon: blockInformation
|
|
56
|
+
icon: blockInformation.icon,
|
|
58
57
|
fill: styles.icon.color
|
|
59
58
|
}), createElement(Text, {
|
|
60
59
|
maxFontSizeMultiplier: 1.25,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block-selection-button.native.js"],"names":["Icon","withSelect","compose","getBlockType","View","Text","TouchableOpacity","BlockTitle","useBlockDisplayInformation","SubdirectorSVG","store","blockEditorStore","styles","BlockSelectionButton","clientId","rootClientId","rootBlockIcon","isRTL","blockInformation","selectionButtonContainer","densedPaddingLeft","button","src","icon","color","arrow","selectionButtonTitle","select","getBlockRootClientId","getBlockName","getSettings","rootBlockName","rootBlockType"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,IAAT,QAAqB,uBAArB;AACA,SAASC,UAAT,QAA2B,iBAA3B;AACA,SAASC,OAAT,QAAwB,oBAAxB;AACA,SAASC,YAAT,QAA6B,mBAA7B;AAEA;AACA;AACA;;AACA,SAASC,IAAT,EAAeC,IAAf,EAAqBC,gBAArB,QAA6C,cAA7C;AAEA;AACA;AACA;;AACA,OAAOC,UAAP,MAAuB,gBAAvB;AACA,OAAOC,0BAAP,MAAuC,kCAAvC;AACA,OAAOC,cAAP,MAA2B,qBAA3B;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,OAAOC,MAAP,MAAmB,+BAAnB;;AAEA,MAAMC,oBAAoB,GAAG,CAAE;AAC9BC,EAAAA,QAD8B;AAE9BC,EAAAA,YAF8B;AAG9BC,EAAAA,aAH8B;AAI9BC,EAAAA;AAJ8B,CAAF,KAKtB;
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block-selection-button.native.js"],"names":["Icon","withSelect","compose","getBlockType","BlockIcon","View","Text","TouchableOpacity","BlockTitle","useBlockDisplayInformation","SubdirectorSVG","store","blockEditorStore","styles","BlockSelectionButton","clientId","rootClientId","rootBlockIcon","isRTL","blockInformation","selectionButtonContainer","densedPaddingLeft","button","src","icon","color","arrow","selectionButtonTitle","select","getBlockRootClientId","getBlockName","getSettings","rootBlockName","rootBlockType"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Icon } from '@wordpress/components';\nimport { withSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { getBlockType } from '@wordpress/blocks';\nimport { BlockIcon } from '@wordpress/block-editor';\n\n/**\n * External dependencies\n */\nimport { View, Text, TouchableOpacity } from 'react-native';\n\n/**\n * Internal dependencies\n */\nimport BlockTitle from '../block-title';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport SubdirectorSVG from './subdirectory-icon';\nimport { store as blockEditorStore } from '../../store';\nimport styles from './block-selection-button.scss';\n\nconst BlockSelectionButton = ( {\n\tclientId,\n\trootClientId,\n\trootBlockIcon,\n\tisRTL,\n} ) => {\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\treturn (\n\t\t<View\n\t\t\tstyle={ [\n\t\t\t\tstyles.selectionButtonContainer,\n\t\t\t\trootClientId && styles.densedPaddingLeft,\n\t\t\t] }\n\t\t>\n\t\t\t<TouchableOpacity\n\t\t\t\tstyle={ styles.button }\n\t\t\t\tonPress={ () => {\n\t\t\t\t\t/* Open BottomSheet with markup */\n\t\t\t\t} }\n\t\t\t\tdisabled={\n\t\t\t\t\ttrue\n\t\t\t\t} /* Disable temporarily since onPress function is empty */\n\t\t\t>\n\t\t\t\t{ rootClientId &&\n\t\t\t\t\trootBlockIcon && [\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\tkey=\"parent-icon\"\n\t\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\t\ticon={ rootBlockIcon.src }\n\t\t\t\t\t\t\tfill={ styles.icon.color }\n\t\t\t\t\t\t/>,\n\t\t\t\t\t\t<View key=\"subdirectory-icon\" style={ styles.arrow }>\n\t\t\t\t\t\t\t<SubdirectorSVG\n\t\t\t\t\t\t\t\tfill={ styles.arrow.color }\n\t\t\t\t\t\t\t\tisRTL={ isRTL }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</View>,\n\t\t\t\t\t] }\n\t\t\t\t{ blockInformation?.icon && (\n\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\ticon={ blockInformation.icon }\n\t\t\t\t\t\tfill={ styles.icon.color }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<Text\n\t\t\t\t\tmaxFontSizeMultiplier={ 1.25 }\n\t\t\t\t\tellipsizeMode=\"tail\"\n\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\tstyle={ styles.selectionButtonTitle }\n\t\t\t\t>\n\t\t\t\t\t<BlockTitle clientId={ clientId } />\n\t\t\t\t</Text>\n\t\t\t</TouchableOpacity>\n\t\t</View>\n\t);\n};\n\nexport default compose( [\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst { getBlockRootClientId, getBlockName, getSettings } = select(\n\t\t\tblockEditorStore\n\t\t);\n\t\tconst rootClientId = getBlockRootClientId( clientId );\n\n\t\tif ( ! rootClientId ) {\n\t\t\treturn { clientId };\n\t\t}\n\t\tconst rootBlockName = getBlockName( rootClientId );\n\t\tconst rootBlockType = getBlockType( rootBlockName );\n\t\tconst rootBlockIcon = rootBlockType ? rootBlockType.icon : {};\n\n\t\treturn {\n\t\t\tclientId,\n\t\t\trootClientId,\n\t\t\trootBlockIcon,\n\t\t\tisRTL: getSettings().isRTL,\n\t\t};\n\t} ),\n] )( BlockSelectionButton );\n"]}
|
|
@@ -10,7 +10,7 @@ import { omit } from 'lodash';
|
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
import { createContext, useMemo, useCallback, RawHTML } from '@wordpress/element';
|
|
13
|
-
import { getBlockType, getSaveContent, isUnmodifiedDefaultBlock
|
|
13
|
+
import { getBlockType, getSaveContent, isUnmodifiedDefaultBlock } from '@wordpress/blocks';
|
|
14
14
|
import { withFilters } from '@wordpress/components';
|
|
15
15
|
import { withDispatch, withSelect, useDispatch } from '@wordpress/data';
|
|
16
16
|
import { compose, pure, ifCondition } from '@wordpress/compose';
|
|
@@ -67,6 +67,7 @@ function Block({
|
|
|
67
67
|
function BlockListBlock({
|
|
68
68
|
mode,
|
|
69
69
|
isLocked,
|
|
70
|
+
canRemove,
|
|
70
71
|
clientId,
|
|
71
72
|
isSelected,
|
|
72
73
|
isSelectionEnabled,
|
|
@@ -95,17 +96,16 @@ function BlockListBlock({
|
|
|
95
96
|
attributes: attributes,
|
|
96
97
|
setAttributes: setAttributes,
|
|
97
98
|
insertBlocksAfter: isLocked ? undefined : onInsertBlocksAfter,
|
|
98
|
-
onReplace:
|
|
99
|
-
onRemove:
|
|
100
|
-
mergeBlocks:
|
|
99
|
+
onReplace: canRemove ? onReplace : undefined,
|
|
100
|
+
onRemove: canRemove ? onRemove : undefined,
|
|
101
|
+
mergeBlocks: canRemove ? onMerge : undefined,
|
|
101
102
|
clientId: clientId,
|
|
102
103
|
isSelectionEnabled: isSelectionEnabled,
|
|
103
104
|
toggleSelection: toggleSelection
|
|
104
105
|
});
|
|
105
|
-
const blockType = getBlockType(name);
|
|
106
|
-
const lightBlockWrapper = blockType.apiVersion > 1 || hasBlockSupport(blockType, 'lightBlockWrapper', false); // Determine whether the block has props to apply to the wrapper.
|
|
106
|
+
const blockType = getBlockType(name); // Determine whether the block has props to apply to the wrapper.
|
|
107
107
|
|
|
108
|
-
if (blockType.getEditWrapperProps) {
|
|
108
|
+
if (blockType !== null && blockType !== void 0 && blockType.getEditWrapperProps) {
|
|
109
109
|
wrapperProps = mergeWrapperProps(wrapperProps, blockType.getEditWrapperProps(attributes));
|
|
110
110
|
}
|
|
111
111
|
|
|
@@ -140,7 +140,7 @@ function BlockListBlock({
|
|
|
140
140
|
}, createElement(BlockHtml, {
|
|
141
141
|
clientId: clientId
|
|
142
142
|
})));
|
|
143
|
-
} else if (
|
|
143
|
+
} else if ((blockType === null || blockType === void 0 ? void 0 : blockType.apiVersion) > 1) {
|
|
144
144
|
block = blockEdit;
|
|
145
145
|
} else {
|
|
146
146
|
block = createElement(Block, wrapperProps, blockEdit);
|
|
@@ -171,13 +171,17 @@ const applyWithSelect = withSelect((select, {
|
|
|
171
171
|
getBlockMode,
|
|
172
172
|
isSelectionEnabled,
|
|
173
173
|
getTemplateLock,
|
|
174
|
-
__unstableGetBlockWithoutInnerBlocks
|
|
174
|
+
__unstableGetBlockWithoutInnerBlocks,
|
|
175
|
+
canRemoveBlock,
|
|
176
|
+
canMoveBlock
|
|
175
177
|
} = select(blockEditorStore);
|
|
176
178
|
|
|
177
179
|
const block = __unstableGetBlockWithoutInnerBlocks(clientId);
|
|
178
180
|
|
|
179
181
|
const isSelected = isBlockSelected(clientId);
|
|
180
|
-
const templateLock = getTemplateLock(rootClientId);
|
|
182
|
+
const templateLock = getTemplateLock(rootClientId);
|
|
183
|
+
const canRemove = canRemoveBlock(clientId, rootClientId);
|
|
184
|
+
const canMove = canMoveBlock(clientId, rootClientId); // The fallback to `{}` is a temporary fix.
|
|
181
185
|
// This function should never be called when a block is not present in
|
|
182
186
|
// the state. It happens now because the order in withSelect rendering
|
|
183
187
|
// is not correct.
|
|
@@ -193,6 +197,8 @@ const applyWithSelect = withSelect((select, {
|
|
|
193
197
|
mode: getBlockMode(clientId),
|
|
194
198
|
isSelectionEnabled: isSelectionEnabled(),
|
|
195
199
|
isLocked: !!templateLock,
|
|
200
|
+
canRemove,
|
|
201
|
+
canMove,
|
|
196
202
|
// Users of the editor.BlockListBlock filter used to be able to
|
|
197
203
|
// access the block prop.
|
|
198
204
|
// Ideally these blocks would rely on the clientId prop only.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block.js"],"names":["classnames","omit","createContext","useMemo","useCallback","RawHTML","getBlockType","getSaveContent","isUnmodifiedDefaultBlock","hasBlockSupport","withFilters","withDispatch","withSelect","useDispatch","compose","pure","ifCondition","safeHTML","BlockEdit","BlockInvalidWarning","BlockCrashWarning","BlockCrashBoundary","BlockHtml","useBlockProps","store","blockEditorStore","BlockListBlockContext","mergeWrapperProps","propsA","propsB","newProps","className","style","Block","children","isHtml","props","__unstableIsHtml","BlockListBlock","mode","isLocked","clientId","isSelected","isSelectionEnabled","name","isValid","attributes","wrapperProps","setAttributes","onReplace","onInsertBlocksAfter","onMerge","toggleSelection","removeBlock","onRemove","blockEdit","undefined","blockType","lightBlockWrapper","apiVersion","getEditWrapperProps","isAligned","block","saveContent","display","value","memoizedValue","Object","values","applyWithSelect","select","rootClientId","isBlockSelected","getBlockMode","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","templateLock","applyWithDispatch","dispatch","ownProps","updateBlockAttributes","insertBlocks","mergeBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","newAttributes","getMultiSelectedBlockClientIds","multiSelectedBlockClientIds","clientIds","length","onInsertBlocks","blocks","index","getBlockIndex","forward","getPreviousBlockClientId","getNextBlockClientId","nextBlockClientId","previousBlockClientId","indexToSelect","initialPosition","selectionEnabled"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { omit } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tcreateContext,\n\tuseMemo,\n\tuseCallback,\n\tRawHTML,\n} from '@wordpress/element';\nimport {\n\tgetBlockType,\n\tgetSaveContent,\n\tisUnmodifiedDefaultBlock,\n\thasBlockSupport,\n} from '@wordpress/blocks';\nimport { withFilters } from '@wordpress/components';\nimport { withDispatch, withSelect, useDispatch } from '@wordpress/data';\nimport { compose, pure, ifCondition } from '@wordpress/compose';\nimport { safeHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockCrashWarning from './block-crash-warning';\nimport BlockCrashBoundary from './block-crash-boundary';\nimport BlockHtml from './block-html';\nimport { useBlockProps } from './use-block-props';\nimport { store as blockEditorStore } from '../../store';\n\nexport const BlockListBlockContext = createContext();\n\n/**\n * Merges wrapper props with special handling for classNames and styles.\n *\n * @param {Object} propsA\n * @param {Object} propsB\n *\n * @return {Object} Merged props.\n */\nfunction mergeWrapperProps( propsA, propsB ) {\n\tconst newProps = {\n\t\t...propsA,\n\t\t...propsB,\n\t};\n\n\tif ( propsA && propsB && propsA.className && propsB.className ) {\n\t\tnewProps.className = classnames( propsA.className, propsB.className );\n\t}\n\tif ( propsA && propsB && propsA.style && propsB.style ) {\n\t\tnewProps.style = { ...propsA.style, ...propsB.style };\n\t}\n\n\treturn newProps;\n}\n\nfunction Block( { children, isHtml, ...props } ) {\n\treturn (\n\t\t<div { ...useBlockProps( props, { __unstableIsHtml: isHtml } ) }>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nfunction BlockListBlock( {\n\tmode,\n\tisLocked,\n\tclientId,\n\tisSelected,\n\tisSelectionEnabled,\n\tclassName,\n\tname,\n\tisValid,\n\tattributes,\n\twrapperProps,\n\tsetAttributes,\n\tonReplace,\n\tonInsertBlocksAfter,\n\tonMerge,\n\ttoggleSelection,\n} ) {\n\tconst { removeBlock } = useDispatch( blockEditorStore );\n\tconst onRemove = useCallback( () => removeBlock( clientId ), [ clientId ] );\n\n\t// We wrap the BlockEdit component in a div that hides it when editing in\n\t// HTML mode. This allows us to render all of the ancillary pieces\n\t// (InspectorControls, etc.) which are inside `BlockEdit` but not\n\t// `BlockHTML`, even in HTML mode.\n\tlet blockEdit = (\n\t\t<BlockEdit\n\t\t\tname={ name }\n\t\t\tisSelected={ isSelected }\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tinsertBlocksAfter={ isLocked ? undefined : onInsertBlocksAfter }\n\t\t\tonReplace={ isLocked ? undefined : onReplace }\n\t\t\tonRemove={ isLocked ? undefined : onRemove }\n\t\t\tmergeBlocks={ isLocked ? undefined : onMerge }\n\t\t\tclientId={ clientId }\n\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\ttoggleSelection={ toggleSelection }\n\t\t/>\n\t);\n\n\tconst blockType = getBlockType( name );\n\tconst lightBlockWrapper =\n\t\tblockType.apiVersion > 1 ||\n\t\thasBlockSupport( blockType, 'lightBlockWrapper', false );\n\n\t// Determine whether the block has props to apply to the wrapper.\n\tif ( blockType.getEditWrapperProps ) {\n\t\twrapperProps = mergeWrapperProps(\n\t\t\twrapperProps,\n\t\t\tblockType.getEditWrapperProps( attributes )\n\t\t);\n\t}\n\n\tconst isAligned = wrapperProps && !! wrapperProps[ 'data-align' ];\n\n\t// For aligned blocks, provide a wrapper element so the block can be\n\t// positioned relative to the block column.\n\tif ( isAligned ) {\n\t\tblockEdit = (\n\t\t\t<div\n\t\t\t\tclassName=\"wp-block\"\n\t\t\t\tdata-align={ wrapperProps[ 'data-align' ] }\n\t\t\t>\n\t\t\t\t{ blockEdit }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tlet block;\n\n\tif ( ! isValid ) {\n\t\tconst saveContent = getSaveContent( blockType, attributes );\n\n\t\tblock = (\n\t\t\t<Block className=\"has-warning\">\n\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t<RawHTML>{ safeHTML( saveContent ) }</RawHTML>\n\t\t\t</Block>\n\t\t);\n\t} else if ( mode === 'html' ) {\n\t\t// Render blockEdit so the inspector controls don't disappear.\n\t\t// See #8969.\n\t\tblock = (\n\t\t\t<>\n\t\t\t\t<div style={ { display: 'none' } }>{ blockEdit }</div>\n\t\t\t\t<Block isHtml>\n\t\t\t\t\t<BlockHtml clientId={ clientId } />\n\t\t\t\t</Block>\n\t\t\t</>\n\t\t);\n\t} else if ( lightBlockWrapper ) {\n\t\tblock = blockEdit;\n\t} else {\n\t\tblock = <Block { ...wrapperProps }>{ blockEdit }</Block>;\n\t}\n\n\tconst value = {\n\t\tclientId,\n\t\tclassName,\n\t\twrapperProps: omit( wrapperProps, [ 'data-align' ] ),\n\t\tisAligned,\n\t};\n\tconst memoizedValue = useMemo( () => value, Object.values( value ) );\n\n\treturn (\n\t\t<BlockListBlockContext.Provider value={ memoizedValue }>\n\t\t\t<BlockCrashBoundary\n\t\t\t\tfallback={\n\t\t\t\t\t<Block className=\"has-warning\">\n\t\t\t\t\t\t<BlockCrashWarning />\n\t\t\t\t\t</Block>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ block }\n\t\t\t</BlockCrashBoundary>\n\t\t</BlockListBlockContext.Provider>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select, { clientId, rootClientId } ) => {\n\tconst {\n\t\tisBlockSelected,\n\t\tgetBlockMode,\n\t\tisSelectionEnabled,\n\t\tgetTemplateLock,\n\t\t__unstableGetBlockWithoutInnerBlocks,\n\t} = select( blockEditorStore );\n\tconst block = __unstableGetBlockWithoutInnerBlocks( clientId );\n\tconst isSelected = isBlockSelected( clientId );\n\tconst templateLock = getTemplateLock( rootClientId );\n\t// The fallback to `{}` is a temporary fix.\n\t// This function should never be called when a block is not present in\n\t// the state. It happens now because the order in withSelect rendering\n\t// is not correct.\n\tconst { name, attributes, isValid } = block || {};\n\n\t// Do not add new properties here, use `useSelect` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tmode: getBlockMode( clientId ),\n\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\tisLocked: !! templateLock,\n\t\t// Users of the editor.BlockListBlock filter used to be able to\n\t\t// access the block prop.\n\t\t// Ideally these blocks would rely on the clientId prop only.\n\t\t// This is kept for backward compatibility reasons.\n\t\tblock,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, { select } ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\t\t\tconst multiSelectedBlockClientIds = getMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId, rootClientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst { getPreviousBlockClientId, getNextBlockClientId } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\n\t\t\tif ( forward ) {\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\t\t\t\tif ( nextBlockClientId ) {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId = getPreviousBlockClientId(\n\t\t\t\t\tclientId\n\t\t\t\t);\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\tblocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\nexport default compose(\n\tpure,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\t// block is sometimes not mounted at the right time, causing it be undefined\n\t// see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tifCondition( ( { block } ) => !! block ),\n\twithFilters( 'editor.BlockListBlock' )\n)( BlockListBlock );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block.js"],"names":["classnames","omit","createContext","useMemo","useCallback","RawHTML","getBlockType","getSaveContent","isUnmodifiedDefaultBlock","withFilters","withDispatch","withSelect","useDispatch","compose","pure","ifCondition","safeHTML","BlockEdit","BlockInvalidWarning","BlockCrashWarning","BlockCrashBoundary","BlockHtml","useBlockProps","store","blockEditorStore","BlockListBlockContext","mergeWrapperProps","propsA","propsB","newProps","className","style","Block","children","isHtml","props","__unstableIsHtml","BlockListBlock","mode","isLocked","canRemove","clientId","isSelected","isSelectionEnabled","name","isValid","attributes","wrapperProps","setAttributes","onReplace","onInsertBlocksAfter","onMerge","toggleSelection","removeBlock","onRemove","blockEdit","undefined","blockType","getEditWrapperProps","isAligned","block","saveContent","display","apiVersion","value","memoizedValue","Object","values","applyWithSelect","select","rootClientId","isBlockSelected","getBlockMode","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","canRemoveBlock","canMoveBlock","templateLock","canMove","applyWithDispatch","dispatch","ownProps","updateBlockAttributes","insertBlocks","mergeBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","newAttributes","getMultiSelectedBlockClientIds","multiSelectedBlockClientIds","clientIds","length","onInsertBlocks","blocks","index","getBlockIndex","forward","getPreviousBlockClientId","getNextBlockClientId","nextBlockClientId","previousBlockClientId","indexToSelect","initialPosition","selectionEnabled"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { omit } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tcreateContext,\n\tuseMemo,\n\tuseCallback,\n\tRawHTML,\n} from '@wordpress/element';\nimport {\n\tgetBlockType,\n\tgetSaveContent,\n\tisUnmodifiedDefaultBlock,\n} from '@wordpress/blocks';\nimport { withFilters } from '@wordpress/components';\nimport { withDispatch, withSelect, useDispatch } from '@wordpress/data';\nimport { compose, pure, ifCondition } from '@wordpress/compose';\nimport { safeHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockCrashWarning from './block-crash-warning';\nimport BlockCrashBoundary from './block-crash-boundary';\nimport BlockHtml from './block-html';\nimport { useBlockProps } from './use-block-props';\nimport { store as blockEditorStore } from '../../store';\n\nexport const BlockListBlockContext = createContext();\n\n/**\n * Merges wrapper props with special handling for classNames and styles.\n *\n * @param {Object} propsA\n * @param {Object} propsB\n *\n * @return {Object} Merged props.\n */\nfunction mergeWrapperProps( propsA, propsB ) {\n\tconst newProps = {\n\t\t...propsA,\n\t\t...propsB,\n\t};\n\n\tif ( propsA && propsB && propsA.className && propsB.className ) {\n\t\tnewProps.className = classnames( propsA.className, propsB.className );\n\t}\n\tif ( propsA && propsB && propsA.style && propsB.style ) {\n\t\tnewProps.style = { ...propsA.style, ...propsB.style };\n\t}\n\n\treturn newProps;\n}\n\nfunction Block( { children, isHtml, ...props } ) {\n\treturn (\n\t\t<div { ...useBlockProps( props, { __unstableIsHtml: isHtml } ) }>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nfunction BlockListBlock( {\n\tmode,\n\tisLocked,\n\tcanRemove,\n\tclientId,\n\tisSelected,\n\tisSelectionEnabled,\n\tclassName,\n\tname,\n\tisValid,\n\tattributes,\n\twrapperProps,\n\tsetAttributes,\n\tonReplace,\n\tonInsertBlocksAfter,\n\tonMerge,\n\ttoggleSelection,\n} ) {\n\tconst { removeBlock } = useDispatch( blockEditorStore );\n\tconst onRemove = useCallback( () => removeBlock( clientId ), [ clientId ] );\n\n\t// We wrap the BlockEdit component in a div that hides it when editing in\n\t// HTML mode. This allows us to render all of the ancillary pieces\n\t// (InspectorControls, etc.) which are inside `BlockEdit` but not\n\t// `BlockHTML`, even in HTML mode.\n\tlet blockEdit = (\n\t\t<BlockEdit\n\t\t\tname={ name }\n\t\t\tisSelected={ isSelected }\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tinsertBlocksAfter={ isLocked ? undefined : onInsertBlocksAfter }\n\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\tclientId={ clientId }\n\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\ttoggleSelection={ toggleSelection }\n\t\t/>\n\t);\n\n\tconst blockType = getBlockType( name );\n\n\t// Determine whether the block has props to apply to the wrapper.\n\tif ( blockType?.getEditWrapperProps ) {\n\t\twrapperProps = mergeWrapperProps(\n\t\t\twrapperProps,\n\t\t\tblockType.getEditWrapperProps( attributes )\n\t\t);\n\t}\n\n\tconst isAligned = wrapperProps && !! wrapperProps[ 'data-align' ];\n\n\t// For aligned blocks, provide a wrapper element so the block can be\n\t// positioned relative to the block column.\n\tif ( isAligned ) {\n\t\tblockEdit = (\n\t\t\t<div\n\t\t\t\tclassName=\"wp-block\"\n\t\t\t\tdata-align={ wrapperProps[ 'data-align' ] }\n\t\t\t>\n\t\t\t\t{ blockEdit }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tlet block;\n\n\tif ( ! isValid ) {\n\t\tconst saveContent = getSaveContent( blockType, attributes );\n\n\t\tblock = (\n\t\t\t<Block className=\"has-warning\">\n\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t<RawHTML>{ safeHTML( saveContent ) }</RawHTML>\n\t\t\t</Block>\n\t\t);\n\t} else if ( mode === 'html' ) {\n\t\t// Render blockEdit so the inspector controls don't disappear.\n\t\t// See #8969.\n\t\tblock = (\n\t\t\t<>\n\t\t\t\t<div style={ { display: 'none' } }>{ blockEdit }</div>\n\t\t\t\t<Block isHtml>\n\t\t\t\t\t<BlockHtml clientId={ clientId } />\n\t\t\t\t</Block>\n\t\t\t</>\n\t\t);\n\t} else if ( blockType?.apiVersion > 1 ) {\n\t\tblock = blockEdit;\n\t} else {\n\t\tblock = <Block { ...wrapperProps }>{ blockEdit }</Block>;\n\t}\n\n\tconst value = {\n\t\tclientId,\n\t\tclassName,\n\t\twrapperProps: omit( wrapperProps, [ 'data-align' ] ),\n\t\tisAligned,\n\t};\n\tconst memoizedValue = useMemo( () => value, Object.values( value ) );\n\n\treturn (\n\t\t<BlockListBlockContext.Provider value={ memoizedValue }>\n\t\t\t<BlockCrashBoundary\n\t\t\t\tfallback={\n\t\t\t\t\t<Block className=\"has-warning\">\n\t\t\t\t\t\t<BlockCrashWarning />\n\t\t\t\t\t</Block>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ block }\n\t\t\t</BlockCrashBoundary>\n\t\t</BlockListBlockContext.Provider>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select, { clientId, rootClientId } ) => {\n\tconst {\n\t\tisBlockSelected,\n\t\tgetBlockMode,\n\t\tisSelectionEnabled,\n\t\tgetTemplateLock,\n\t\t__unstableGetBlockWithoutInnerBlocks,\n\t\tcanRemoveBlock,\n\t\tcanMoveBlock,\n\t} = select( blockEditorStore );\n\tconst block = __unstableGetBlockWithoutInnerBlocks( clientId );\n\tconst isSelected = isBlockSelected( clientId );\n\tconst templateLock = getTemplateLock( rootClientId );\n\tconst canRemove = canRemoveBlock( clientId, rootClientId );\n\tconst canMove = canMoveBlock( clientId, rootClientId );\n\n\t// The fallback to `{}` is a temporary fix.\n\t// This function should never be called when a block is not present in\n\t// the state. It happens now because the order in withSelect rendering\n\t// is not correct.\n\tconst { name, attributes, isValid } = block || {};\n\n\t// Do not add new properties here, use `useSelect` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tmode: getBlockMode( clientId ),\n\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\tisLocked: !! templateLock,\n\t\tcanRemove,\n\t\tcanMove,\n\t\t// Users of the editor.BlockListBlock filter used to be able to\n\t\t// access the block prop.\n\t\t// Ideally these blocks would rely on the clientId prop only.\n\t\t// This is kept for backward compatibility reasons.\n\t\tblock,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, { select } ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\t\t\tconst multiSelectedBlockClientIds = getMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId, rootClientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst { getPreviousBlockClientId, getNextBlockClientId } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\n\t\t\tif ( forward ) {\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\t\t\t\tif ( nextBlockClientId ) {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId = getPreviousBlockClientId(\n\t\t\t\t\tclientId\n\t\t\t\t);\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\tblocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\nexport default compose(\n\tpure,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\t// block is sometimes not mounted at the right time, causing it be undefined\n\t// see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tifCondition( ( { block } ) => !! block ),\n\twithFilters( 'editor.BlockListBlock' )\n)( BlockListBlock );\n"]}
|
|
@@ -46,9 +46,10 @@ function BlockForType({
|
|
|
46
46
|
baseGlobalStyles
|
|
47
47
|
}) {
|
|
48
48
|
const defaultColors = useSetting('color.palette') || emptyArray;
|
|
49
|
+
const fontSizes = useSetting('typography.fontSizes') || emptyArray;
|
|
49
50
|
const globalStyle = useGlobalStyles();
|
|
50
51
|
const mergedStyle = useMemo(() => {
|
|
51
|
-
return getMergedGlobalStyles(baseGlobalStyles, globalStyle, wrapperProps.style, attributes, defaultColors, name);
|
|
52
|
+
return getMergedGlobalStyles(baseGlobalStyles, globalStyle, wrapperProps.style, attributes, defaultColors, name, fontSizes);
|
|
52
53
|
}, [defaultColors, globalStyle, // I couldn't simply use attributes and wrapperProps.styles as a dependency because they are almost always a new reference.
|
|
53
54
|
// Thanks to the JSON.stringify we check if the value is the same instead of reference.
|
|
54
55
|
JSON.stringify(wrapperProps.style), JSON.stringify(pick(attributes, GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES))]);
|
|
@@ -262,7 +263,7 @@ export default compose([withSelect((select, {
|
|
|
262
263
|
getBlockIndex,
|
|
263
264
|
getSettings,
|
|
264
265
|
isBlockSelected,
|
|
265
|
-
|
|
266
|
+
getBlock,
|
|
266
267
|
getSelectedBlockClientId,
|
|
267
268
|
getLowestCommonAncestorWithSelectedBlock,
|
|
268
269
|
getBlockParents,
|
|
@@ -271,17 +272,15 @@ export default compose([withSelect((select, {
|
|
|
271
272
|
const order = getBlockIndex(clientId, rootClientId);
|
|
272
273
|
const isSelected = isBlockSelected(clientId);
|
|
273
274
|
const isInnerBlockSelected = hasSelectedInnerBlock(clientId);
|
|
274
|
-
|
|
275
|
-
const block = __unstableGetBlockWithoutInnerBlocks(clientId);
|
|
276
|
-
|
|
275
|
+
const block = getBlock(clientId);
|
|
277
276
|
const {
|
|
278
277
|
name,
|
|
279
278
|
attributes,
|
|
280
279
|
isValid
|
|
281
280
|
} = block || {};
|
|
282
281
|
const blockType = getBlockType(name || 'core/missing');
|
|
283
|
-
const title = blockType.title;
|
|
284
|
-
const icon = blockType.icon;
|
|
282
|
+
const title = blockType === null || blockType === void 0 ? void 0 : blockType.title;
|
|
283
|
+
const icon = blockType === null || blockType === void 0 ? void 0 : blockType.icon;
|
|
285
284
|
const parents = getBlockParents(clientId, true);
|
|
286
285
|
const parentId = parents[0] || '';
|
|
287
286
|
const selectedBlockClientId = getSelectedBlockClientId();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"names":["View","Text","TouchableWithoutFeedback","Dimensions","pick","Component","createRef","useMemo","GlobalStylesContext","getMergedGlobalStyles","alignmentHelpers","useGlobalStyles","withDispatch","withSelect","compose","withPreferredColorScheme","getBlockType","__experimentalGetAccessibleBlockLabel","getAccessibleBlockLabel","useSetting","styles","BlockEdit","BlockInvalidWarning","BlockMobileToolbar","store","blockEditorStore","emptyArray","BlockForType","attributes","clientId","contentStyle","getBlockWidth","insertBlocksAfter","isSelected","mergeBlocks","name","onBlockFocus","onChange","onDeleteBlock","onReplace","parentWidth","wrapperProps","blockWidth","baseGlobalStyles","defaultColors","globalStyle","mergedStyle","style","JSON","stringify","BLOCK_STYLE_ATTRIBUTES","BlockListBlock","constructor","arguments","bind","onFocus","state","props","marginHorizontal","anchorNodeRef","firstToSelectId","onSelect","blocks","onInsertBlocks","order","nativeEvent","layout","layoutWidth","Math","floor","width","setState","getBlockForType","renderBlockTitle","blockTitle","render","blockType","icon","isValid","title","isDimmed","isTouchable","isStackedHorizontally","isParentSelected","getStylesFromColorScheme","marginVertical","isInnerBlockSelected","align","accessibilityLabel","isFullWidth","isContainerRelated","accessible","screenWidth","get","isScreenWidthEqual","isScreenWidthWider","isFullWidthToolbar","flex","dimmed","solidBorder","borderFullWidth","containerBorderFullWidth","solidBorderColor","solidBorderColorDark","dashedBorder","dashedBorderColor","dashedBorderColorDark","neutralToolbar","current","wrapperPropsCache","WeakMap","emptyObj","getWrapperProps","value","getWrapperPropsFunction","cachedValue","set","select","rootClientId","getBlockIndex","getSettings","isBlockSelected","__unstableGetBlockWithoutInnerBlocks","getSelectedBlockClientId","getLowestCommonAncestorWithSelectedBlock","getBlockParents","hasSelectedInnerBlock","block","parents","parentId","selectedBlockClientId","commonAncestor","commonAncestorIndex","indexOf","length","selectedParents","isDescendantOfParentSelected","includes","__experimentalGlobalStylesBaseStyles","getEditWrapperProps","dispatch","ownProps","insertBlocks","replaceBlocks","selectBlock","updateBlockAttributes","forward","getPreviousBlockClientId","getNextBlockClientId","nextBlockClientId","previousBlockClientId","index","initialPosition","indexToSelect"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Text, TouchableWithoutFeedback, Dimensions } from 'react-native';\nimport { pick } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component, createRef, useMemo } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\talignmentHelpers,\n\tuseGlobalStyles,\n} from '@wordpress/components';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport {\n\tgetBlockType,\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n} from '@wordpress/blocks';\nimport { useSetting } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport styles from './block.scss';\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockMobileToolbar from '../block-mobile-toolbar';\nimport { store as blockEditorStore } from '../../store';\n\nconst emptyArray = [];\nfunction BlockForType( {\n\tattributes,\n\tclientId,\n\tcontentStyle,\n\tgetBlockWidth,\n\tinsertBlocksAfter,\n\tisSelected,\n\tmergeBlocks,\n\tname,\n\tonBlockFocus,\n\tonChange,\n\tonDeleteBlock,\n\tonReplace,\n\tparentWidth,\n\twrapperProps,\n\tblockWidth,\n\tbaseGlobalStyles,\n} ) {\n\tconst defaultColors = useSetting( 'color.palette' ) || emptyArray;\n\tconst globalStyle = useGlobalStyles();\n\tconst mergedStyle = useMemo( () => {\n\t\treturn getMergedGlobalStyles(\n\t\t\tbaseGlobalStyles,\n\t\t\tglobalStyle,\n\t\t\twrapperProps.style,\n\t\t\tattributes,\n\t\t\tdefaultColors,\n\t\t\tname\n\t\t);\n\t}, [\n\t\tdefaultColors,\n\t\tglobalStyle,\n\t\t// I couldn't simply use attributes and wrapperProps.styles as a dependency because they are almost always a new reference.\n\t\t// Thanks to the JSON.stringify we check if the value is the same instead of reference.\n\t\tJSON.stringify( wrapperProps.style ),\n\t\tJSON.stringify(\n\t\t\tpick( attributes, GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES )\n\t\t),\n\t] );\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ mergedStyle }>\n\t\t\t<BlockEdit\n\t\t\t\tname={ name }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ onChange }\n\t\t\t\tonFocus={ onBlockFocus }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tmergeBlocks={ mergeBlocks }\n\t\t\t\t// Block level styles\n\t\t\t\twrapperProps={ wrapperProps }\n\t\t\t\t// inherited styles merged with block level styles\n\t\t\t\tstyle={ mergedStyle }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t/>\n\t\t\t<View onLayout={ getBlockWidth } />\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n\nclass BlockListBlock extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.insertBlocksAfter = this.insertBlocksAfter.bind( this );\n\t\tthis.onFocus = this.onFocus.bind( this );\n\t\tthis.getBlockWidth = this.getBlockWidth.bind( this );\n\n\t\tthis.state = {\n\t\t\tblockWidth: this.props.blockWidth - 2 * this.props.marginHorizontal,\n\t\t};\n\n\t\tthis.anchorNodeRef = createRef();\n\t}\n\n\tonFocus() {\n\t\tconst { firstToSelectId, isSelected, onSelect } = this.props;\n\t\tif ( ! isSelected ) {\n\t\t\tonSelect( firstToSelectId );\n\t\t}\n\t}\n\n\tinsertBlocksAfter( blocks ) {\n\t\tthis.props.onInsertBlocks( blocks, this.props.order + 1 );\n\n\t\tif ( blocks[ 0 ] ) {\n\t\t\t// focus on the first block inserted\n\t\t\tthis.props.onSelect( blocks[ 0 ].clientId );\n\t\t}\n\t}\n\n\tgetBlockWidth( { nativeEvent } ) {\n\t\tconst { layout } = nativeEvent;\n\t\tconst { blockWidth } = this.state;\n\t\tconst layoutWidth = Math.floor( layout.width );\n\n\t\tif ( ! blockWidth || ! layoutWidth ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( blockWidth !== layoutWidth ) {\n\t\t\tthis.setState( { blockWidth: layoutWidth } );\n\t\t}\n\t}\n\n\tgetBlockForType() {\n\t\tconst { blockWidth } = this.state;\n\t\treturn (\n\t\t\t<BlockForType\n\t\t\t\t{ ...this.props }\n\t\t\t\tonBlockFocus={ this.onFocus }\n\t\t\t\tinsertBlocksAfter={ this.insertBlocksAfter }\n\t\t\t\tgetBlockWidth={ this.getBlockWidth }\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderBlockTitle() {\n\t\treturn (\n\t\t\t<View style={ styles.blockTitle }>\n\t\t\t\t<Text>BlockType: { this.props.name }</Text>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tattributes,\n\t\t\tblockType,\n\t\t\tclientId,\n\t\t\ticon,\n\t\t\tisSelected,\n\t\t\tisValid,\n\t\t\torder,\n\t\t\ttitle,\n\t\t\tisDimmed,\n\t\t\tisTouchable,\n\t\t\tonDeleteBlock,\n\t\t\tisStackedHorizontally,\n\t\t\tisParentSelected,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tmarginVertical,\n\t\t\tmarginHorizontal,\n\t\t\tisInnerBlockSelected,\n\t\t\tname,\n\t\t} = this.props;\n\n\t\tif ( ! attributes || ! blockType ) {\n\t\t\treturn null;\n\t\t}\n\t\tconst { blockWidth } = this.state;\n\t\tconst { align } = attributes;\n\t\tconst accessibilityLabel = getAccessibleBlockLabel(\n\t\t\tblockType,\n\t\t\tattributes,\n\t\t\torder + 1\n\t\t);\n\t\tconst { isFullWidth, isContainerRelated } = alignmentHelpers;\n\t\tconst accessible = ! ( isSelected || isInnerBlockSelected );\n\t\tconst screenWidth = Math.floor( Dimensions.get( 'window' ).width );\n\t\tconst isScreenWidthEqual = blockWidth === screenWidth;\n\t\tconst isScreenWidthWider = blockWidth < screenWidth;\n\t\tconst isFullWidthToolbar = isFullWidth( align ) || isScreenWidthEqual;\n\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\tonPress={ this.onFocus }\n\t\t\t\taccessible={ accessible }\n\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t>\n\t\t\t\t<View\n\t\t\t\t\tstyle={ { flex: 1 } }\n\t\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t\t>\n\t\t\t\t\t<View\n\t\t\t\t\t\tpointerEvents={ isTouchable ? 'auto' : 'box-only' }\n\t\t\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t{ marginVertical, marginHorizontal, flex: 1 },\n\t\t\t\t\t\t\tisDimmed && styles.dimmed,\n\t\t\t\t\t\t] }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tpointerEvents=\"box-none\"\n\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\tstyles.solidBorder,\n\t\t\t\t\t\t\t\t\tisFullWidth( align ) &&\n\t\t\t\t\t\t\t\t\t\tisScreenWidthWider &&\n\t\t\t\t\t\t\t\t\t\tstyles.borderFullWidth,\n\t\t\t\t\t\t\t\t\tisFullWidth( align ) &&\n\t\t\t\t\t\t\t\t\t\tisContainerRelated( name ) &&\n\t\t\t\t\t\t\t\t\t\tisScreenWidthWider &&\n\t\t\t\t\t\t\t\t\t\tstyles.containerBorderFullWidth,\n\t\t\t\t\t\t\t\t\tgetStylesFromColorScheme(\n\t\t\t\t\t\t\t\t\t\tstyles.solidBorderColor,\n\t\t\t\t\t\t\t\t\t\tstyles.solidBorderColorDark\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isParentSelected && (\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\tstyles.dashedBorder,\n\t\t\t\t\t\t\t\t\tgetStylesFromColorScheme(\n\t\t\t\t\t\t\t\t\t\tstyles.dashedBorderColor,\n\t\t\t\t\t\t\t\t\t\tstyles.dashedBorderColorDark\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isValid ? (\n\t\t\t\t\t\t\tthis.getBlockForType()\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<BlockInvalidWarning\n\t\t\t\t\t\t\t\tblockTitle={ title }\n\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<View\n\t\t\t\t\t\t\tstyle={ styles.neutralToolbar }\n\t\t\t\t\t\t\tref={ this.anchorNodeRef }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t\t<BlockMobileToolbar\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\tonDelete={ onDeleteBlock }\n\t\t\t\t\t\t\t\t\tisStackedHorizontally={\n\t\t\t\t\t\t\t\t\t\tisStackedHorizontally\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\t\t\t\tanchorNodeRef={ this.anchorNodeRef.current }\n\t\t\t\t\t\t\t\t\tisFullWidth={ isFullWidthToolbar }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t}\n}\n\n// Helper function to memoize the wrapperProps since getEditWrapperProps always returns a new reference\nconst wrapperPropsCache = new WeakMap();\nconst emptyObj = {};\nfunction getWrapperProps( value, getWrapperPropsFunction ) {\n\tif ( ! getWrapperPropsFunction ) {\n\t\treturn emptyObj;\n\t}\n\tconst cachedValue = wrapperPropsCache.get( value );\n\tif ( ! cachedValue ) {\n\t\tconst wrapperProps = getWrapperPropsFunction( value );\n\t\twrapperPropsCache.set( value, wrapperProps );\n\t\treturn wrapperProps;\n\t}\n\treturn cachedValue;\n}\n\nexport default compose( [\n\twithSelect( ( select, { clientId, rootClientId } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tgetSettings,\n\t\t\tisBlockSelected,\n\t\t\t__unstableGetBlockWithoutInnerBlocks,\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetLowestCommonAncestorWithSelectedBlock,\n\t\t\tgetBlockParents,\n\t\t\thasSelectedInnerBlock,\n\t\t} = select( blockEditorStore );\n\n\t\tconst order = getBlockIndex( clientId, rootClientId );\n\t\tconst isSelected = isBlockSelected( clientId );\n\t\tconst isInnerBlockSelected = hasSelectedInnerBlock( clientId );\n\t\tconst block = __unstableGetBlockWithoutInnerBlocks( clientId );\n\t\tconst { name, attributes, isValid } = block || {};\n\n\t\tconst blockType = getBlockType( name || 'core/missing' );\n\t\tconst title = blockType.title;\n\t\tconst icon = blockType.icon;\n\n\t\tconst parents = getBlockParents( clientId, true );\n\t\tconst parentId = parents[ 0 ] || '';\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\tconst commonAncestor = getLowestCommonAncestorWithSelectedBlock(\n\t\t\tclientId\n\t\t);\n\t\tconst commonAncestorIndex = parents.indexOf( commonAncestor ) - 1;\n\t\tconst firstToSelectId = commonAncestor\n\t\t\t? parents[ commonAncestorIndex ]\n\t\t\t: parents[ parents.length - 1 ];\n\n\t\tconst isParentSelected =\n\t\t\t// set false as a default value to prevent re-render when it's changed from null to false\n\t\t\t( selectedBlockClientId || false ) &&\n\t\t\tselectedBlockClientId === parentId;\n\n\t\tconst selectedParents = selectedBlockClientId\n\t\t\t? getBlockParents( selectedBlockClientId )\n\t\t\t: [];\n\t\tconst isDescendantOfParentSelected = selectedParents.includes(\n\t\t\tparentId\n\t\t);\n\t\tconst isTouchable =\n\t\t\tisSelected ||\n\t\t\tisDescendantOfParentSelected ||\n\t\t\tisParentSelected ||\n\t\t\tparentId === '';\n\t\tconst baseGlobalStyles = getSettings()\n\t\t\t?.__experimentalGlobalStylesBaseStyles;\n\n\t\treturn {\n\t\t\ticon,\n\t\t\tname: name || 'core/missing',\n\t\t\torder,\n\t\t\ttitle,\n\t\t\tattributes,\n\t\t\tblockType,\n\t\t\tisSelected,\n\t\t\tisInnerBlockSelected,\n\t\t\tisValid,\n\t\t\tisParentSelected,\n\t\t\tfirstToSelectId,\n\t\t\tisTouchable,\n\t\t\tbaseGlobalStyles,\n\t\t\twrapperProps: getWrapperProps(\n\t\t\t\tattributes,\n\t\t\t\tblockType.getEditWrapperProps\n\t\t\t),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps, { select } ) => {\n\t\tconst {\n\t\t\tinsertBlocks,\n\t\t\tmergeBlocks,\n\t\t\treplaceBlocks,\n\t\t\tselectBlock,\n\t\t\tupdateBlockAttributes,\n\t\t} = dispatch( blockEditorStore );\n\n\t\treturn {\n\t\t\tmergeBlocks( forward ) {\n\t\t\t\tconst { clientId } = ownProps;\n\t\t\t\tconst {\n\t\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\t\tgetNextBlockClientId,\n\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\tif ( forward ) {\n\t\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\t\t\t\t\tif ( nextBlockClientId ) {\n\t\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst previousBlockClientId = getPreviousBlockClientId(\n\t\t\t\t\t\tclientId\n\t\t\t\t\t);\n\t\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tonInsertBlocks( blocks, index ) {\n\t\t\t\tinsertBlocks( blocks, index, ownProps.rootClientId );\n\t\t\t},\n\t\t\tonSelect( clientId = ownProps.clientId, initialPosition ) {\n\t\t\t\tselectBlock( clientId, initialPosition );\n\t\t\t},\n\t\t\tonChange: ( attributes ) => {\n\t\t\t\tupdateBlockAttributes( ownProps.clientId, attributes );\n\t\t\t},\n\t\t\tonReplace( blocks, indexToSelect ) {\n\t\t\t\treplaceBlocks( [ ownProps.clientId ], blocks, indexToSelect );\n\t\t\t},\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n] )( BlockListBlock );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"names":["View","Text","TouchableWithoutFeedback","Dimensions","pick","Component","createRef","useMemo","GlobalStylesContext","getMergedGlobalStyles","alignmentHelpers","useGlobalStyles","withDispatch","withSelect","compose","withPreferredColorScheme","getBlockType","__experimentalGetAccessibleBlockLabel","getAccessibleBlockLabel","useSetting","styles","BlockEdit","BlockInvalidWarning","BlockMobileToolbar","store","blockEditorStore","emptyArray","BlockForType","attributes","clientId","contentStyle","getBlockWidth","insertBlocksAfter","isSelected","mergeBlocks","name","onBlockFocus","onChange","onDeleteBlock","onReplace","parentWidth","wrapperProps","blockWidth","baseGlobalStyles","defaultColors","fontSizes","globalStyle","mergedStyle","style","JSON","stringify","BLOCK_STYLE_ATTRIBUTES","BlockListBlock","constructor","arguments","bind","onFocus","state","props","marginHorizontal","anchorNodeRef","firstToSelectId","onSelect","blocks","onInsertBlocks","order","nativeEvent","layout","layoutWidth","Math","floor","width","setState","getBlockForType","renderBlockTitle","blockTitle","render","blockType","icon","isValid","title","isDimmed","isTouchable","isStackedHorizontally","isParentSelected","getStylesFromColorScheme","marginVertical","isInnerBlockSelected","align","accessibilityLabel","isFullWidth","isContainerRelated","accessible","screenWidth","get","isScreenWidthEqual","isScreenWidthWider","isFullWidthToolbar","flex","dimmed","solidBorder","borderFullWidth","containerBorderFullWidth","solidBorderColor","solidBorderColorDark","dashedBorder","dashedBorderColor","dashedBorderColorDark","neutralToolbar","current","wrapperPropsCache","WeakMap","emptyObj","getWrapperProps","value","getWrapperPropsFunction","cachedValue","set","select","rootClientId","getBlockIndex","getSettings","isBlockSelected","getBlock","getSelectedBlockClientId","getLowestCommonAncestorWithSelectedBlock","getBlockParents","hasSelectedInnerBlock","block","parents","parentId","selectedBlockClientId","commonAncestor","commonAncestorIndex","indexOf","length","selectedParents","isDescendantOfParentSelected","includes","__experimentalGlobalStylesBaseStyles","getEditWrapperProps","dispatch","ownProps","insertBlocks","replaceBlocks","selectBlock","updateBlockAttributes","forward","getPreviousBlockClientId","getNextBlockClientId","nextBlockClientId","previousBlockClientId","index","initialPosition","indexToSelect"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Text, TouchableWithoutFeedback, Dimensions } from 'react-native';\nimport { pick } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component, createRef, useMemo } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\talignmentHelpers,\n\tuseGlobalStyles,\n} from '@wordpress/components';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport {\n\tgetBlockType,\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n} from '@wordpress/blocks';\nimport { useSetting } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport styles from './block.scss';\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockMobileToolbar from '../block-mobile-toolbar';\nimport { store as blockEditorStore } from '../../store';\n\nconst emptyArray = [];\nfunction BlockForType( {\n\tattributes,\n\tclientId,\n\tcontentStyle,\n\tgetBlockWidth,\n\tinsertBlocksAfter,\n\tisSelected,\n\tmergeBlocks,\n\tname,\n\tonBlockFocus,\n\tonChange,\n\tonDeleteBlock,\n\tonReplace,\n\tparentWidth,\n\twrapperProps,\n\tblockWidth,\n\tbaseGlobalStyles,\n} ) {\n\tconst defaultColors = useSetting( 'color.palette' ) || emptyArray;\n\tconst fontSizes = useSetting( 'typography.fontSizes' ) || emptyArray;\n\tconst globalStyle = useGlobalStyles();\n\tconst mergedStyle = useMemo( () => {\n\t\treturn getMergedGlobalStyles(\n\t\t\tbaseGlobalStyles,\n\t\t\tglobalStyle,\n\t\t\twrapperProps.style,\n\t\t\tattributes,\n\t\t\tdefaultColors,\n\t\t\tname,\n\t\t\tfontSizes\n\t\t);\n\t}, [\n\t\tdefaultColors,\n\t\tglobalStyle,\n\t\t// I couldn't simply use attributes and wrapperProps.styles as a dependency because they are almost always a new reference.\n\t\t// Thanks to the JSON.stringify we check if the value is the same instead of reference.\n\t\tJSON.stringify( wrapperProps.style ),\n\t\tJSON.stringify(\n\t\t\tpick( attributes, GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES )\n\t\t),\n\t] );\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ mergedStyle }>\n\t\t\t<BlockEdit\n\t\t\t\tname={ name }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ onChange }\n\t\t\t\tonFocus={ onBlockFocus }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tmergeBlocks={ mergeBlocks }\n\t\t\t\t// Block level styles\n\t\t\t\twrapperProps={ wrapperProps }\n\t\t\t\t// inherited styles merged with block level styles\n\t\t\t\tstyle={ mergedStyle }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t/>\n\t\t\t<View onLayout={ getBlockWidth } />\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n\nclass BlockListBlock extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.insertBlocksAfter = this.insertBlocksAfter.bind( this );\n\t\tthis.onFocus = this.onFocus.bind( this );\n\t\tthis.getBlockWidth = this.getBlockWidth.bind( this );\n\n\t\tthis.state = {\n\t\t\tblockWidth: this.props.blockWidth - 2 * this.props.marginHorizontal,\n\t\t};\n\n\t\tthis.anchorNodeRef = createRef();\n\t}\n\n\tonFocus() {\n\t\tconst { firstToSelectId, isSelected, onSelect } = this.props;\n\t\tif ( ! isSelected ) {\n\t\t\tonSelect( firstToSelectId );\n\t\t}\n\t}\n\n\tinsertBlocksAfter( blocks ) {\n\t\tthis.props.onInsertBlocks( blocks, this.props.order + 1 );\n\n\t\tif ( blocks[ 0 ] ) {\n\t\t\t// focus on the first block inserted\n\t\t\tthis.props.onSelect( blocks[ 0 ].clientId );\n\t\t}\n\t}\n\n\tgetBlockWidth( { nativeEvent } ) {\n\t\tconst { layout } = nativeEvent;\n\t\tconst { blockWidth } = this.state;\n\t\tconst layoutWidth = Math.floor( layout.width );\n\n\t\tif ( ! blockWidth || ! layoutWidth ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( blockWidth !== layoutWidth ) {\n\t\t\tthis.setState( { blockWidth: layoutWidth } );\n\t\t}\n\t}\n\n\tgetBlockForType() {\n\t\tconst { blockWidth } = this.state;\n\t\treturn (\n\t\t\t<BlockForType\n\t\t\t\t{ ...this.props }\n\t\t\t\tonBlockFocus={ this.onFocus }\n\t\t\t\tinsertBlocksAfter={ this.insertBlocksAfter }\n\t\t\t\tgetBlockWidth={ this.getBlockWidth }\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderBlockTitle() {\n\t\treturn (\n\t\t\t<View style={ styles.blockTitle }>\n\t\t\t\t<Text>BlockType: { this.props.name }</Text>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tattributes,\n\t\t\tblockType,\n\t\t\tclientId,\n\t\t\ticon,\n\t\t\tisSelected,\n\t\t\tisValid,\n\t\t\torder,\n\t\t\ttitle,\n\t\t\tisDimmed,\n\t\t\tisTouchable,\n\t\t\tonDeleteBlock,\n\t\t\tisStackedHorizontally,\n\t\t\tisParentSelected,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tmarginVertical,\n\t\t\tmarginHorizontal,\n\t\t\tisInnerBlockSelected,\n\t\t\tname,\n\t\t} = this.props;\n\n\t\tif ( ! attributes || ! blockType ) {\n\t\t\treturn null;\n\t\t}\n\t\tconst { blockWidth } = this.state;\n\t\tconst { align } = attributes;\n\t\tconst accessibilityLabel = getAccessibleBlockLabel(\n\t\t\tblockType,\n\t\t\tattributes,\n\t\t\torder + 1\n\t\t);\n\t\tconst { isFullWidth, isContainerRelated } = alignmentHelpers;\n\t\tconst accessible = ! ( isSelected || isInnerBlockSelected );\n\t\tconst screenWidth = Math.floor( Dimensions.get( 'window' ).width );\n\t\tconst isScreenWidthEqual = blockWidth === screenWidth;\n\t\tconst isScreenWidthWider = blockWidth < screenWidth;\n\t\tconst isFullWidthToolbar = isFullWidth( align ) || isScreenWidthEqual;\n\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\tonPress={ this.onFocus }\n\t\t\t\taccessible={ accessible }\n\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t>\n\t\t\t\t<View\n\t\t\t\t\tstyle={ { flex: 1 } }\n\t\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t\t>\n\t\t\t\t\t<View\n\t\t\t\t\t\tpointerEvents={ isTouchable ? 'auto' : 'box-only' }\n\t\t\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t{ marginVertical, marginHorizontal, flex: 1 },\n\t\t\t\t\t\t\tisDimmed && styles.dimmed,\n\t\t\t\t\t\t] }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tpointerEvents=\"box-none\"\n\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\tstyles.solidBorder,\n\t\t\t\t\t\t\t\t\tisFullWidth( align ) &&\n\t\t\t\t\t\t\t\t\t\tisScreenWidthWider &&\n\t\t\t\t\t\t\t\t\t\tstyles.borderFullWidth,\n\t\t\t\t\t\t\t\t\tisFullWidth( align ) &&\n\t\t\t\t\t\t\t\t\t\tisContainerRelated( name ) &&\n\t\t\t\t\t\t\t\t\t\tisScreenWidthWider &&\n\t\t\t\t\t\t\t\t\t\tstyles.containerBorderFullWidth,\n\t\t\t\t\t\t\t\t\tgetStylesFromColorScheme(\n\t\t\t\t\t\t\t\t\t\tstyles.solidBorderColor,\n\t\t\t\t\t\t\t\t\t\tstyles.solidBorderColorDark\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isParentSelected && (\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\tstyles.dashedBorder,\n\t\t\t\t\t\t\t\t\tgetStylesFromColorScheme(\n\t\t\t\t\t\t\t\t\t\tstyles.dashedBorderColor,\n\t\t\t\t\t\t\t\t\t\tstyles.dashedBorderColorDark\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isValid ? (\n\t\t\t\t\t\t\tthis.getBlockForType()\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<BlockInvalidWarning\n\t\t\t\t\t\t\t\tblockTitle={ title }\n\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<View\n\t\t\t\t\t\t\tstyle={ styles.neutralToolbar }\n\t\t\t\t\t\t\tref={ this.anchorNodeRef }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t\t<BlockMobileToolbar\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\tonDelete={ onDeleteBlock }\n\t\t\t\t\t\t\t\t\tisStackedHorizontally={\n\t\t\t\t\t\t\t\t\t\tisStackedHorizontally\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\t\t\t\tanchorNodeRef={ this.anchorNodeRef.current }\n\t\t\t\t\t\t\t\t\tisFullWidth={ isFullWidthToolbar }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t}\n}\n\n// Helper function to memoize the wrapperProps since getEditWrapperProps always returns a new reference\nconst wrapperPropsCache = new WeakMap();\nconst emptyObj = {};\nfunction getWrapperProps( value, getWrapperPropsFunction ) {\n\tif ( ! getWrapperPropsFunction ) {\n\t\treturn emptyObj;\n\t}\n\tconst cachedValue = wrapperPropsCache.get( value );\n\tif ( ! cachedValue ) {\n\t\tconst wrapperProps = getWrapperPropsFunction( value );\n\t\twrapperPropsCache.set( value, wrapperProps );\n\t\treturn wrapperProps;\n\t}\n\treturn cachedValue;\n}\n\nexport default compose( [\n\twithSelect( ( select, { clientId, rootClientId } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tgetSettings,\n\t\t\tisBlockSelected,\n\t\t\tgetBlock,\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetLowestCommonAncestorWithSelectedBlock,\n\t\t\tgetBlockParents,\n\t\t\thasSelectedInnerBlock,\n\t\t} = select( blockEditorStore );\n\n\t\tconst order = getBlockIndex( clientId, rootClientId );\n\t\tconst isSelected = isBlockSelected( clientId );\n\t\tconst isInnerBlockSelected = hasSelectedInnerBlock( clientId );\n\t\tconst block = getBlock( clientId );\n\t\tconst { name, attributes, isValid } = block || {};\n\n\t\tconst blockType = getBlockType( name || 'core/missing' );\n\t\tconst title = blockType?.title;\n\t\tconst icon = blockType?.icon;\n\n\t\tconst parents = getBlockParents( clientId, true );\n\t\tconst parentId = parents[ 0 ] || '';\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\tconst commonAncestor = getLowestCommonAncestorWithSelectedBlock(\n\t\t\tclientId\n\t\t);\n\t\tconst commonAncestorIndex = parents.indexOf( commonAncestor ) - 1;\n\t\tconst firstToSelectId = commonAncestor\n\t\t\t? parents[ commonAncestorIndex ]\n\t\t\t: parents[ parents.length - 1 ];\n\n\t\tconst isParentSelected =\n\t\t\t// set false as a default value to prevent re-render when it's changed from null to false\n\t\t\t( selectedBlockClientId || false ) &&\n\t\t\tselectedBlockClientId === parentId;\n\n\t\tconst selectedParents = selectedBlockClientId\n\t\t\t? getBlockParents( selectedBlockClientId )\n\t\t\t: [];\n\t\tconst isDescendantOfParentSelected = selectedParents.includes(\n\t\t\tparentId\n\t\t);\n\t\tconst isTouchable =\n\t\t\tisSelected ||\n\t\t\tisDescendantOfParentSelected ||\n\t\t\tisParentSelected ||\n\t\t\tparentId === '';\n\t\tconst baseGlobalStyles = getSettings()\n\t\t\t?.__experimentalGlobalStylesBaseStyles;\n\n\t\treturn {\n\t\t\ticon,\n\t\t\tname: name || 'core/missing',\n\t\t\torder,\n\t\t\ttitle,\n\t\t\tattributes,\n\t\t\tblockType,\n\t\t\tisSelected,\n\t\t\tisInnerBlockSelected,\n\t\t\tisValid,\n\t\t\tisParentSelected,\n\t\t\tfirstToSelectId,\n\t\t\tisTouchable,\n\t\t\tbaseGlobalStyles,\n\t\t\twrapperProps: getWrapperProps(\n\t\t\t\tattributes,\n\t\t\t\tblockType.getEditWrapperProps\n\t\t\t),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps, { select } ) => {\n\t\tconst {\n\t\t\tinsertBlocks,\n\t\t\tmergeBlocks,\n\t\t\treplaceBlocks,\n\t\t\tselectBlock,\n\t\t\tupdateBlockAttributes,\n\t\t} = dispatch( blockEditorStore );\n\n\t\treturn {\n\t\t\tmergeBlocks( forward ) {\n\t\t\t\tconst { clientId } = ownProps;\n\t\t\t\tconst {\n\t\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\t\tgetNextBlockClientId,\n\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\tif ( forward ) {\n\t\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\t\t\t\t\tif ( nextBlockClientId ) {\n\t\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst previousBlockClientId = getPreviousBlockClientId(\n\t\t\t\t\t\tclientId\n\t\t\t\t\t);\n\t\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tonInsertBlocks( blocks, index ) {\n\t\t\t\tinsertBlocks( blocks, index, ownProps.rootClientId );\n\t\t\t},\n\t\t\tonSelect( clientId = ownProps.clientId, initialPosition ) {\n\t\t\t\tselectBlock( clientId, initialPosition );\n\t\t\t},\n\t\t\tonChange: ( attributes ) => {\n\t\t\t\tupdateBlockAttributes( ownProps.clientId, attributes );\n\t\t\t},\n\t\t\tonReplace( blocks, indexToSelect ) {\n\t\t\t\treplaceBlocks( [ ownProps.clientId ], blocks, indexToSelect );\n\t\t\t},\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n] )( BlockListBlock );\n"]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { createElement } from "@wordpress/element";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* External dependencies
|
|
5
|
+
*/
|
|
6
|
+
import { View } from 'react-native';
|
|
7
|
+
/**
|
|
8
|
+
* Internal dependencies
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import styles from './block-list-item.scss';
|
|
12
|
+
|
|
13
|
+
function Grid(props) {
|
|
14
|
+
/**
|
|
15
|
+
* Since we don't have `calc()`, we must calculate our spacings here in
|
|
16
|
+
* order to preserve even spacing between tiles and equal width for tiles
|
|
17
|
+
* in a given row.
|
|
18
|
+
*
|
|
19
|
+
* In order to ensure equal sizing of tile contents, we distribute the
|
|
20
|
+
* spacing such that each tile has an equal "share" of the fixed spacing. To
|
|
21
|
+
* keep the tiles properly aligned within their rows, we calculate the left
|
|
22
|
+
* and right paddings based on the tile's relative position within the row.
|
|
23
|
+
*
|
|
24
|
+
* Note: we use padding instead of margins so that the fixed spacing is
|
|
25
|
+
* included within the relative spacing (i.e. width percentage), and
|
|
26
|
+
* wrapping behavior is preserved.
|
|
27
|
+
*
|
|
28
|
+
* - The left most tile in a row must have left padding of zero.
|
|
29
|
+
* - The right most tile in a row must have a right padding of zero.
|
|
30
|
+
*
|
|
31
|
+
* The values of these left and right paddings are interpolated for tiles in
|
|
32
|
+
* between. The right padding is complementary with the left padding of the
|
|
33
|
+
* next tile (i.e. the right padding of [tile n] + the left padding of
|
|
34
|
+
* [tile n + 1] will be equal for all tiles except the last one in a given
|
|
35
|
+
* row).
|
|
36
|
+
*
|
|
37
|
+
*/
|
|
38
|
+
const {
|
|
39
|
+
numOfColumns,
|
|
40
|
+
children,
|
|
41
|
+
tileCount,
|
|
42
|
+
index,
|
|
43
|
+
maxWidth
|
|
44
|
+
} = props;
|
|
45
|
+
const lastTile = tileCount - 1;
|
|
46
|
+
const lastRow = Math.floor(lastTile / numOfColumns);
|
|
47
|
+
const row = Math.floor(index / numOfColumns);
|
|
48
|
+
const rowLength = row === lastRow ? lastTile % numOfColumns + 1 : numOfColumns;
|
|
49
|
+
return createElement(View, {
|
|
50
|
+
style: [{
|
|
51
|
+
width: maxWidth / rowLength
|
|
52
|
+
}, styles.gridItem]
|
|
53
|
+
}, children);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export default Grid;
|
|
57
|
+
//# sourceMappingURL=grid-item.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/grid-item.native.js"],"names":["View","styles","Grid","props","numOfColumns","children","tileCount","index","maxWidth","lastTile","lastRow","Math","floor","row","rowLength","width","gridItem"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,IAAT,QAAqB,cAArB;AAEA;AACA;AACA;;AACA,OAAOC,MAAP,MAAmB,wBAAnB;;AAEA,SAASC,IAAT,CAAeC,KAAf,EAAuB;AACtB;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACC,QAAM;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA,QAAhB;AAA0BC,IAAAA,SAA1B;AAAqCC,IAAAA,KAArC;AAA4CC,IAAAA;AAA5C,MAAyDL,KAA/D;AACA,QAAMM,QAAQ,GAAGH,SAAS,GAAG,CAA7B;AACA,QAAMI,OAAO,GAAGC,IAAI,CAACC,KAAL,CAAYH,QAAQ,GAAGL,YAAvB,CAAhB;AAEA,QAAMS,GAAG,GAAGF,IAAI,CAACC,KAAL,CAAYL,KAAK,GAAGH,YAApB,CAAZ;AACA,QAAMU,SAAS,GACdD,GAAG,KAAKH,OAAR,GAAoBD,QAAQ,GAAGL,YAAb,GAA8B,CAAhD,GAAoDA,YADrD;AAGA,SACC,cAAC,IAAD;AACC,IAAA,KAAK,EAAG,CACP;AACCW,MAAAA,KAAK,EAAEP,QAAQ,GAAGM;AADnB,KADO,EAIPb,MAAM,CAACe,QAJA;AADT,KAQGX,QARH,CADD;AAYA;;AAED,eAAeH,IAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * Internal dependencies\n */\nimport styles from './block-list-item.scss';\n\nfunction Grid( props ) {\n\t/**\n\t * Since we don't have `calc()`, we must calculate our spacings here in\n\t * order to preserve even spacing between tiles and equal width for tiles\n\t * in a given row.\n\t *\n\t * In order to ensure equal sizing of tile contents, we distribute the\n\t * spacing such that each tile has an equal \"share\" of the fixed spacing. To\n\t * keep the tiles properly aligned within their rows, we calculate the left\n\t * and right paddings based on the tile's relative position within the row.\n\t *\n\t * Note: we use padding instead of margins so that the fixed spacing is\n\t * included within the relative spacing (i.e. width percentage), and\n\t * wrapping behavior is preserved.\n\t *\n\t * - The left most tile in a row must have left padding of zero.\n\t * - The right most tile in a row must have a right padding of zero.\n\t *\n\t * The values of these left and right paddings are interpolated for tiles in\n\t * between. The right padding is complementary with the left padding of the\n\t * next tile (i.e. the right padding of [tile n] + the left padding of\n\t * [tile n + 1] will be equal for all tiles except the last one in a given\n\t * row).\n\t *\n\t */\n\tconst { numOfColumns, children, tileCount, index, maxWidth } = props;\n\tconst lastTile = tileCount - 1;\n\tconst lastRow = Math.floor( lastTile / numOfColumns );\n\n\tconst row = Math.floor( index / numOfColumns );\n\tconst rowLength =\n\t\trow === lastRow ? ( lastTile % numOfColumns ) + 1 : numOfColumns;\n\n\treturn (\n\t\t<View\n\t\t\tstyle={ [\n\t\t\t\t{\n\t\t\t\t\twidth: maxWidth / rowLength,\n\t\t\t\t},\n\t\t\t\tstyles.gridItem,\n\t\t\t] }\n\t\t>\n\t\t\t{ children }\n\t\t</View>\n\t);\n}\n\nexport default Grid;\n"]}
|