@wordpress/block-editor 16.0.1-next.v.202607070741.0 → 16.1.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 +27 -1
- package/README.md +8 -0
- package/build/components/alignment-control/ui.cjs +2 -4
- package/build/components/alignment-control/ui.cjs.map +2 -2
- package/build/components/background-image-control/index.cjs +40 -10
- package/build/components/background-image-control/index.cjs.map +2 -2
- package/build/components/block-alignment-control/ui.cjs +5 -3
- package/build/components/block-alignment-control/ui.cjs.map +2 -2
- package/build/components/block-canvas/index.cjs +6 -1
- package/build/components/block-canvas/index.cjs.map +2 -2
- package/build/components/block-controls/groups.cjs +3 -1
- package/build/components/block-controls/groups.cjs.map +2 -2
- package/build/components/block-edit/edit.cjs +10 -18
- package/build/components/block-edit/edit.cjs.map +2 -2
- package/build/components/block-inspector/index.cjs +73 -46
- package/build/components/block-inspector/index.cjs.map +2 -2
- package/build/components/block-list/block-html.cjs +4 -1
- package/build/components/block-list/block-html.cjs.map +2 -2
- package/build/components/block-list/block.cjs +9 -3
- package/build/components/block-list/block.cjs.map +3 -3
- package/build/components/block-list/index.cjs +1 -3
- package/build/components/block-list/index.cjs.map +2 -2
- package/build/components/block-list/use-block-props/index.cjs +7 -2
- package/build/components/block-list/use-block-props/index.cjs.map +2 -2
- package/build/components/block-list/use-block-props/use-focus-first-element.cjs +9 -4
- package/build/components/block-list/use-block-props/use-focus-first-element.cjs.map +2 -2
- package/build/components/block-list/use-block-props/use-focus-handler.cjs +11 -4
- package/build/components/block-list/use-block-props/use-focus-handler.cjs.map +2 -2
- package/build/components/block-list/use-block-props/use-register-block-event-handlers.cjs +48 -0
- package/build/components/block-list/use-block-props/use-register-block-event-handlers.cjs.map +7 -0
- package/build/components/block-parent-selector/index.cjs +2 -2
- package/build/components/block-parent-selector/index.cjs.map +2 -2
- package/build/components/block-toolbar/index.cjs +43 -24
- package/build/components/block-toolbar/index.cjs.map +2 -2
- package/build/components/block-toolbar/switch-section-style.cjs +4 -2
- package/build/components/block-toolbar/switch-section-style.cjs.map +3 -3
- package/build/components/block-tools/empty-block-inserter.cjs +2 -7
- package/build/components/block-tools/empty-block-inserter.cjs.map +2 -2
- package/build/components/block-tools/index.cjs +7 -2
- package/build/components/block-tools/index.cjs.map +2 -2
- package/build/components/block-vertical-alignment-control/ui.cjs +3 -5
- package/build/components/block-vertical-alignment-control/ui.cjs.map +2 -2
- package/build/components/block-visibility/modal.cjs +20 -6
- package/build/components/block-visibility/modal.cjs.map +2 -2
- package/build/components/block-visibility/use-block-visibility.cjs +16 -6
- package/build/components/block-visibility/use-block-visibility.cjs.map +3 -3
- package/build/components/block-visibility/utils.cjs +15 -2
- package/build/components/block-visibility/utils.cjs.map +3 -3
- package/build/components/block-visibility/viewport-menu-item.cjs +7 -1
- package/build/components/block-visibility/viewport-menu-item.cjs.map +2 -2
- package/build/components/block-visibility/viewport-toolbar.cjs +5 -0
- package/build/components/block-visibility/viewport-toolbar.cjs.map +2 -2
- package/build/components/block-visibility/viewport-visibility-info.cjs +5 -1
- package/build/components/block-visibility/viewport-visibility-info.cjs.map +2 -2
- package/build/components/border-radius-control/utils.cjs +8 -58
- package/build/components/border-radius-control/utils.cjs.map +2 -2
- package/build/components/child-layout-control/index.cjs +0 -4
- package/build/components/child-layout-control/index.cjs.map +2 -2
- package/build/components/colors-gradients/control.cjs +5 -3
- package/build/components/colors-gradients/control.cjs.map +2 -2
- package/build/components/dimension-control/index.cjs +30 -20
- package/build/components/dimension-control/index.cjs.map +3 -3
- package/build/components/dimensions-tool/aspect-ratio-tool.cjs +9 -2
- package/build/components/dimensions-tool/aspect-ratio-tool.cjs.map +3 -3
- package/build/components/editor-styles/index.cjs +9 -1
- package/build/components/editor-styles/index.cjs.map +2 -2
- package/build/components/global-styles/background-panel.cjs +66 -25
- package/build/components/global-styles/background-panel.cjs.map +3 -3
- package/build/components/global-styles/border-panel.cjs +153 -55
- package/build/components/global-styles/border-panel.cjs.map +3 -3
- package/build/components/global-styles/color-gradient-dropdown-item.cjs +46 -14
- package/build/components/global-styles/color-gradient-dropdown-item.cjs.map +3 -3
- package/build/components/global-styles/color-panel.cjs +63 -17
- package/build/components/global-styles/color-panel.cjs.map +2 -2
- package/build/components/global-styles/dimensions-panel.cjs +242 -64
- package/build/components/global-styles/dimensions-panel.cjs.map +3 -3
- package/build/components/global-styles/filters-panel.cjs +59 -20
- package/build/components/global-styles/filters-panel.cjs.map +3 -3
- package/build/components/global-styles/hooks.cjs +4 -1
- package/build/components/global-styles/hooks.cjs.map +2 -2
- package/build/components/global-styles/inheritance/index.cjs +142 -0
- package/build/components/global-styles/inheritance/index.cjs.map +7 -0
- package/build/components/global-styles/inherited-value-context.cjs +173 -0
- package/build/components/global-styles/inherited-value-context.cjs.map +7 -0
- package/build/components/global-styles/shadow-panel-components.cjs +38 -20
- package/build/components/global-styles/shadow-panel-components.cjs.map +2 -2
- package/build/components/global-styles/state-control-badges.cjs +39 -3
- package/build/components/global-styles/state-control-badges.cjs.map +2 -2
- package/build/components/global-styles/state-control.cjs +1 -1
- package/build/components/global-styles/state-control.cjs.map +2 -2
- package/build/components/global-styles/typography-panel.cjs +271 -79
- package/build/components/global-styles/typography-panel.cjs.map +3 -3
- package/build/components/image-size-control/index.cjs +2 -4
- package/build/components/image-size-control/index.cjs.map +2 -2
- package/build/components/inserter/media-tab/hooks.cjs +33 -6
- package/build/components/inserter/media-tab/hooks.cjs.map +2 -2
- package/build/components/inserter/media-tab/media-panel.cjs +78 -16
- package/build/components/inserter/media-tab/media-panel.cjs.map +3 -3
- package/build/components/inspector-controls-tabs/styles-tab.cjs +10 -1
- package/build/components/inspector-controls-tabs/styles-tab.cjs.map +2 -2
- package/build/components/keyboard-shortcuts/index.cjs +19 -11
- package/build/components/keyboard-shortcuts/index.cjs.map +2 -2
- package/build/components/line-height-control/index.cjs +1 -2
- package/build/components/line-height-control/index.cjs.map +2 -2
- package/build/components/link-control/index.cjs +3 -1
- package/build/components/link-control/index.cjs.map +2 -2
- package/build/components/list-view/block.cjs +13 -4
- package/build/components/list-view/block.cjs.map +2 -2
- package/build/components/media-placeholder/index.cjs +0 -1
- package/build/components/media-placeholder/index.cjs.map +2 -2
- package/build/components/preset-input-control/index.cjs +2 -1
- package/build/components/preset-input-control/index.cjs.map +2 -2
- package/build/components/provider/block-refs-provider.cjs +8 -2
- package/build/components/provider/block-refs-provider.cjs.map +2 -2
- package/build/components/provider/index.cjs +1 -1
- package/build/components/provider/index.cjs.map +2 -2
- package/build/components/provider/use-block-sync.cjs +18 -6
- package/build/components/provider/use-block-sync.cjs.map +2 -2
- package/build/components/provider/use-media-upload-settings.cjs +3 -1
- package/build/components/provider/use-media-upload-settings.cjs.map +2 -2
- package/build/components/rich-text/event-listeners/before-input-rules.cjs +3 -4
- package/build/components/rich-text/event-listeners/before-input-rules.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/delete.cjs +2 -3
- package/build/components/rich-text/event-listeners/delete.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/enter.cjs +3 -2
- package/build/components/rich-text/event-listeners/enter.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/input-events.cjs +3 -3
- package/build/components/rich-text/event-listeners/input-events.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/input-rules.cjs +3 -4
- package/build/components/rich-text/event-listeners/input-rules.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/insert-replacement-text.cjs +3 -3
- package/build/components/rich-text/event-listeners/insert-replacement-text.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/paste-handler.cjs +2 -1
- package/build/components/rich-text/event-listeners/paste-handler.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/remove-browser-shortcuts.cjs +3 -3
- package/build/components/rich-text/event-listeners/remove-browser-shortcuts.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/shortcuts.cjs +3 -3
- package/build/components/rich-text/event-listeners/shortcuts.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/undo-automatic-change.cjs +3 -3
- package/build/components/rich-text/event-listeners/undo-automatic-change.cjs.map +3 -3
- package/build/components/rich-text/index.cjs +76 -17
- package/build/components/rich-text/index.cjs.map +2 -2
- package/build/components/spacing-sizes-control/utils.cjs +6 -19
- package/build/components/spacing-sizes-control/utils.cjs.map +2 -2
- package/build/components/text-indent-control/index.cjs +8 -2
- package/build/components/text-indent-control/index.cjs.map +2 -2
- package/build/components/typewriter/index.cjs +129 -136
- package/build/components/typewriter/index.cjs.map +3 -3
- package/build/components/url-input/index.cjs +303 -344
- package/build/components/url-input/index.cjs.map +3 -3
- package/build/components/use-block-commands/index.cjs +21 -17
- package/build/components/use-block-commands/index.cjs.map +2 -2
- package/build/components/use-on-block-drop/index.cjs +1 -1
- package/build/components/use-on-block-drop/index.cjs.map +2 -2
- package/build/components/writing-flow/index.cjs +14 -1
- package/build/components/writing-flow/index.cjs.map +3 -3
- package/build/components/writing-flow/use-arrow-nav.cjs +42 -6
- package/build/components/writing-flow/use-arrow-nav.cjs.map +2 -2
- package/build/components/writing-flow/use-click-selection.cjs +29 -3
- package/build/components/writing-flow/use-click-selection.cjs.map +2 -2
- package/build/components/writing-flow/use-clipboard-handler.cjs +4 -1
- package/build/components/writing-flow/use-clipboard-handler.cjs.map +2 -2
- package/build/components/writing-flow/use-drag-selection.cjs +3 -8
- package/build/components/writing-flow/use-drag-selection.cjs.map +2 -2
- package/build/components/writing-flow/use-editable-root-event-handlers.cjs +179 -0
- package/build/components/writing-flow/use-editable-root-event-handlers.cjs.map +7 -0
- package/build/components/writing-flow/use-editable-root.cjs +75 -0
- package/build/components/writing-flow/use-editable-root.cjs.map +7 -0
- package/build/components/writing-flow/use-home-end.cjs +64 -0
- package/build/components/writing-flow/use-home-end.cjs.map +7 -0
- package/build/components/writing-flow/use-input.cjs +15 -5
- package/build/components/writing-flow/use-input.cjs.map +2 -2
- package/build/components/writing-flow/use-multi-selection.cjs +2 -2
- package/build/components/writing-flow/use-multi-selection.cjs.map +2 -2
- package/build/components/writing-flow/use-select-all.cjs +14 -2
- package/build/components/writing-flow/use-select-all.cjs.map +2 -2
- package/build/components/writing-flow/use-selection-observer.cjs +132 -22
- package/build/components/writing-flow/use-selection-observer.cjs.map +3 -3
- package/build/components/writing-flow/utils.cjs +28 -2
- package/build/components/writing-flow/utils.cjs.map +2 -2
- package/build/hooks/background.cjs +14 -10
- package/build/hooks/background.cjs.map +2 -2
- package/build/hooks/block-fields/rich-text/index.cjs +2 -3
- package/build/hooks/block-fields/rich-text/index.cjs.map +3 -3
- package/build/hooks/block-style-variation.cjs +4 -45
- package/build/hooks/block-style-variation.cjs.map +3 -3
- package/build/hooks/border.cjs +19 -4
- package/build/hooks/border.cjs.map +2 -2
- package/build/hooks/custom-css.cjs +6 -2
- package/build/hooks/custom-css.cjs.map +2 -2
- package/build/hooks/dimensions.cjs +15 -4
- package/build/hooks/dimensions.cjs.map +2 -2
- package/build/hooks/duotone.cjs +26 -14
- package/build/hooks/duotone.cjs.map +3 -3
- package/build/hooks/elements.cjs +15 -5
- package/build/hooks/elements.cjs.map +2 -2
- package/build/hooks/grid-visualizer.cjs +5 -3
- package/build/hooks/grid-visualizer.cjs.map +2 -2
- package/build/hooks/layout-child.cjs +22 -12
- package/build/hooks/layout-child.cjs.map +3 -3
- package/build/hooks/layout.cjs +28 -13
- package/build/hooks/layout.cjs.map +3 -3
- package/build/hooks/line-height.cjs +1 -2
- package/build/hooks/line-height.cjs.map +2 -2
- package/build/hooks/states.cjs +27 -7
- package/build/hooks/states.cjs.map +3 -3
- package/build/hooks/style.cjs +31 -9
- package/build/hooks/style.cjs.map +3 -3
- package/build/hooks/text-align.cjs +36 -6
- package/build/hooks/text-align.cjs.map +3 -3
- package/build/hooks/typography.cjs +14 -5
- package/build/hooks/typography.cjs.map +2 -2
- package/build/layouts/constrained.cjs +14 -6
- package/build/layouts/constrained.cjs.map +2 -2
- package/build/layouts/flex.cjs +27 -19
- package/build/layouts/flex.cjs.map +2 -2
- package/build/layouts/grid.cjs +0 -2
- package/build/layouts/grid.cjs.map +2 -2
- package/build/private-apis.cjs +9 -5
- package/build/private-apis.cjs.map +3 -3
- package/build/store/actions.cjs +11 -6
- package/build/store/actions.cjs.map +2 -2
- package/build/store/private-selectors.cjs +41 -3
- package/build/store/private-selectors.cjs.map +3 -3
- package/build/store/reducer.cjs +6 -6
- package/build/store/reducer.cjs.map +2 -2
- package/build/store/selectors.cjs +23 -0
- package/build/store/selectors.cjs.map +2 -2
- package/build/utils/block-bindings.cjs +29 -0
- package/build/utils/block-bindings.cjs.map +2 -2
- package/build/utils/dom.cjs +14 -0
- package/build/utils/dom.cjs.map +2 -2
- package/build/{components/rich-text/input-event.cjs → utils/native-undo.cjs} +29 -24
- package/build/utils/native-undo.cjs.map +7 -0
- package/build-module/components/alignment-control/ui.mjs +2 -4
- package/build-module/components/alignment-control/ui.mjs.map +2 -2
- package/build-module/components/background-image-control/index.mjs +43 -10
- package/build-module/components/background-image-control/index.mjs.map +2 -2
- package/build-module/components/block-alignment-control/ui.mjs +5 -3
- package/build-module/components/block-alignment-control/ui.mjs.map +2 -2
- package/build-module/components/block-canvas/index.mjs +7 -2
- package/build-module/components/block-canvas/index.mjs.map +2 -2
- package/build-module/components/block-controls/groups.mjs +3 -1
- package/build-module/components/block-controls/groups.mjs.map +2 -2
- package/build-module/components/block-edit/edit.mjs +11 -18
- package/build-module/components/block-edit/edit.mjs.map +2 -2
- package/build-module/components/block-inspector/index.mjs +74 -46
- package/build-module/components/block-inspector/index.mjs.map +2 -2
- package/build-module/components/block-list/block-html.mjs +4 -1
- package/build-module/components/block-list/block-html.mjs.map +2 -2
- package/build-module/components/block-list/block.mjs +9 -3
- package/build-module/components/block-list/block.mjs.map +3 -3
- package/build-module/components/block-list/index.mjs +1 -3
- package/build-module/components/block-list/index.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/index.mjs +7 -2
- package/build-module/components/block-list/use-block-props/index.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/use-focus-first-element.mjs +9 -4
- package/build-module/components/block-list/use-block-props/use-focus-first-element.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/use-focus-handler.mjs +11 -4
- package/build-module/components/block-list/use-block-props/use-focus-handler.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/use-register-block-event-handlers.mjs +28 -0
- package/build-module/components/block-list/use-block-props/use-register-block-event-handlers.mjs.map +7 -0
- package/build-module/components/block-parent-selector/index.mjs +2 -2
- package/build-module/components/block-parent-selector/index.mjs.map +2 -2
- package/build-module/components/block-toolbar/index.mjs +43 -24
- package/build-module/components/block-toolbar/index.mjs.map +2 -2
- package/build-module/components/block-toolbar/switch-section-style.mjs +4 -2
- package/build-module/components/block-toolbar/switch-section-style.mjs.map +2 -2
- package/build-module/components/block-tools/empty-block-inserter.mjs +2 -7
- package/build-module/components/block-tools/empty-block-inserter.mjs.map +2 -2
- package/build-module/components/block-tools/index.mjs +7 -2
- package/build-module/components/block-tools/index.mjs.map +2 -2
- package/build-module/components/block-vertical-alignment-control/ui.mjs +4 -6
- package/build-module/components/block-vertical-alignment-control/ui.mjs.map +2 -2
- package/build-module/components/block-visibility/modal.mjs +22 -10
- package/build-module/components/block-visibility/modal.mjs.map +2 -2
- package/build-module/components/block-visibility/use-block-visibility.mjs +17 -7
- package/build-module/components/block-visibility/use-block-visibility.mjs.map +2 -2
- package/build-module/components/block-visibility/utils.mjs +18 -3
- package/build-module/components/block-visibility/utils.mjs.map +2 -2
- package/build-module/components/block-visibility/viewport-menu-item.mjs +7 -1
- package/build-module/components/block-visibility/viewport-menu-item.mjs.map +2 -2
- package/build-module/components/block-visibility/viewport-toolbar.mjs +5 -0
- package/build-module/components/block-visibility/viewport-toolbar.mjs.map +2 -2
- package/build-module/components/block-visibility/viewport-visibility-info.mjs +5 -1
- package/build-module/components/block-visibility/viewport-visibility-info.mjs.map +2 -2
- package/build-module/components/border-radius-control/utils.mjs +11 -53
- package/build-module/components/border-radius-control/utils.mjs.map +2 -2
- package/build-module/components/child-layout-control/index.mjs +0 -4
- package/build-module/components/child-layout-control/index.mjs.map +2 -2
- package/build-module/components/colors-gradients/control.mjs +5 -3
- package/build-module/components/colors-gradients/control.mjs.map +2 -2
- package/build-module/components/dimension-control/index.mjs +30 -20
- package/build-module/components/dimension-control/index.mjs.map +2 -2
- package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs +10 -6
- package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs.map +2 -2
- package/build-module/components/editor-styles/index.mjs +9 -1
- package/build-module/components/editor-styles/index.mjs.map +2 -2
- package/build-module/components/global-styles/background-panel.mjs +71 -29
- package/build-module/components/global-styles/background-panel.mjs.map +2 -2
- package/build-module/components/global-styles/border-panel.mjs +157 -56
- package/build-module/components/global-styles/border-panel.mjs.map +2 -2
- package/build-module/components/global-styles/color-gradient-dropdown-item.mjs +51 -15
- package/build-module/components/global-styles/color-gradient-dropdown-item.mjs.map +2 -2
- package/build-module/components/global-styles/color-panel.mjs +63 -17
- package/build-module/components/global-styles/color-panel.mjs.map +2 -2
- package/build-module/components/global-styles/dimensions-panel.mjs +248 -66
- package/build-module/components/global-styles/dimensions-panel.mjs.map +2 -2
- package/build-module/components/global-styles/filters-panel.mjs +64 -21
- package/build-module/components/global-styles/filters-panel.mjs.map +2 -2
- package/build-module/components/global-styles/hooks.mjs +4 -1
- package/build-module/components/global-styles/hooks.mjs.map +2 -2
- package/build-module/components/global-styles/inheritance/index.mjs +108 -0
- package/build-module/components/global-styles/inheritance/index.mjs.map +7 -0
- package/build-module/components/global-styles/inherited-value-context.mjs +141 -0
- package/build-module/components/global-styles/inherited-value-context.mjs.map +7 -0
- package/build-module/components/global-styles/shadow-panel-components.mjs +38 -20
- package/build-module/components/global-styles/shadow-panel-components.mjs.map +2 -2
- package/build-module/components/global-styles/state-control-badges.mjs +41 -5
- package/build-module/components/global-styles/state-control-badges.mjs.map +2 -2
- package/build-module/components/global-styles/state-control.mjs +1 -1
- package/build-module/components/global-styles/state-control.mjs.map +2 -2
- package/build-module/components/global-styles/typography-panel.mjs +276 -80
- package/build-module/components/global-styles/typography-panel.mjs.map +2 -2
- package/build-module/components/image-size-control/index.mjs +2 -4
- package/build-module/components/image-size-control/index.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/hooks.mjs +33 -6
- package/build-module/components/inserter/media-tab/hooks.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/media-panel.mjs +86 -18
- package/build-module/components/inserter/media-tab/media-panel.mjs.map +2 -2
- package/build-module/components/inspector-controls-tabs/styles-tab.mjs +6 -1
- package/build-module/components/inspector-controls-tabs/styles-tab.mjs.map +2 -2
- package/build-module/components/keyboard-shortcuts/index.mjs +19 -11
- package/build-module/components/keyboard-shortcuts/index.mjs.map +2 -2
- package/build-module/components/line-height-control/index.mjs +1 -2
- package/build-module/components/line-height-control/index.mjs.map +2 -2
- package/build-module/components/link-control/index.mjs +4 -2
- package/build-module/components/link-control/index.mjs.map +2 -2
- package/build-module/components/list-view/block.mjs +13 -4
- package/build-module/components/list-view/block.mjs.map +2 -2
- package/build-module/components/media-placeholder/index.mjs +0 -1
- package/build-module/components/media-placeholder/index.mjs.map +2 -2
- package/build-module/components/preset-input-control/index.mjs +2 -1
- package/build-module/components/preset-input-control/index.mjs.map +2 -2
- package/build-module/components/provider/block-refs-provider.mjs +8 -2
- package/build-module/components/provider/block-refs-provider.mjs.map +2 -2
- package/build-module/components/provider/index.mjs +1 -1
- package/build-module/components/provider/index.mjs.map +2 -2
- package/build-module/components/provider/use-block-sync.mjs +18 -6
- package/build-module/components/provider/use-block-sync.mjs.map +2 -2
- package/build-module/components/provider/use-media-upload-settings.mjs +3 -1
- package/build-module/components/provider/use-media-upload-settings.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/before-input-rules.mjs +8 -5
- package/build-module/components/rich-text/event-listeners/before-input-rules.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/delete.mjs +7 -4
- package/build-module/components/rich-text/event-listeners/delete.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/enter.mjs +8 -3
- package/build-module/components/rich-text/event-listeners/enter.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/input-events.mjs +3 -3
- package/build-module/components/rich-text/event-listeners/input-events.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/input-rules.mjs +8 -5
- package/build-module/components/rich-text/event-listeners/input-rules.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/insert-replacement-text.mjs +3 -3
- package/build-module/components/rich-text/event-listeners/insert-replacement-text.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/paste-handler.mjs +8 -2
- package/build-module/components/rich-text/event-listeners/paste-handler.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.mjs +3 -3
- package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/shortcuts.mjs +3 -3
- package/build-module/components/rich-text/event-listeners/shortcuts.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/undo-automatic-change.mjs +3 -3
- package/build-module/components/rich-text/event-listeners/undo-automatic-change.mjs.map +2 -2
- package/build-module/components/rich-text/index.mjs +79 -14
- package/build-module/components/rich-text/index.mjs.map +2 -2
- package/build-module/components/spacing-sizes-control/utils.mjs +6 -18
- package/build-module/components/spacing-sizes-control/utils.mjs.map +2 -2
- package/build-module/components/text-indent-control/index.mjs +8 -2
- package/build-module/components/text-indent-control/index.mjs.map +2 -2
- package/build-module/components/typewriter/index.mjs +129 -136
- package/build-module/components/typewriter/index.mjs.map +2 -2
- package/build-module/components/url-input/index.mjs +306 -353
- package/build-module/components/url-input/index.mjs.map +2 -2
- package/build-module/components/use-block-commands/index.mjs +21 -17
- package/build-module/components/use-block-commands/index.mjs.map +2 -2
- package/build-module/components/use-on-block-drop/index.mjs +2 -2
- package/build-module/components/use-on-block-drop/index.mjs.map +2 -2
- package/build-module/components/writing-flow/index.mjs +14 -1
- package/build-module/components/writing-flow/index.mjs.map +2 -2
- package/build-module/components/writing-flow/use-arrow-nav.mjs +43 -7
- package/build-module/components/writing-flow/use-arrow-nav.mjs.map +2 -2
- package/build-module/components/writing-flow/use-click-selection.mjs +29 -3
- package/build-module/components/writing-flow/use-click-selection.mjs.map +2 -2
- package/build-module/components/writing-flow/use-clipboard-handler.mjs +5 -2
- package/build-module/components/writing-flow/use-clipboard-handler.mjs.map +2 -2
- package/build-module/components/writing-flow/use-drag-selection.mjs +1 -6
- package/build-module/components/writing-flow/use-drag-selection.mjs.map +2 -2
- package/build-module/components/writing-flow/use-editable-root-event-handlers.mjs +154 -0
- package/build-module/components/writing-flow/use-editable-root-event-handlers.mjs.map +7 -0
- package/build-module/components/writing-flow/use-editable-root.mjs +54 -0
- package/build-module/components/writing-flow/use-editable-root.mjs.map +7 -0
- package/build-module/components/writing-flow/use-home-end.mjs +43 -0
- package/build-module/components/writing-flow/use-home-end.mjs.map +7 -0
- package/build-module/components/writing-flow/use-input.mjs +15 -5
- package/build-module/components/writing-flow/use-input.mjs.map +2 -2
- package/build-module/components/writing-flow/use-multi-selection.mjs +2 -2
- package/build-module/components/writing-flow/use-multi-selection.mjs.map +2 -2
- package/build-module/components/writing-flow/use-select-all.mjs +19 -3
- package/build-module/components/writing-flow/use-select-all.mjs.map +2 -2
- package/build-module/components/writing-flow/use-selection-observer.mjs +134 -21
- package/build-module/components/writing-flow/use-selection-observer.mjs.map +2 -2
- package/build-module/components/writing-flow/utils.mjs +26 -1
- package/build-module/components/writing-flow/utils.mjs.map +2 -2
- package/build-module/hooks/background.mjs +14 -10
- package/build-module/hooks/background.mjs.map +2 -2
- package/build-module/hooks/block-fields/rich-text/index.mjs +2 -6
- package/build-module/hooks/block-fields/rich-text/index.mjs.map +2 -2
- package/build-module/hooks/block-style-variation.mjs +8 -44
- package/build-module/hooks/block-style-variation.mjs.map +2 -2
- package/build-module/hooks/border.mjs +19 -4
- package/build-module/hooks/border.mjs.map +2 -2
- package/build-module/hooks/custom-css.mjs +7 -3
- package/build-module/hooks/custom-css.mjs.map +2 -2
- package/build-module/hooks/dimensions.mjs +15 -4
- package/build-module/hooks/dimensions.mjs.map +2 -2
- package/build-module/hooks/duotone.mjs +20 -9
- package/build-module/hooks/duotone.mjs.map +2 -2
- package/build-module/hooks/elements.mjs +15 -5
- package/build-module/hooks/elements.mjs.map +2 -2
- package/build-module/hooks/grid-visualizer.mjs +5 -3
- package/build-module/hooks/grid-visualizer.mjs.map +2 -2
- package/build-module/hooks/layout-child.mjs +22 -12
- package/build-module/hooks/layout-child.mjs.map +2 -2
- package/build-module/hooks/layout.mjs +28 -13
- package/build-module/hooks/layout.mjs.map +2 -2
- package/build-module/hooks/line-height.mjs +1 -2
- package/build-module/hooks/line-height.mjs.map +2 -2
- package/build-module/hooks/states.mjs +27 -7
- package/build-module/hooks/states.mjs.map +2 -2
- package/build-module/hooks/style.mjs +40 -11
- package/build-module/hooks/style.mjs.map +2 -2
- package/build-module/hooks/text-align.mjs +39 -10
- package/build-module/hooks/text-align.mjs.map +2 -2
- package/build-module/hooks/typography.mjs +14 -5
- package/build-module/hooks/typography.mjs.map +2 -2
- package/build-module/layouts/constrained.mjs +14 -6
- package/build-module/layouts/constrained.mjs.map +2 -2
- package/build-module/layouts/flex.mjs +27 -19
- package/build-module/layouts/flex.mjs.map +2 -2
- package/build-module/layouts/grid.mjs +0 -2
- package/build-module/layouts/grid.mjs.map +2 -2
- package/build-module/private-apis.mjs +7 -3
- package/build-module/private-apis.mjs.map +2 -2
- package/build-module/store/actions.mjs +12 -7
- package/build-module/store/actions.mjs.map +2 -2
- package/build-module/store/private-selectors.mjs +42 -3
- package/build-module/store/private-selectors.mjs.map +2 -2
- package/build-module/store/reducer.mjs +6 -6
- package/build-module/store/reducer.mjs.map +2 -2
- package/build-module/store/selectors.mjs +23 -0
- package/build-module/store/selectors.mjs.map +2 -2
- package/build-module/utils/block-bindings.mjs +28 -0
- package/build-module/utils/block-bindings.mjs.map +2 -2
- package/build-module/utils/dom.mjs +13 -0
- package/build-module/utils/dom.mjs.map +2 -2
- package/build-module/utils/native-undo.mjs +29 -0
- package/build-module/utils/native-undo.mjs.map +7 -0
- package/build-style/content-rtl.css +14 -27
- package/build-style/content.css +14 -27
- package/build-style/default-editor-styles-rtl.css +1 -1
- package/build-style/default-editor-styles.css +1 -1
- package/build-style/style-rtl.css +191 -61
- package/build-style/style.css +191 -61
- package/build-types/components/block-context/index.d.ts +7 -0
- package/build-types/components/block-context/index.d.ts.map +1 -1
- package/build-types/utils/block-bindings.d.ts +19 -0
- package/build-types/utils/block-bindings.d.ts.map +1 -1
- package/build-types/utils/dom.d.ts +11 -0
- package/build-types/utils/dom.d.ts.map +1 -1
- package/build-types/utils/get-px-from-css-unit.d.ts +2 -2
- package/build-types/utils/get-px-from-css-unit.d.ts.map +1 -1
- package/build-types/utils/pasting.d.ts +1 -1
- package/build-types/utils/pasting.d.ts.map +1 -1
- package/package.json +43 -44
- package/src/components/alignment-control/test/__snapshots__/index.js.snap +1 -1
- package/src/components/alignment-control/ui.js +2 -4
- package/src/components/background-image-control/index.js +74 -37
- package/src/components/background-image-control/style.scss +13 -4
- package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +3 -3
- package/src/components/block-alignment-control/test/index.js +1 -1
- package/src/components/block-alignment-control/ui.js +4 -2
- package/src/components/block-breadcrumb/test/__snapshots__/index.js.snap +1 -1
- package/src/components/block-canvas/index.js +9 -2
- package/src/components/block-card/style.scss +1 -1
- package/src/components/block-compare/test/__snapshots__/block-view.js.snap +1 -1
- package/src/components/block-controls/groups.js +2 -0
- package/src/components/block-edit/edit.js +13 -31
- package/src/components/block-icon/test/__snapshots__/index.js.snap +1 -1
- package/src/components/block-inspector/index.js +60 -31
- package/src/components/block-list/block-html.js +5 -0
- package/src/components/block-list/block.js +6 -0
- package/src/components/block-list/content.scss +1 -11
- package/src/components/block-list/index.js +0 -2
- package/src/components/block-list/use-block-props/index.js +7 -1
- package/src/components/block-list/use-block-props/use-focus-first-element.js +23 -4
- package/src/components/block-list/use-block-props/use-focus-handler.js +35 -9
- package/src/components/block-list/use-block-props/use-register-block-event-handlers.js +45 -0
- package/src/components/block-lock/style.scss +1 -1
- package/src/components/block-manager/style.scss +1 -1
- package/src/components/block-navigation/style.scss +1 -1
- package/src/components/block-parent-selector/index.js +5 -2
- package/src/components/block-quick-navigation/style.scss +1 -3
- package/src/components/block-styles/style.scss +2 -2
- package/src/components/block-toolbar/index.js +41 -18
- package/src/components/block-toolbar/switch-section-style.js +5 -2
- package/src/components/block-tools/empty-block-inserter.js +3 -7
- package/src/components/block-tools/index.js +7 -0
- package/src/components/block-types-list/style.scss +0 -1
- package/src/components/block-vertical-alignment-control/test/__snapshots__/index.js.snap +3 -3
- package/src/components/block-vertical-alignment-control/test/index.js +18 -2
- package/src/components/block-vertical-alignment-control/ui.js +3 -5
- package/src/components/block-visibility/modal.js +24 -10
- package/src/components/block-visibility/style.scss +1 -1
- package/src/components/block-visibility/test/use-block-visibility.js +128 -35
- package/src/components/block-visibility/test/utils.js +11 -0
- package/src/components/block-visibility/use-block-visibility.js +33 -11
- package/src/components/block-visibility/utils.js +31 -6
- package/src/components/block-visibility/viewport-menu-item.js +10 -1
- package/src/components/block-visibility/viewport-toolbar.js +6 -0
- package/src/components/block-visibility/viewport-visibility-info.js +5 -1
- package/src/components/border-radius-control/test/utils.js +0 -41
- package/src/components/border-radius-control/utils.js +16 -107
- package/src/components/button-block-appender/content.scss +7 -9
- package/src/components/child-layout-control/index.js +0 -4
- package/src/components/color-palette/test/__snapshots__/control.js.snap +3 -3
- package/src/components/colors-gradients/control.js +6 -3
- package/src/components/default-block-appender/test/__snapshots__/index.js.snap +1 -1
- package/src/components/dimension-control/index.js +13 -1
- package/src/components/dimensions-tool/aspect-ratio-tool.js +13 -6
- package/src/components/editor-styles/index.js +16 -1
- package/src/components/font-family/stories/index.story.jsx +1 -1
- package/src/components/global-styles/background-panel.js +107 -34
- package/src/components/global-styles/border-panel.js +219 -48
- package/src/components/global-styles/color-gradient-dropdown-item.js +93 -28
- package/src/components/global-styles/color-panel.js +92 -11
- package/src/components/global-styles/dimensions-panel.js +422 -71
- package/src/components/global-styles/filters-panel.js +88 -28
- package/src/components/global-styles/hooks.js +8 -1
- package/src/components/global-styles/inheritance/index.js +204 -0
- package/src/components/global-styles/inheritance/style.scss +184 -0
- package/src/components/global-styles/inheritance/test/index.js +281 -0
- package/src/components/global-styles/inherited-value-context.js +271 -0
- package/src/components/global-styles/shadow-panel-components.js +48 -26
- package/src/components/global-styles/state-control-badges.js +45 -6
- package/src/components/global-styles/state-control.js +2 -2
- package/src/components/global-styles/style.scss +5 -0
- package/src/components/global-styles/test/background-panel.js +338 -1
- package/src/components/global-styles/test/border-panel.js +441 -0
- package/src/components/global-styles/test/color-panel.js +182 -2
- package/src/components/global-styles/test/dimensions-panel.js +753 -0
- package/src/components/global-styles/test/filters-panel.js +194 -0
- package/src/components/global-styles/test/inherited-value-context-core.js +98 -0
- package/src/components/global-styles/test/inherited-value-context.js +454 -0
- package/src/components/global-styles/test/state-control-badges.js +65 -0
- package/src/components/global-styles/test/typography-panel-core.js +185 -0
- package/src/components/global-styles/test/typography-panel.js +849 -12
- package/src/components/global-styles/typography-panel.js +449 -101
- package/src/components/image-editor/style.scss +33 -0
- package/src/components/image-size-control/index.js +0 -2
- package/src/components/inner-blocks/test/__snapshots__/index.js.snap +1 -1
- package/src/components/inserter/media-tab/hooks.js +55 -7
- package/src/components/inserter/media-tab/media-panel.js +117 -21
- package/src/components/inserter/media-tab/test/hooks.js +63 -0
- package/src/components/inserter/media-tab/test/media-panel.js +127 -0
- package/src/components/inserter/style.scss +19 -16
- package/src/components/inserter-list-item/style.scss +0 -15
- package/src/components/inspector-controls-tabs/styles-tab.js +5 -1
- package/src/components/keyboard-shortcuts/index.js +28 -11
- package/src/components/line-height-control/index.js +1 -2
- package/src/components/link-control/index.js +7 -2
- package/src/components/link-control/style.scss +2 -2
- package/src/components/link-control/test/index.js +6 -6
- package/src/components/link-picker/style.scss +1 -2
- package/src/components/list-view/block.js +13 -4
- package/src/components/list-view/style.scss +4 -5
- package/src/components/media-placeholder/index.js +0 -1
- package/src/components/multi-selection-inspector/style.scss +1 -1
- package/src/components/preset-input-control/index.js +4 -1
- package/src/components/provider/block-refs-provider.js +12 -2
- package/src/components/provider/index.js +2 -2
- package/src/components/provider/use-block-sync.js +18 -6
- package/src/components/provider/use-media-upload-settings.js +2 -0
- package/src/components/responsive-block-control/style.scss +1 -1
- package/src/components/rich-text/event-listeners/before-input-rules.js +8 -5
- package/src/components/rich-text/event-listeners/delete.js +7 -4
- package/src/components/rich-text/event-listeners/enter.js +10 -4
- package/src/components/rich-text/event-listeners/input-events.js +4 -3
- package/src/components/rich-text/event-listeners/input-rules.js +8 -5
- package/src/components/rich-text/event-listeners/insert-replacement-text.js +4 -3
- package/src/components/rich-text/event-listeners/paste-handler.js +15 -3
- package/src/components/rich-text/event-listeners/remove-browser-shortcuts.js +4 -3
- package/src/components/rich-text/event-listeners/shortcuts.js +4 -3
- package/src/components/rich-text/event-listeners/undo-automatic-change.js +4 -3
- package/src/components/rich-text/index.js +116 -26
- package/src/components/skip-to-selected-block/style.scss +1 -1
- package/src/components/spacing-sizes-control/test/utils.js +16 -5
- package/src/components/spacing-sizes-control/utils.js +11 -28
- package/src/components/text-indent-control/index.js +8 -0
- package/src/components/typewriter/index.js +228 -224
- package/src/components/url-input/index.js +363 -431
- package/src/components/url-input/test/index.js +592 -0
- package/src/components/use-block-commands/index.js +27 -17
- package/src/components/use-on-block-drop/index.js +2 -2
- package/src/components/warning/test/__snapshots__/index.js.snap +1 -1
- package/src/components/writing-flow/index.js +17 -1
- package/src/components/writing-flow/use-arrow-nav.js +90 -13
- package/src/components/writing-flow/use-click-selection.js +55 -5
- package/src/components/writing-flow/use-clipboard-handler.js +5 -2
- package/src/components/writing-flow/use-drag-selection.js +1 -14
- package/src/components/writing-flow/use-editable-root-event-handlers.js +266 -0
- package/src/components/writing-flow/use-editable-root.js +112 -0
- package/src/components/writing-flow/use-home-end.js +71 -0
- package/src/components/writing-flow/use-input.js +25 -8
- package/src/components/writing-flow/use-multi-selection.js +2 -3
- package/src/components/writing-flow/use-select-all.js +33 -3
- package/src/components/writing-flow/use-selection-observer.js +218 -42
- package/src/components/writing-flow/utils.js +62 -0
- package/src/hooks/background.js +27 -24
- package/src/hooks/block-fields/link/styles.scss +1 -6
- package/src/hooks/block-fields/media/styles.scss +1 -6
- package/src/hooks/block-fields/rich-text/index.js +6 -9
- package/src/hooks/block-fields/rich-text/styles.scss +1 -1
- package/src/hooks/block-style-variation.js +8 -74
- package/src/hooks/border.js +19 -4
- package/src/hooks/custom-css.js +15 -6
- package/src/hooks/dimensions.js +17 -4
- package/src/hooks/duotone.js +26 -8
- package/src/hooks/elements.js +14 -4
- package/src/hooks/grid-visualizer.js +40 -36
- package/src/hooks/layout-child.js +19 -9
- package/src/hooks/layout.js +48 -31
- package/src/hooks/line-height.js +0 -1
- package/src/hooks/states.js +38 -9
- package/src/hooks/style.js +67 -17
- package/src/hooks/test/inherited-value-wiring.js +411 -0
- package/src/hooks/test/preset-round-trip.js +456 -0
- package/src/hooks/test/style.js +29 -0
- package/src/hooks/test/text-align.js +34 -1
- package/src/hooks/text-align.js +41 -10
- package/src/hooks/typography.js +35 -24
- package/src/layouts/constrained.js +5 -1
- package/src/layouts/flex.js +5 -1
- package/src/layouts/grid.js +0 -2
- package/src/private-apis.js +11 -2
- package/src/store/actions.js +53 -19
- package/src/store/private-selectors.js +82 -6
- package/src/store/reducer.js +9 -9
- package/src/store/selectors.js +56 -8
- package/src/store/test/actions.js +1 -1
- package/src/store/test/private-selectors.js +271 -1
- package/src/style.scss +2 -0
- package/src/utils/block-bindings.ts +50 -0
- package/src/utils/dom.ts +33 -0
- package/src/utils/native-undo.js +56 -0
- package/src/utils/test/block-bindings.js +181 -0
- package/build/components/duotone/utils.cjs +0 -87
- package/build/components/duotone/utils.cjs.map +0 -7
- package/build/components/rich-text/input-event.cjs.map +0 -7
- package/build/components/rich-text/shortcut.cjs +0 -51
- package/build/components/rich-text/shortcut.cjs.map +0 -7
- package/build-module/components/duotone/utils.mjs +0 -59
- package/build-module/components/duotone/utils.mjs.map +0 -7
- package/build-module/components/rich-text/input-event.mjs +0 -25
- package/build-module/components/rich-text/input-event.mjs.map +0 -7
- package/build-module/components/rich-text/shortcut.mjs +0 -26
- package/build-module/components/rich-text/shortcut.mjs.map +0 -7
- package/src/components/duotone/utils.js +0 -90
- package/src/components/rich-text/input-event.js +0 -31
- package/src/components/rich-text/shortcut.js +0 -32
- package/src/hooks/test/get-variation-styles-with-ref-values.js +0 -91
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/block-alignment-control/ui.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tToolbarDropdownMenu,\n\tToolbarGroup,\n\tMenuGroup,\n\tMenuItem,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport useAvailableAlignments from './use-available-alignments';\nimport { BLOCK_ALIGNMENTS_CONTROLS, DEFAULT_CONTROL } from './constants';\n\nfunction BlockAlignmentUI( {\n\tvalue,\n\tonChange,\n\tcontrols,\n\tisToolbar,\n\tisCollapsed = true,\n} ) {\n\tconst enabledControls = useAvailableAlignments( controls );\n\tconst hasEnabledControls = !! enabledControls.length;\n\n\tif ( ! hasEnabledControls ) {\n\t\treturn null;\n\t}\n\n\tfunction onChangeAlignment( align ) {\n\t\tonChange( [ value, 'none' ].includes( align ) ? undefined : align );\n\t}\n\n\tconst activeAlignmentControl = BLOCK_ALIGNMENTS_CONTROLS[ value ];\n\tconst defaultAlignmentControl =\n\t\tBLOCK_ALIGNMENTS_CONTROLS[ DEFAULT_CONTROL ];\n\n\tconst UIComponent = isToolbar ? ToolbarGroup : ToolbarDropdownMenu;\n\tconst commonProps = {\n\t\ticon: activeAlignmentControl\n\t\t\t? activeAlignmentControl.icon\n\t\t\t: defaultAlignmentControl.icon,\n\t\tlabel
|
|
5
|
-
"mappings": ";AAGA,OAAO,UAAU;AAKjB,SAAS,UAAU;AACnB;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAKP,OAAO,4BAA4B;AACnC,SAAS,2BAA2B,uBAAuB;
|
|
4
|
+
"sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tToolbarDropdownMenu,\n\tToolbarGroup,\n\tMenuGroup,\n\tMenuItem,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport useAvailableAlignments from './use-available-alignments';\nimport { BLOCK_ALIGNMENTS_CONTROLS, DEFAULT_CONTROL } from './constants';\n\nfunction BlockAlignmentUI( {\n\tvalue,\n\tonChange,\n\tcontrols,\n\tisToolbar,\n\tisCollapsed = true,\n\tlabel = __( 'Align block' ),\n\tdescription,\n} ) {\n\tconst enabledControls = useAvailableAlignments( controls );\n\tconst hasEnabledControls = !! enabledControls.length;\n\n\tif ( ! hasEnabledControls ) {\n\t\treturn null;\n\t}\n\n\tfunction onChangeAlignment( align ) {\n\t\tonChange( [ value, 'none' ].includes( align ) ? undefined : align );\n\t}\n\n\tconst activeAlignmentControl = BLOCK_ALIGNMENTS_CONTROLS[ value ];\n\tconst defaultAlignmentControl =\n\t\tBLOCK_ALIGNMENTS_CONTROLS[ DEFAULT_CONTROL ];\n\n\tconst UIComponent = isToolbar ? ToolbarGroup : ToolbarDropdownMenu;\n\tconst commonProps = {\n\t\ticon: activeAlignmentControl\n\t\t\t? activeAlignmentControl.icon\n\t\t\t: defaultAlignmentControl.icon,\n\t\tlabel,\n\t};\n\tconst extraProps = isToolbar\n\t\t? {\n\t\t\t\tisCollapsed,\n\t\t\t\tcontrols: enabledControls.map( ( { name: controlName } ) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...BLOCK_ALIGNMENTS_CONTROLS[ controlName ],\n\t\t\t\t\t\tisActive:\n\t\t\t\t\t\t\tvalue === controlName ||\n\t\t\t\t\t\t\t( ! value && controlName === 'none' ),\n\t\t\t\t\t\trole: isCollapsed ? 'menuitemradio' : undefined,\n\t\t\t\t\t\tonClick: () => onChangeAlignment( controlName ),\n\t\t\t\t\t};\n\t\t\t\t} ),\n\t\t }\n\t\t: {\n\t\t\t\ttoggleProps: description ? { description } : {},\n\t\t\t\tchildren: ( { onClose } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<MenuGroup className=\"block-editor-block-alignment-control__menu-group\">\n\t\t\t\t\t\t\t\t{ enabledControls.map(\n\t\t\t\t\t\t\t\t\t( { name: controlName, info } ) => {\n\t\t\t\t\t\t\t\t\t\tconst { icon, title } =\n\t\t\t\t\t\t\t\t\t\t\tBLOCK_ALIGNMENTS_CONTROLS[\n\t\t\t\t\t\t\t\t\t\t\t\tcontrolName\n\t\t\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t\t\t// If no value is provided, mark as selected the `none` option.\n\t\t\t\t\t\t\t\t\t\tconst isSelected =\n\t\t\t\t\t\t\t\t\t\t\tcontrolName === value ||\n\t\t\t\t\t\t\t\t\t\t\t( ! value &&\n\t\t\t\t\t\t\t\t\t\t\t\tcontrolName === 'none' );\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\tkey={ controlName }\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'components-dropdown-menu__menu-item',\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'is-active': isSelected,\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChangeAlignment(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrolName\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\t\t\t\t\t\t\tinfo={ info }\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t);\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</MenuGroup>\n\t\t\t\t\t\t</>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t };\n\n\treturn <UIComponent { ...commonProps } { ...extraProps } />;\n}\n\nexport default BlockAlignmentUI;\n"],
|
|
5
|
+
"mappings": ";AAGA,OAAO,UAAU;AAKjB,SAAS,UAAU;AACnB;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAKP,OAAO,4BAA4B;AACnC,SAAS,2BAA2B,uBAAuB;AAmDrD,mBAcK,WAdL;AAjDN,SAAS,iBAAkB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,QAAQ,GAAI,aAAc;AAAA,EAC1B;AACD,GAAI;AACH,QAAM,kBAAkB,uBAAwB,QAAS;AACzD,QAAM,qBAAqB,CAAC,CAAE,gBAAgB;AAE9C,MAAK,CAAE,oBAAqB;AAC3B,WAAO;AAAA,EACR;AAEA,WAAS,kBAAmB,OAAQ;AACnC,aAAU,CAAE,OAAO,MAAO,EAAE,SAAU,KAAM,IAAI,SAAY,KAAM;AAAA,EACnE;AAEA,QAAM,yBAAyB,0BAA2B,KAAM;AAChE,QAAM,0BACL,0BAA2B,eAAgB;AAE5C,QAAM,cAAc,YAAY,eAAe;AAC/C,QAAM,cAAc;AAAA,IACnB,MAAM,yBACH,uBAAuB,OACvB,wBAAwB;AAAA,IAC3B;AAAA,EACD;AACA,QAAM,aAAa,YAChB;AAAA,IACA;AAAA,IACA,UAAU,gBAAgB,IAAK,CAAE,EAAE,MAAM,YAAY,MAAO;AAC3D,aAAO;AAAA,QACN,GAAG,0BAA2B,WAAY;AAAA,QAC1C,UACC,UAAU,eACR,CAAE,SAAS,gBAAgB;AAAA,QAC9B,MAAM,cAAc,kBAAkB;AAAA,QACtC,SAAS,MAAM,kBAAmB,WAAY;AAAA,MAC/C;AAAA,IACD,CAAE;AAAA,EACF,IACA;AAAA,IACA,aAAa,cAAc,EAAE,YAAY,IAAI,CAAC;AAAA,IAC9C,UAAU,CAAE,EAAE,QAAQ,MAAO;AAC5B,aACC,gCACC,8BAAC,aAAU,WAAU,oDAClB,0BAAgB;AAAA,QACjB,CAAE,EAAE,MAAM,aAAa,KAAK,MAAO;AAClC,gBAAM,EAAE,MAAM,MAAM,IACnB,0BACC,WACD;AAED,gBAAM,aACL,gBAAgB,SACd,CAAE,SACH,gBAAgB;AAClB,iBACC;AAAA,YAAC;AAAA;AAAA,cAEA;AAAA,cACA,cAAa;AAAA,cACb,WAAY;AAAA,gBACX;AAAA,gBACA;AAAA,kBACC,aAAa;AAAA,gBACd;AAAA,cACD;AAAA,cACA;AAAA,cACA,SAAU,MAAM;AACf;AAAA,kBACC;AAAA,gBACD;AACA,wBAAQ;AAAA,cACT;AAAA,cACA,MAAK;AAAA,cACL;AAAA,cAEE;AAAA;AAAA,YAnBI;AAAA,UAoBP;AAAA,QAEF;AAAA,MACD,GACD,GACD;AAAA,IAEF;AAAA,EACA;AAEH,SAAO,oBAAC,eAAc,GAAG,aAAgB,GAAG,YAAa;AAC1D;AAEA,IAAO,aAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -8,7 +8,7 @@ import BlockTools from "../block-tools/index.mjs";
|
|
|
8
8
|
import EditorStyles from "../editor-styles/index.mjs";
|
|
9
9
|
import Iframe from "../iframe/index.mjs";
|
|
10
10
|
import WritingFlow from "../writing-flow/index.mjs";
|
|
11
|
-
import { useMouseMoveTypingReset } from "../observe-typing/index.mjs";
|
|
11
|
+
import { useMouseMoveTypingReset, useTypingObserver } from "../observe-typing/index.mjs";
|
|
12
12
|
import { useBlockSelectionClearer } from "../block-selection-clearer/index.mjs";
|
|
13
13
|
import { useBlockCommands } from "../use-block-commands/index.mjs";
|
|
14
14
|
import { store as blockEditorStore } from "../../store/index.mjs";
|
|
@@ -49,7 +49,12 @@ function ExperimentalBlockCanvas({
|
|
|
49
49
|
const resetTypingRef = useMouseMoveTypingReset();
|
|
50
50
|
const clearerRef = useBlockSelectionClearer();
|
|
51
51
|
const localRef = useRef();
|
|
52
|
-
const contentRef = useMergeRefs([
|
|
52
|
+
const contentRef = useMergeRefs([
|
|
53
|
+
contentRefProp,
|
|
54
|
+
clearerRef,
|
|
55
|
+
localRef,
|
|
56
|
+
useTypingObserver()
|
|
57
|
+
]);
|
|
53
58
|
const zoomLevel = useSelect(
|
|
54
59
|
(select) => unlock(select(blockEditorStore)).getZoomLevel(),
|
|
55
60
|
[]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/block-canvas/index.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useMergeRefs, useViewportMatch } from '@wordpress/compose';\nimport { useRef } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { createSlotFill } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockList from '../block-list';\nimport BlockTools from '../block-tools';\nimport EditorStyles from '../editor-styles';\nimport Iframe from '../iframe';\nimport WritingFlow from '../writing-flow';\nimport { useMouseMoveTypingReset } from '../observe-typing';\nimport { useBlockSelectionClearer } from '../block-selection-clearer';\nimport { useBlockCommands } from '../use-block-commands';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nexport const BlockCanvasCover = createSlotFill( Symbol( 'BlockCanvasCover' ) );\n\nfunction BlockCanvasCoverWrapper( { children } ) {\n\treturn (\n\t\t<div\n\t\t\tclassName=\"block-canvas-cover\"\n\t\t\tstyle={ {\n\t\t\t\tposition: 'absolute',\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0,\n\t\t\t\twidth: '100%',\n\t\t\t\theight: '100%',\n\t\t\t\tpointerEvents: 'none',\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\n// EditorStyles is a memoized component, so avoid passing a new\n// object reference on each render.\nconst EDITOR_STYLE_TRANSFORM_OPTIONS = {\n\t// Don't transform selectors that already specify `.editor-styles-wrapper`.\n\tignoredSelectors: [ /\\.editor-styles-wrapper/gi ],\n};\n\nexport function ExperimentalBlockCanvas( {\n\tshouldIframe = true,\n\theight = '300px',\n\tchildren = <BlockList />,\n\tstyles,\n\tcontentRef: contentRefProp,\n\tiframeProps,\n} ) {\n\tuseBlockCommands();\n\tconst isTabletViewport = useViewportMatch( 'medium', '<' );\n\tconst resetTypingRef = useMouseMoveTypingReset();\n\tconst clearerRef = useBlockSelectionClearer();\n\tconst localRef = useRef();\n\tconst contentRef = useMergeRefs( [
|
|
5
|
-
"mappings": ";AAGA,SAAS,cAAc,wBAAwB;AAC/C,SAAS,cAAc;AACvB,SAAS,iBAAiB;AAC1B,SAAS,sBAAsB;AAK/B,OAAO,eAAe;AACtB,OAAO,gBAAgB;AACvB,OAAO,kBAAkB;AACzB,OAAO,YAAY;AACnB,OAAO,iBAAiB;AACxB,SAAS
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useMergeRefs, useViewportMatch } from '@wordpress/compose';\nimport { useRef } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { createSlotFill } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockList from '../block-list';\nimport BlockTools from '../block-tools';\nimport EditorStyles from '../editor-styles';\nimport Iframe from '../iframe';\nimport WritingFlow from '../writing-flow';\nimport { useMouseMoveTypingReset, useTypingObserver } from '../observe-typing';\nimport { useBlockSelectionClearer } from '../block-selection-clearer';\nimport { useBlockCommands } from '../use-block-commands';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nexport const BlockCanvasCover = createSlotFill( Symbol( 'BlockCanvasCover' ) );\n\nfunction BlockCanvasCoverWrapper( { children } ) {\n\treturn (\n\t\t<div\n\t\t\tclassName=\"block-canvas-cover\"\n\t\t\tstyle={ {\n\t\t\t\tposition: 'absolute',\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0,\n\t\t\t\twidth: '100%',\n\t\t\t\theight: '100%',\n\t\t\t\tpointerEvents: 'none',\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\n// EditorStyles is a memoized component, so avoid passing a new\n// object reference on each render.\nconst EDITOR_STYLE_TRANSFORM_OPTIONS = {\n\t// Don't transform selectors that already specify `.editor-styles-wrapper`.\n\tignoredSelectors: [ /\\.editor-styles-wrapper/gi ],\n};\n\nexport function ExperimentalBlockCanvas( {\n\tshouldIframe = true,\n\theight = '300px',\n\tchildren = <BlockList />,\n\tstyles,\n\tcontentRef: contentRefProp,\n\tiframeProps,\n} ) {\n\tuseBlockCommands();\n\tconst isTabletViewport = useViewportMatch( 'medium', '<' );\n\tconst resetTypingRef = useMouseMoveTypingReset();\n\tconst clearerRef = useBlockSelectionClearer();\n\tconst localRef = useRef();\n\t// Attached to the same node as the writing flow ref: the iframe body,\n\t// or the WritingFlow element when the canvas is not iframed.\n\tconst contentRef = useMergeRefs( [\n\t\tcontentRefProp,\n\t\tclearerRef,\n\t\tlocalRef,\n\t\tuseTypingObserver(),\n\t] );\n\tconst zoomLevel = useSelect(\n\t\t( select ) => unlock( select( blockEditorStore ) ).getZoomLevel(),\n\t\t[]\n\t);\n\tconst zoomOutIframeProps =\n\t\tzoomLevel !== 100 && ! isTabletViewport\n\t\t\t? {\n\t\t\t\t\tscale: zoomLevel,\n\t\t\t\t\tframeSize: '40px',\n\t\t\t }\n\t\t\t: {};\n\n\tif ( ! shouldIframe ) {\n\t\treturn (\n\t\t\t<BlockTools\n\t\t\t\t__unstableContentRef={ localRef }\n\t\t\t\tstyle={ { height, display: 'flex' } }\n\t\t\t>\n\t\t\t\t<BlockCanvasCover.Slot fillProps={ { containerRef: localRef } }>\n\t\t\t\t\t{ ( covers ) =>\n\t\t\t\t\t\tcovers.map( ( cover, index ) => (\n\t\t\t\t\t\t\t<BlockCanvasCoverWrapper key={ index }>\n\t\t\t\t\t\t\t\t{ cover }\n\t\t\t\t\t\t\t</BlockCanvasCoverWrapper>\n\t\t\t\t\t\t) )\n\t\t\t\t\t}\n\t\t\t\t</BlockCanvasCover.Slot>\n\t\t\t\t<EditorStyles\n\t\t\t\t\tstyles={ styles }\n\t\t\t\t\tscope=\":where(.editor-styles-wrapper)\"\n\t\t\t\t\ttransformOptions={ EDITOR_STYLE_TRANSFORM_OPTIONS }\n\t\t\t\t/>\n\t\t\t\t<WritingFlow\n\t\t\t\t\tref={ contentRef }\n\t\t\t\t\tclassName=\"editor-styles-wrapper\"\n\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\theight: '100%',\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\toverflow: 'auto',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</WritingFlow>\n\t\t\t</BlockTools>\n\t\t);\n\t}\n\n\treturn (\n\t\t<BlockTools\n\t\t\t__unstableContentRef={ localRef }\n\t\t\tstyle={ { height, display: 'flex' } }\n\t\t>\n\t\t\t<Iframe\n\t\t\t\t{ ...iframeProps }\n\t\t\t\t{ ...zoomOutIframeProps }\n\t\t\t\tref={ resetTypingRef }\n\t\t\t\tcontentRef={ contentRef }\n\t\t\t\tstyle={ {\n\t\t\t\t\t...iframeProps?.style,\n\t\t\t\t} }\n\t\t\t\tname=\"editor-canvas\"\n\t\t\t>\n\t\t\t\t<BlockCanvasCover.Slot fillProps={ { containerRef: localRef } }>\n\t\t\t\t\t{ ( covers ) =>\n\t\t\t\t\t\tcovers.map( ( cover, index ) => (\n\t\t\t\t\t\t\t<BlockCanvasCoverWrapper key={ index }>\n\t\t\t\t\t\t\t\t{ cover }\n\t\t\t\t\t\t\t</BlockCanvasCoverWrapper>\n\t\t\t\t\t\t) )\n\t\t\t\t\t}\n\t\t\t\t</BlockCanvasCover.Slot>\n\t\t\t\t<EditorStyles styles={ styles } />\n\t\t\t\t{ children }\n\t\t\t</Iframe>\n\t\t</BlockTools>\n\t);\n}\n\n/**\n * BlockCanvas component is a component used to display the canvas of the block editor.\n * What we call the canvas is an iframe containing the block list that you can manipulate.\n * The component is also responsible of wiring up all the necessary hooks to enable\n * the keyboard navigation across blocks in the editor and inject content styles into the iframe.\n *\n * @example\n *\n * ```jsx\n * function MyBlockEditor() {\n * const [ blocks, updateBlocks ] = useState([]);\n * return (\n * <BlockEditorProvider\n * value={ blocks }\n * onInput={ updateBlocks }\n * onChange={ persistBlocks }\n * >\n * <BlockCanvas height=\"400px\" />\n * </BlockEditorProvider>\n * );\n * }\n * ```\n *\n * @param {Object} props Component props.\n * @param {string} props.height Canvas height, defaults to 300px.\n * @param {Array} props.styles Content styles to inject into the iframe.\n * @param {Element} props.children Content of the canvas, defaults to the BlockList component.\n * @return {Element} Block Breadcrumb.\n */\nfunction BlockCanvas( { children, height, styles } ) {\n\treturn (\n\t\t<ExperimentalBlockCanvas height={ height } styles={ styles }>\n\t\t\t{ children }\n\t\t</ExperimentalBlockCanvas>\n\t);\n}\n\nexport default BlockCanvas;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -5,12 +5,14 @@ var BlockControlsBlock = createSlotFill("BlockControlsBlock");
|
|
|
5
5
|
var BlockControlsInline = createSlotFill("BlockFormatControls");
|
|
6
6
|
var BlockControlsOther = createSlotFill("BlockControlsOther");
|
|
7
7
|
var BlockControlsParent = createSlotFill("BlockControlsParent");
|
|
8
|
+
var BlockControlsStyleState = createSlotFill("BlockControlsStyleState");
|
|
8
9
|
var groups = {
|
|
9
10
|
default: BlockControlsDefault,
|
|
10
11
|
block: BlockControlsBlock,
|
|
11
12
|
inline: BlockControlsInline,
|
|
12
13
|
other: BlockControlsOther,
|
|
13
|
-
parent: BlockControlsParent
|
|
14
|
+
parent: BlockControlsParent,
|
|
15
|
+
"style-state": BlockControlsStyleState
|
|
14
16
|
};
|
|
15
17
|
var groups_default = groups;
|
|
16
18
|
export {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/block-controls/groups.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { createSlotFill } from '@wordpress/components';\n\nconst BlockControlsDefault = createSlotFill( 'BlockControls' );\nconst BlockControlsBlock = createSlotFill( 'BlockControlsBlock' );\nconst BlockControlsInline = createSlotFill( 'BlockFormatControls' );\nconst BlockControlsOther = createSlotFill( 'BlockControlsOther' );\nconst BlockControlsParent = createSlotFill( 'BlockControlsParent' );\n\nconst groups = {\n\tdefault: BlockControlsDefault,\n\tblock: BlockControlsBlock,\n\tinline: BlockControlsInline,\n\tother: BlockControlsOther,\n\tparent: BlockControlsParent,\n};\n\nexport default groups;\n"],
|
|
5
|
-
"mappings": ";AAGA,SAAS,sBAAsB;AAE/B,IAAM,uBAAuB,eAAgB,eAAgB;AAC7D,IAAM,qBAAqB,eAAgB,oBAAqB;AAChE,IAAM,sBAAsB,eAAgB,qBAAsB;AAClE,IAAM,qBAAqB,eAAgB,oBAAqB;AAChE,IAAM,sBAAsB,eAAgB,qBAAsB;
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { createSlotFill } from '@wordpress/components';\n\nconst BlockControlsDefault = createSlotFill( 'BlockControls' );\nconst BlockControlsBlock = createSlotFill( 'BlockControlsBlock' );\nconst BlockControlsInline = createSlotFill( 'BlockFormatControls' );\nconst BlockControlsOther = createSlotFill( 'BlockControlsOther' );\nconst BlockControlsParent = createSlotFill( 'BlockControlsParent' );\nconst BlockControlsStyleState = createSlotFill( 'BlockControlsStyleState' );\n\nconst groups = {\n\tdefault: BlockControlsDefault,\n\tblock: BlockControlsBlock,\n\tinline: BlockControlsInline,\n\tother: BlockControlsOther,\n\tparent: BlockControlsParent,\n\t'style-state': BlockControlsStyleState,\n};\n\nexport default groups;\n"],
|
|
5
|
+
"mappings": ";AAGA,SAAS,sBAAsB;AAE/B,IAAM,uBAAuB,eAAgB,eAAgB;AAC7D,IAAM,qBAAqB,eAAgB,oBAAqB;AAChE,IAAM,sBAAsB,eAAgB,qBAAsB;AAClE,IAAM,qBAAqB,eAAgB,oBAAqB;AAChE,IAAM,sBAAsB,eAAgB,qBAAsB;AAClE,IAAM,0BAA0B,eAAgB,yBAA0B;AAE1E,IAAM,SAAS;AAAA,EACd,SAAS;AAAA,EACT,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,eAAe;AAChB;AAEA,IAAO,iBAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -12,13 +12,13 @@ import { useCallback, useContext, useMemo } from "@wordpress/element";
|
|
|
12
12
|
import BlockContext from "../block-context/index.mjs";
|
|
13
13
|
import isURLLike from "../link-control/is-url-like.mjs";
|
|
14
14
|
import {
|
|
15
|
+
getBlockBindingsContext,
|
|
15
16
|
hasPatternOverridesDefaultBinding,
|
|
16
17
|
replacePatternOverridesDefaultBinding
|
|
17
18
|
} from "../../utils/block-bindings.mjs";
|
|
18
19
|
import { unlock } from "../../lock-unlock.mjs";
|
|
19
20
|
import { PrivateBlockContext } from "../block-list/private-block-context.mjs";
|
|
20
21
|
import { jsx } from "react/jsx-runtime";
|
|
21
|
-
var DEFAULT_BLOCK_CONTEXT = {};
|
|
22
22
|
var Edit = (props) => {
|
|
23
23
|
const { name } = props;
|
|
24
24
|
const blockType = getBlockType(name);
|
|
@@ -40,28 +40,21 @@ var EditWithGeneratedProps = (props) => {
|
|
|
40
40
|
);
|
|
41
41
|
const { bindableAttributes } = useContext(PrivateBlockContext);
|
|
42
42
|
const { blockBindings, context, hasPatternOverrides } = useMemo(() => {
|
|
43
|
-
const computedContext = blockType?.usesContext ? Object.fromEntries(
|
|
44
|
-
Object.entries(blockContext).filter(
|
|
45
|
-
([key]) => blockType.usesContext.includes(key)
|
|
46
|
-
)
|
|
47
|
-
) : DEFAULT_BLOCK_CONTEXT;
|
|
48
|
-
if (attributes?.metadata?.bindings) {
|
|
49
|
-
Object.values(attributes?.metadata?.bindings || {}).forEach(
|
|
50
|
-
(binding) => {
|
|
51
|
-
registeredSources[binding?.source]?.usesContext?.forEach(
|
|
52
|
-
(key) => {
|
|
53
|
-
computedContext[key] = blockContext[key];
|
|
54
|
-
}
|
|
55
|
-
);
|
|
56
|
-
}
|
|
57
|
-
);
|
|
58
|
-
}
|
|
59
43
|
return {
|
|
60
44
|
blockBindings: replacePatternOverridesDefaultBinding(
|
|
61
45
|
attributes?.metadata?.bindings,
|
|
62
46
|
bindableAttributes
|
|
63
47
|
),
|
|
64
|
-
context
|
|
48
|
+
// Assign context values using the block type's declared context
|
|
49
|
+
// needs, plus the context requested by the block's bindings
|
|
50
|
+
// sources.
|
|
51
|
+
context: getBlockBindingsContext(
|
|
52
|
+
blockContext,
|
|
53
|
+
blockType?.usesContext,
|
|
54
|
+
attributes?.metadata?.bindings ? Object.values(attributes.metadata.bindings).map(
|
|
55
|
+
(binding) => registeredSources[binding?.source]
|
|
56
|
+
) : void 0
|
|
57
|
+
),
|
|
65
58
|
hasPatternOverrides: hasPatternOverridesDefaultBinding(
|
|
66
59
|
attributes?.metadata?.bindings
|
|
67
60
|
)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/block-edit/edit.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tgetBlockDefaultClassName,\n\tgetBlockType,\n\thasBlockSupport,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { withFilters } from '@wordpress/components';\nimport { useRegistry, useSelect } from '@wordpress/data';\nimport { useCallback, useContext, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockContext from '../block-context';\nimport isURLLike from '../link-control/is-url-like';\nimport {\n\thasPatternOverridesDefaultBinding,\n\treplacePatternOverridesDefaultBinding,\n} from '../../utils/block-bindings';\nimport { unlock } from '../../lock-unlock';\nimport { PrivateBlockContext } from '../block-list/private-block-context';\n\
|
|
5
|
-
"mappings": ";AAGA,OAAO,UAAU;AAKjB;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS;AAAA,OACH;AACP,SAAS,mBAAmB;AAC5B,SAAS,aAAa,iBAAiB;AACvC,SAAS,aAAa,YAAY,eAAe;AAKjD,OAAO,kBAAkB;AACzB,OAAO,eAAe;AACtB;AAAA,EACC;AAAA,EACA;AAAA,OACM;AACP,SAAS,cAAc;AACvB,SAAS,2BAA2B;
|
|
4
|
+
"sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tgetBlockDefaultClassName,\n\tgetBlockType,\n\thasBlockSupport,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { withFilters } from '@wordpress/components';\nimport { useRegistry, useSelect } from '@wordpress/data';\nimport { useCallback, useContext, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockContext from '../block-context';\nimport isURLLike from '../link-control/is-url-like';\nimport {\n\tgetBlockBindingsContext,\n\thasPatternOverridesDefaultBinding,\n\treplacePatternOverridesDefaultBinding,\n} from '../../utils/block-bindings';\nimport { unlock } from '../../lock-unlock';\nimport { PrivateBlockContext } from '../block-list/private-block-context';\n\nconst Edit = ( props ) => {\n\tconst { name } = props;\n\tconst blockType = getBlockType( name );\n\n\tif ( ! blockType ) {\n\t\treturn null;\n\t}\n\n\t// `edit` and `save` are functions or components describing the markup\n\t// with which a block is displayed. If `blockType` is valid, assign\n\t// them preferentially as the render value for the block.\n\tconst Component = blockType.edit || blockType.save;\n\n\treturn <Component { ...props } />;\n};\n\nconst EditWithFilters = withFilters( 'editor.BlockEdit' )( Edit );\n\nconst EditWithGeneratedProps = ( props ) => {\n\tconst { name, clientId, attributes, setAttributes } = props;\n\tconst registry = useRegistry();\n\tconst blockType = getBlockType( name );\n\tconst blockContext = useContext( BlockContext );\n\tconst registeredSources = useSelect(\n\t\t( select ) =>\n\t\t\tunlock( select( blocksStore ) ).getAllBlockBindingsSources(),\n\t\t[]\n\t);\n\tconst { bindableAttributes } = useContext( PrivateBlockContext );\n\n\tconst { blockBindings, context, hasPatternOverrides } = useMemo( () => {\n\t\treturn {\n\t\t\tblockBindings: replacePatternOverridesDefaultBinding(\n\t\t\t\tattributes?.metadata?.bindings,\n\t\t\t\tbindableAttributes\n\t\t\t),\n\t\t\t// Assign context values using the block type's declared context\n\t\t\t// needs, plus the context requested by the block's bindings\n\t\t\t// sources.\n\t\t\tcontext: getBlockBindingsContext(\n\t\t\t\tblockContext,\n\t\t\t\tblockType?.usesContext,\n\t\t\t\tattributes?.metadata?.bindings\n\t\t\t\t\t? Object.values( attributes.metadata.bindings ).map(\n\t\t\t\t\t\t\t( binding ) => registeredSources[ binding?.source ]\n\t\t\t\t\t )\n\t\t\t\t\t: undefined\n\t\t\t),\n\t\t\thasPatternOverrides: hasPatternOverridesDefaultBinding(\n\t\t\t\tattributes?.metadata?.bindings\n\t\t\t),\n\t\t};\n\t}, [\n\t\tblockType?.usesContext,\n\t\tblockContext,\n\t\tattributes?.metadata?.bindings,\n\t\tbindableAttributes,\n\t\tregisteredSources,\n\t] );\n\n\tconst computedAttributes = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! blockBindings ) {\n\t\t\t\treturn attributes;\n\t\t\t}\n\n\t\t\tconst attributesFromSources = {};\n\t\t\tconst blockBindingsBySource = new Map();\n\n\t\t\tfor ( const [ attributeName, binding ] of Object.entries(\n\t\t\t\tblockBindings\n\t\t\t) ) {\n\t\t\t\tconst { source: sourceName, args: sourceArgs } = binding;\n\t\t\t\tconst source = registeredSources[ sourceName ];\n\t\t\t\tif (\n\t\t\t\t\t! source ||\n\t\t\t\t\t! bindableAttributes?.includes( attributeName )\n\t\t\t\t) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tblockBindingsBySource.set( source, {\n\t\t\t\t\t...blockBindingsBySource.get( source ),\n\t\t\t\t\t[ attributeName ]: {\n\t\t\t\t\t\targs: sourceArgs,\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif ( blockBindingsBySource.size ) {\n\t\t\t\tfor ( const [ source, bindings ] of blockBindingsBySource ) {\n\t\t\t\t\t// Get values in batch if the source supports it.\n\t\t\t\t\tlet values = {};\n\t\t\t\t\tif ( ! source.getValues ) {\n\t\t\t\t\t\tObject.keys( bindings ).forEach( ( attr ) => {\n\t\t\t\t\t\t\t// Default to the the source label when `getValues` doesn't exist.\n\t\t\t\t\t\t\tvalues[ attr ] = source.label;\n\t\t\t\t\t\t} );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalues = source.getValues( {\n\t\t\t\t\t\t\tselect,\n\t\t\t\t\t\t\tcontext,\n\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\tbindings,\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t\tfor ( const [ attributeName, value ] of Object.entries(\n\t\t\t\t\t\tvalues\n\t\t\t\t\t) ) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tattributeName === 'url' &&\n\t\t\t\t\t\t\t( ! value || ! isURLLike( value ) )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// Return null if value is not a valid URL.\n\t\t\t\t\t\t\tattributesFromSources[ attributeName ] = null;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tattributesFromSources[ attributeName ] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...attributes,\n\t\t\t\t...attributesFromSources,\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tattributes,\n\t\t\tbindableAttributes,\n\t\t\tblockBindings,\n\t\t\tclientId,\n\t\t\tcontext,\n\t\t\tregisteredSources,\n\t\t]\n\t);\n\n\tconst setBoundAttributes = useCallback(\n\t\t( nextAttributes ) => {\n\t\t\tif ( ! blockBindings ) {\n\t\t\t\tsetAttributes( nextAttributes );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tregistry.batch( () => {\n\t\t\t\tconst keptAttributes = { ...nextAttributes };\n\t\t\t\tconst blockBindingsBySource = new Map();\n\n\t\t\t\t// Loop only over the updated attributes to avoid modifying the bound ones that haven't changed.\n\t\t\t\tfor ( const [ attributeName, newValue ] of Object.entries(\n\t\t\t\t\tkeptAttributes\n\t\t\t\t) ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\t! blockBindings[ attributeName ] ||\n\t\t\t\t\t\t! bindableAttributes?.includes( attributeName )\n\t\t\t\t\t) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst binding = blockBindings[ attributeName ];\n\t\t\t\t\tconst source = registeredSources[ binding?.source ];\n\t\t\t\t\tif ( ! source?.setValues ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tblockBindingsBySource.set( source, {\n\t\t\t\t\t\t...blockBindingsBySource.get( source ),\n\t\t\t\t\t\t[ attributeName ]: {\n\t\t\t\t\t\t\targs: binding.args,\n\t\t\t\t\t\t\tnewValue,\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t\tdelete keptAttributes[ attributeName ];\n\t\t\t\t}\n\n\t\t\t\tif ( blockBindingsBySource.size ) {\n\t\t\t\t\tfor ( const [\n\t\t\t\t\t\tsource,\n\t\t\t\t\t\tbindings,\n\t\t\t\t\t] of blockBindingsBySource ) {\n\t\t\t\t\t\tsource.setValues( {\n\t\t\t\t\t\t\tselect: registry.select,\n\t\t\t\t\t\t\tdispatch: registry.dispatch,\n\t\t\t\t\t\t\tcontext,\n\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\tbindings,\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst hasParentPattern = !! context[ 'pattern/overrides' ];\n\n\t\t\t\tif (\n\t\t\t\t\t// Don't update non-connected attributes if the block is using pattern overrides\n\t\t\t\t\t// and the editing is happening while overriding the pattern (not editing the original).\n\t\t\t\t\t! ( hasPatternOverrides && hasParentPattern ) &&\n\t\t\t\t\tObject.keys( keptAttributes ).length\n\t\t\t\t) {\n\t\t\t\t\t// Don't update href until it is supported.\n\t\t\t\t\tif ( hasPatternOverrides ) {\n\t\t\t\t\t\tdelete keptAttributes.href;\n\t\t\t\t\t}\n\t\t\t\t\tsetAttributes( keptAttributes );\n\t\t\t\t}\n\t\t\t} );\n\t\t},\n\t\t[\n\t\t\tbindableAttributes,\n\t\t\tblockBindings,\n\t\t\tclientId,\n\t\t\tcontext,\n\t\t\thasPatternOverrides,\n\t\t\tsetAttributes,\n\t\t\tregisteredSources,\n\t\t\tregistry,\n\t\t]\n\t);\n\n\tif ( ! blockType ) {\n\t\treturn null;\n\t}\n\n\tif ( blockType.apiVersion > 1 ) {\n\t\treturn (\n\t\t\t<EditWithFilters\n\t\t\t\t{ ...props }\n\t\t\t\tattributes={ computedAttributes }\n\t\t\t\tcontext={ context }\n\t\t\t\tsetAttributes={ setBoundAttributes }\n\t\t\t/>\n\t\t);\n\t}\n\n\t// Generate a class name for the block's editable form.\n\tconst generatedClassName = hasBlockSupport( blockType, 'className', true )\n\t\t? getBlockDefaultClassName( name )\n\t\t: null;\n\tconst className = clsx(\n\t\tgeneratedClassName,\n\t\tattributes?.className,\n\t\tprops.className\n\t);\n\n\treturn (\n\t\t<EditWithFilters\n\t\t\t{ ...props }\n\t\t\tattributes={ computedAttributes }\n\t\t\tclassName={ className }\n\t\t\tcontext={ context }\n\t\t\tsetAttributes={ setBoundAttributes }\n\t\t/>\n\t);\n};\n\nexport default EditWithGeneratedProps;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -24,6 +24,7 @@ import { ListViewContentPopover } from "../inspector-controls/list-view-content-
|
|
|
24
24
|
import InspectorControls from "../inspector-controls/index.mjs";
|
|
25
25
|
import { BlockInspectorPreTabsSlot } from "./inspector-pre-tabs-slot-fill.mjs";
|
|
26
26
|
import { default as InspectorControlsTabs } from "../inspector-controls-tabs/index.mjs";
|
|
27
|
+
import { SectionStyleControls } from "../inspector-controls-tabs/styles-tab.mjs";
|
|
27
28
|
import useInspectorControlsTabs from "../inspector-controls-tabs/use-inspector-controls-tabs.mjs";
|
|
28
29
|
import InspectorControlsLastItem from "../inspector-controls/last-item.mjs";
|
|
29
30
|
import AdvancedControls from "../inspector-controls-tabs/advanced-controls-panel.mjs";
|
|
@@ -35,6 +36,7 @@ import ContentTab from "../inspector-controls-tabs/content-tab.mjs";
|
|
|
35
36
|
import ViewportVisibilityInfo from "../block-visibility/viewport-visibility-info.mjs";
|
|
36
37
|
import { unlock } from "../../lock-unlock.mjs";
|
|
37
38
|
import {
|
|
39
|
+
BlockStyleStateProvider,
|
|
38
40
|
hasPseudoBlockStyleState,
|
|
39
41
|
hasViewportBlockStyleState,
|
|
40
42
|
isDefaultBlockStyleState
|
|
@@ -95,56 +97,79 @@ function StyleInspectorSlots({
|
|
|
95
97
|
showAdvancedControls && /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(AdvancedControls, {}) })
|
|
96
98
|
] });
|
|
97
99
|
}
|
|
98
|
-
function StyleStateInspectorSlots({
|
|
100
|
+
function StyleStateInspectorSlots({
|
|
101
|
+
blockName,
|
|
102
|
+
clientId,
|
|
103
|
+
contentClientIds,
|
|
104
|
+
isSectionBlock,
|
|
105
|
+
selectedBlockStyleState
|
|
106
|
+
}) {
|
|
99
107
|
const borderPanelLabel = useBorderPanelLabel({ blockName });
|
|
100
108
|
const showLayoutControls = hasViewportBlockStyleState(selectedBlockStyleState) && !hasPseudoBlockStyleState(selectedBlockStyleState);
|
|
109
|
+
const showSectionStyleControls = isSectionBlock && blockName !== "core/template-part";
|
|
101
110
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
102
|
-
/* @__PURE__ */ jsx(
|
|
103
|
-
|
|
104
|
-
{
|
|
105
|
-
group: "typography",
|
|
106
|
-
label: __("Typography")
|
|
107
|
-
}
|
|
108
|
-
),
|
|
109
|
-
/* @__PURE__ */ jsx(
|
|
110
|
-
InspectorControls.Slot,
|
|
111
|
-
{
|
|
112
|
-
group: "color",
|
|
113
|
-
label: __("Color"),
|
|
114
|
-
className: "color-block-support-panel__inner-wrapper"
|
|
115
|
-
}
|
|
116
|
-
),
|
|
117
|
-
/* @__PURE__ */ jsx(
|
|
118
|
-
InspectorControls.Slot,
|
|
119
|
-
{
|
|
120
|
-
group: "background",
|
|
121
|
-
label: __("Background"),
|
|
122
|
-
className: "background-block-support-panel__inner-wrapper"
|
|
123
|
-
}
|
|
124
|
-
),
|
|
125
|
-
showLayoutControls && /* @__PURE__ */ jsx(
|
|
126
|
-
InspectorControls.Slot,
|
|
127
|
-
{
|
|
128
|
-
group: "layout",
|
|
129
|
-
label: __("Layout")
|
|
130
|
-
}
|
|
131
|
-
),
|
|
132
|
-
/* @__PURE__ */ jsx(
|
|
133
|
-
InspectorControls.Slot,
|
|
134
|
-
{
|
|
135
|
-
group: "dimensions",
|
|
136
|
-
label: __("Dimensions")
|
|
137
|
-
}
|
|
138
|
-
),
|
|
139
|
-
/* @__PURE__ */ jsx(InspectorControls.Slot, { group: "border", label: borderPanelLabel }),
|
|
140
|
-
/* @__PURE__ */ jsx(
|
|
141
|
-
InspectorControls.Slot,
|
|
111
|
+
showSectionStyleControls && /* @__PURE__ */ jsx(BlockStyleStateProvider, { value: selectedBlockStyleState, children: /* @__PURE__ */ jsx(
|
|
112
|
+
SectionStyleControls,
|
|
142
113
|
{
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
114
|
+
blockName,
|
|
115
|
+
clientId,
|
|
116
|
+
contentClientIds
|
|
146
117
|
}
|
|
147
|
-
)
|
|
118
|
+
) }),
|
|
119
|
+
!showSectionStyleControls && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
120
|
+
/* @__PURE__ */ jsx(
|
|
121
|
+
InspectorControls.Slot,
|
|
122
|
+
{
|
|
123
|
+
group: "typography",
|
|
124
|
+
label: __("Typography")
|
|
125
|
+
}
|
|
126
|
+
),
|
|
127
|
+
/* @__PURE__ */ jsx(
|
|
128
|
+
InspectorControls.Slot,
|
|
129
|
+
{
|
|
130
|
+
group: "color",
|
|
131
|
+
label: __("Color"),
|
|
132
|
+
className: "color-block-support-panel__inner-wrapper"
|
|
133
|
+
}
|
|
134
|
+
),
|
|
135
|
+
/* @__PURE__ */ jsx(
|
|
136
|
+
InspectorControls.Slot,
|
|
137
|
+
{
|
|
138
|
+
group: "background",
|
|
139
|
+
label: __("Background"),
|
|
140
|
+
className: "background-block-support-panel__inner-wrapper"
|
|
141
|
+
}
|
|
142
|
+
),
|
|
143
|
+
showLayoutControls && /* @__PURE__ */ jsx(
|
|
144
|
+
InspectorControls.Slot,
|
|
145
|
+
{
|
|
146
|
+
group: "layout",
|
|
147
|
+
label: __("Layout")
|
|
148
|
+
}
|
|
149
|
+
),
|
|
150
|
+
/* @__PURE__ */ jsx(
|
|
151
|
+
InspectorControls.Slot,
|
|
152
|
+
{
|
|
153
|
+
group: "dimensions",
|
|
154
|
+
label: __("Dimensions")
|
|
155
|
+
}
|
|
156
|
+
),
|
|
157
|
+
/* @__PURE__ */ jsx(
|
|
158
|
+
InspectorControls.Slot,
|
|
159
|
+
{
|
|
160
|
+
group: "border",
|
|
161
|
+
label: borderPanelLabel
|
|
162
|
+
}
|
|
163
|
+
),
|
|
164
|
+
/* @__PURE__ */ jsx(
|
|
165
|
+
InspectorControls.Slot,
|
|
166
|
+
{
|
|
167
|
+
group: "elements",
|
|
168
|
+
label: __("Elements"),
|
|
169
|
+
className: "elements-block-support-panel__inner-wrapper"
|
|
170
|
+
}
|
|
171
|
+
)
|
|
172
|
+
] })
|
|
148
173
|
] });
|
|
149
174
|
}
|
|
150
175
|
function BlockInspector() {
|
|
@@ -423,10 +448,13 @@ var BlockInspectorSingleBlock = ({
|
|
|
423
448
|
}
|
|
424
449
|
),
|
|
425
450
|
/* @__PURE__ */ jsx(BlockInspectorPreTabsSlot, {}),
|
|
426
|
-
isEditingStyleState &&
|
|
451
|
+
isEditingStyleState && /* @__PURE__ */ jsx(
|
|
427
452
|
StyleStateInspectorSlots,
|
|
428
453
|
{
|
|
429
454
|
blockName,
|
|
455
|
+
clientId: renderedBlockClientId,
|
|
456
|
+
contentClientIds,
|
|
457
|
+
isSectionBlock,
|
|
430
458
|
selectedBlockStyleState
|
|
431
459
|
}
|
|
432
460
|
),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/block-inspector/index.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport {\n\tToggleControl,\n\t__experimentalSpacer as Spacer,\n\t__unstableMotion as motion,\n} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport EditContents from './edit-contents';\nimport SkipToSelectedBlock from '../skip-to-selected-block';\nimport BlockCard from '../block-card';\nimport MultiSelectionInspector from '../multi-selection-inspector';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\nimport BlockStyles from '../block-styles';\nimport { ListViewContentPopover } from '../inspector-controls/list-view-content-popover';\nimport InspectorControls from '../inspector-controls';\nimport { BlockInspectorPreTabsSlot } from './inspector-pre-tabs-slot-fill';\nimport { default as InspectorControlsTabs } from '../inspector-controls-tabs';\nimport useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-controls-tabs';\nimport InspectorControlsLastItem from '../inspector-controls/last-item';\nimport AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';\nimport PositionControls from '../inspector-controls-tabs/position-controls-panel';\nimport useBlockInspectorAnimationSettings from './useBlockInspectorAnimationSettings';\nimport { useBorderPanelLabel } from '../../hooks/border';\nimport { BlockStateBadges, BlockStatesControl } from '../../hooks/states';\nimport ContentTab from '../inspector-controls-tabs/content-tab';\nimport ViewportVisibilityInfo from '../block-visibility/viewport-visibility-info';\nimport { unlock } from '../../lock-unlock';\nimport {\n\thasPseudoBlockStyleState,\n\thasViewportBlockStyleState,\n\tisDefaultBlockStyleState,\n} from '../../hooks/block-style-state';\n\nfunction StyleInspectorSlots( {\n\tblockName,\n\tshowAdvancedControls = true,\n\tshowPositionControls = true,\n\tshowBindingsControls = true,\n} ) {\n\tconst borderPanelLabel = useBorderPanelLabel( { blockName } );\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls.Slot />\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"typography\"\n\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"color\"\n\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"background\"\n\t\t\t\tlabel={ __( 'Background' ) }\n\t\t\t\tclassName=\"background-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t\t<InspectorControls.Slot group=\"layout\" label={ __( 'Layout' ) } />\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"dimensions\"\n\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot group=\"border\" label={ borderPanelLabel } />\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"elements\"\n\t\t\t\tlabel={ __( 'Elements' ) }\n\t\t\t\tclassName=\"elements-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t\t{ showPositionControls && <PositionControls /> }\n\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t{ showBindingsControls && (\n\t\t\t\t<InspectorControls.Slot group=\"bindings\" />\n\t\t\t) }\n\t\t\t{ showAdvancedControls && (\n\t\t\t\t<div>\n\t\t\t\t\t<AdvancedControls />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction StyleStateInspectorSlots( { blockName, selectedBlockStyleState } ) {\n\tconst borderPanelLabel = useBorderPanelLabel( { blockName } );\n\tconst showLayoutControls =\n\t\thasViewportBlockStyleState( selectedBlockStyleState ) &&\n\t\t! hasPseudoBlockStyleState( selectedBlockStyleState );\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"typography\"\n\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"color\"\n\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"background\"\n\t\t\t\tlabel={ __( 'Background' ) }\n\t\t\t\tclassName=\"background-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t\t{ showLayoutControls && (\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\tgroup=\"layout\"\n\t\t\t\t\tlabel={ __( 'Layout' ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"dimensions\"\n\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot group=\"border\" label={ borderPanelLabel } />\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"elements\"\n\t\t\t\tlabel={ __( 'Elements' ) }\n\t\t\t\tclassName=\"elements-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nfunction BlockInspector() {\n\tconst {\n\t\tselectedBlockCount,\n\t\trenderedBlockName,\n\t\trenderedBlockClientId,\n\t\tblockType,\n\t\tisSectionBlock,\n\t\tisSectionBlockInSelection,\n\t\thasBlockStyles,\n\t\teditedContentOnlySection,\n\t\tblockEditingMode,\n\t\tselectedBlockStyleState,\n\t\tshowStateOnCanvas,\n\t\tisResponsiveEditing,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\tgetParentSectionBlock,\n\t\t\tisSectionBlock: _isSectionBlock,\n\t\t\tgetEditedContentOnlySection,\n\t\t\tisWithinEditedContentOnlySection,\n\t\t\tgetBlockEditingMode,\n\t\t\tgetSelectedBlockStyleState,\n\t\t\tisSelectedBlockStyleStateShownOnCanvas,\n\t\t\tisResponsiveEditing: _isResponsiveEditing,\n\t\t} = unlock( select( blockEditorStore ) );\n\t\tconst { getBlockStyles } = select( blocksStore );\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst isWithinEditedSection = isWithinEditedContentOnlySection(\n\t\t\t_selectedBlockClientId\n\t\t);\n\t\tconst _renderedBlockClientId = isWithinEditedSection\n\t\t\t? _selectedBlockClientId\n\t\t\t: getParentSectionBlock( _selectedBlockClientId ) ||\n\t\t\t _selectedBlockClientId;\n\t\tconst _renderedBlockName =\n\t\t\t_renderedBlockClientId && getBlockName( _renderedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_renderedBlockName && getBlockType( _renderedBlockName );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst _isSectionBlockInSelection = selectedBlockClientIds.some(\n\t\t\t( id ) => _isSectionBlock( id )\n\t\t);\n\t\tconst blockStyles =\n\t\t\t_renderedBlockName && getBlockStyles( _renderedBlockName );\n\t\tconst _hasBlockStyles = blockStyles && blockStyles.length > 0;\n\n\t\treturn {\n\t\t\tselectedBlockCount: getSelectedBlockCount(),\n\t\t\trenderedBlockClientId: _renderedBlockClientId,\n\t\t\trenderedBlockName: _renderedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\tisSectionBlockInSelection: _isSectionBlockInSelection,\n\t\t\tisSectionBlock: _isSectionBlock( _renderedBlockClientId ),\n\t\t\thasBlockStyles: _hasBlockStyles,\n\t\t\teditedContentOnlySection: getEditedContentOnlySection(),\n\t\t\tblockEditingMode: getBlockEditingMode( _renderedBlockClientId ),\n\t\t\tselectedBlockStyleState: getSelectedBlockStyleState(\n\t\t\t\t_renderedBlockClientId\n\t\t\t),\n\t\t\tshowStateOnCanvas: isSelectedBlockStyleStateShownOnCanvas(\n\t\t\t\t_renderedBlockClientId\n\t\t\t),\n\t\t\tisResponsiveEditing: _isResponsiveEditing(),\n\t\t};\n\t}, [] );\n\n\t// Separate useSelect for contentClientIds with proper dependencies\n\tconst contentClientIds = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSectionBlock || ! renderedBlockClientId ) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tgetClientIdsOfDescendants,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tshouldRenderBlockListView,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\n\t\t\tconst descendants = getClientIdsOfDescendants(\n\t\t\t\trenderedBlockClientId\n\t\t\t);\n\n\t\t\t// Exclude items from the content tab that are already present in the\n\t\t\t// List View tab.\n\t\t\tconst listViewDescendants = new Set();\n\t\t\tdescendants.forEach( ( clientId ) => {\n\t\t\t\tif ( shouldRenderBlockListView( clientId ) ) {\n\t\t\t\t\tconst listViewChildren =\n\t\t\t\t\t\tgetClientIdsOfDescendants( clientId );\n\t\t\t\t\tlistViewChildren.forEach( ( childId ) =>\n\t\t\t\t\t\tlistViewDescendants.add( childId )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\treturn descendants.filter( ( current ) => {\n\t\t\t\treturn (\n\t\t\t\t\t! listViewDescendants.has( current ) &&\n\t\t\t\t\tgetBlockEditingMode( current ) === 'contentOnly'\n\t\t\t\t);\n\t\t\t} );\n\t\t},\n\t\t[ isSectionBlock, renderedBlockClientId ]\n\t);\n\n\tconst availableTabs = useInspectorControlsTabs(\n\t\tblockType?.name,\n\t\tcontentClientIds,\n\t\tisSectionBlock,\n\t\thasBlockStyles\n\t);\n\tconst hasMultipleTabs = availableTabs?.length > 1;\n\n\t// The block inspector animation settings will be completely\n\t// removed in the future to create an API which allows the block\n\t// inspector to transition between what it\n\t// displays based on the relationship between the selected block\n\t// and its parent, and only enable it if the parent is controlling\n\t// its children blocks.\n\tconst blockInspectorAnimationSettings =\n\t\tuseBlockInspectorAnimationSettings( blockType );\n\n\tconst hasSelectedBlocks = selectedBlockCount > 1;\n\tconst isBlockStyleStateSelected = ! isDefaultBlockStyleState(\n\t\tselectedBlockStyleState\n\t);\n\n\tif ( hasSelectedBlocks && ! isSectionBlockInSelection ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t{ hasMultipleTabs ? (\n\t\t\t\t\t<InspectorControlsTabs tabs={ availableTabs } />\n\t\t\t\t) : (\n\t\t\t\t\t<StyleInspectorSlots\n\t\t\t\t\t\tblockName={ renderedBlockName }\n\t\t\t\t\t\tshowAdvancedControls={ false }\n\t\t\t\t\t\tshowPositionControls={ false }\n\t\t\t\t\t\tshowBindingsControls={ false }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( hasSelectedBlocks && isSectionBlockInSelection ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isRenderedBlockUnregistered =\n\t\trenderedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the rendered block is of an unregistered type, avoid showing it as an actual selection\n\t * because we want the user to focus on the unregistered block warning, not block settings.\n\t */\n\tconst shouldShowWarning =\n\t\t! blockType || ! renderedBlockClientId || isRenderedBlockUnregistered;\n\n\tif ( shouldShowWarning ) {\n\t\treturn (\n\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t</span>\n\t\t);\n\t}\n\n\treturn (\n\t\t<BlockInspectorSingleBlockWrapper\n\t\t\tanimate={ blockInspectorAnimationSettings }\n\t\t\twrapper={ ( children ) => (\n\t\t\t\t<AnimatedContainer\n\t\t\t\t\tblockInspectorAnimationSettings={\n\t\t\t\t\t\tblockInspectorAnimationSettings\n\t\t\t\t\t}\n\t\t\t\t\trenderedBlockClientId={ renderedBlockClientId }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</AnimatedContainer>\n\t\t\t) }\n\t\t>\n\t\t\t<BlockInspectorSingleBlock\n\t\t\t\trenderedBlockClientId={ renderedBlockClientId }\n\t\t\t\tblockName={ blockType.name }\n\t\t\t\tisSectionBlock={ isSectionBlock }\n\t\t\t\tavailableTabs={ availableTabs }\n\t\t\t\tcontentClientIds={ contentClientIds }\n\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\teditedContentOnlySection={ editedContentOnlySection }\n\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\tselectedBlockStyleState={ selectedBlockStyleState }\n\t\t\t\tshowStateOnCanvas={ showStateOnCanvas }\n\t\t\t\tisResponsiveEditing={ isResponsiveEditing }\n\t\t\t\tisBlockStyleStateSelected={ isBlockStyleStateSelected }\n\t\t\t/>\n\t\t</BlockInspectorSingleBlockWrapper>\n\t);\n}\n\nconst BlockInspectorSingleBlockWrapper = ( { animate, wrapper, children } ) => {\n\treturn animate ? wrapper( children ) : children;\n};\n\nconst AnimatedContainer = ( {\n\tblockInspectorAnimationSettings,\n\trenderedBlockClientId,\n\tchildren,\n} ) => {\n\tconst animationOrigin =\n\t\tblockInspectorAnimationSettings &&\n\t\tblockInspectorAnimationSettings.enterDirection === 'leftToRight'\n\t\t\t? -50\n\t\t\t: 50;\n\n\treturn (\n\t\t<motion.div\n\t\t\tanimate={ {\n\t\t\t\tx: 0,\n\t\t\t\topacity: 1,\n\t\t\t\ttransition: {\n\t\t\t\t\tease: 'easeInOut',\n\t\t\t\t\tduration: 0.14,\n\t\t\t\t},\n\t\t\t} }\n\t\t\tinitial={ {\n\t\t\t\tx: animationOrigin,\n\t\t\t\topacity: 0,\n\t\t\t} }\n\t\t\tkey={ renderedBlockClientId }\n\t\t>\n\t\t\t{ children }\n\t\t</motion.div>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( {\n\t// The block that is displayed in the inspector. This is the block whose\n\t// controls and information are shown to the user.\n\trenderedBlockClientId,\n\tblockName,\n\tisSectionBlock,\n\tavailableTabs,\n\tcontentClientIds,\n\thasBlockStyles,\n\teditedContentOnlySection,\n\tblockEditingMode,\n\tselectedBlockStyleState,\n\tshowStateOnCanvas,\n\tisResponsiveEditing,\n} ) => {\n\tconst listViewRef = useRef( null );\n\tconst hasMultipleTabs = availableTabs?.length > 1;\n\tconst hasPseudoState = hasPseudoBlockStyleState( selectedBlockStyleState );\n\tconst isEditingStyleState =\n\t\t( hasViewportBlockStyleState( selectedBlockStyleState ) &&\n\t\t\tisResponsiveEditing ) ||\n\t\thasPseudoBlockStyleState( selectedBlockStyleState );\n\tconst hasParentChildBlockCards =\n\t\teditedContentOnlySection &&\n\t\teditedContentOnlySection !== renderedBlockClientId;\n\tconst parentBlockInformation = useBlockDisplayInformation(\n\t\teditedContentOnlySection\n\t);\n\tconst blockInformation = useBlockDisplayInformation(\n\t\trenderedBlockClientId\n\t);\n\tconst isBlockSynced = blockInformation.isSynced;\n\tconst {\n\t\tsetSelectedBlockStyleState,\n\t\tsetSelectedBlockStyleStateCanvasPreview,\n\t} = unlock( useDispatch( blockEditorStore ) );\n\tconst onBlockStyleStateChange = ( value ) => {\n\t\tsetSelectedBlockStyleState( renderedBlockClientId, value );\n\t};\n\tconst onShowStateOnCanvasChange = ( value ) => {\n\t\tsetSelectedBlockStyleStateCanvasPreview( renderedBlockClientId, value );\n\t};\n\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t{ hasParentChildBlockCards && (\n\t\t\t\t<BlockCard\n\t\t\t\t\t{ ...parentBlockInformation }\n\t\t\t\t\tclassName={\n\t\t\t\t\t\tparentBlockInformation?.isSynced && 'is-synced'\n\t\t\t\t\t}\n\t\t\t\t\tparentClientId={ editedContentOnlySection }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tallowParentNavigation\n\t\t\t\tclassName={ isBlockSynced && 'is-synced' }\n\t\t\t\tisChild={ hasParentChildBlockCards }\n\t\t\t\tclientId={ renderedBlockClientId }\n\t\t\t\tcontrols={\n\t\t\t\t\tblockEditingMode === 'default' && (\n\t\t\t\t\t\t<BlockStatesControl\n\t\t\t\t\t\t\tname={ blockName }\n\t\t\t\t\t\t\tvalue={ selectedBlockStyleState }\n\t\t\t\t\t\t\tonChange={ onBlockStyleStateChange }\n\t\t\t\t\t\t/>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ blockEditingMode === 'default' && isEditingStyleState && (\n\t\t\t\t<Spacer paddingX={ 4 } paddingY={ 2 }>\n\t\t\t\t\t{ hasPseudoState && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show state on canvas' ) }\n\t\t\t\t\t\t\tchecked={ showStateOnCanvas }\n\t\t\t\t\t\t\tonChange={ onShowStateOnCanvasChange }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<BlockStateBadges\n\t\t\t\t\t\tname={ blockName }\n\t\t\t\t\t\tvalue={ selectedBlockStyleState }\n\t\t\t\t\t\tisResponsiveEditing={ isResponsiveEditing }\n\t\t\t\t\t/>\n\t\t\t\t</Spacer>\n\t\t\t) }\n\t\t\t<ViewportVisibilityInfo clientId={ renderedBlockClientId } />\n\t\t\t<EditContents clientId={ renderedBlockClientId } />\n\t\t\t{ ! isEditingStyleState && (\n\t\t\t\t<BlockVariationTransforms\n\t\t\t\t\tblockClientId={ renderedBlockClientId }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<BlockInspectorPreTabsSlot />\n\t\t\t{ isEditingStyleState && ! isSectionBlock && (\n\t\t\t\t<StyleStateInspectorSlots\n\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\tselectedBlockStyleState={ selectedBlockStyleState }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! isEditingStyleState && hasMultipleTabs && (\n\t\t\t\t<>\n\t\t\t\t\t<InspectorControlsTabs\n\t\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\t\tclientId={ renderedBlockClientId }\n\t\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\t\ttabs={ availableTabs }\n\t\t\t\t\t\tisSectionBlock={ isSectionBlock }\n\t\t\t\t\t\tcontentClientIds={ contentClientIds }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ ! isEditingStyleState && ! hasMultipleTabs && (\n\t\t\t\t<>\n\t\t\t\t\t{ hasBlockStyles && (\n\t\t\t\t\t\t<BlockStyles clientId={ renderedBlockClientId } />\n\t\t\t\t\t) }\n\t\t\t\t\t<ContentTab contentClientIds={ contentClientIds } />\n\t\t\t\t\t<InspectorControls.Slot group=\"content\" />\n\t\t\t\t\t<InspectorControls.Slot group=\"list\" ref={ listViewRef } />\n\t\t\t\t\t<ListViewContentPopover listViewRef={ listViewRef } />\n\t\t\t\t\t{ ! isSectionBlock && (\n\t\t\t\t\t\t<StyleInspectorSlots blockName={ blockName } />\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ ! isEditingStyleState && <InspectorControlsLastItem.Slot /> }\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md\n */\nexport default BlockInspector;\n"],
|
|
5
|
-
"mappings": ";AAGA,SAAS,UAAU;AACnB;AAAA,EACC;AAAA,EACA;AAAA,EACA,SAAS;AAAA,OACH;AACP;AAAA,EACC;AAAA,EACA,wBAAwB;AAAA,EACxB,oBAAoB;AAAA,OACd;AACP,SAAS,aAAa,iBAAiB;AACvC,SAAS,cAAc;AAKvB,OAAO,kBAAkB;AACzB,OAAO,yBAAyB;AAChC,OAAO,eAAe;AACtB,OAAO,6BAA6B;AACpC,OAAO,8BAA8B;AACrC,OAAO,gCAAgC;AACvC,SAAS,SAAS,wBAAwB;AAC1C,OAAO,iBAAiB;AACxB,SAAS,8BAA8B;AACvC,OAAO,uBAAuB;AAC9B,SAAS,iCAAiC;AAC1C,SAAS,WAAW,6BAA6B;AACjD,OAAO,8BAA8B;AACrC,OAAO,+BAA+B;AACtC,OAAO,sBAAsB;AAC7B,OAAO,sBAAsB;AAC7B,OAAO,wCAAwC;AAC/C,SAAS,2BAA2B;AACpC,SAAS,kBAAkB,0BAA0B;AACrD,OAAO,gBAAgB;AACvB,OAAO,4BAA4B;AACnC,SAAS,cAAc;AACvB;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAUL,mBACC,KADD;AARF,SAAS,oBAAqB;AAAA,EAC7B;AAAA,EACA,uBAAuB;AAAA,EACvB,uBAAuB;AAAA,EACvB,uBAAuB;AACxB,GAAI;AACH,QAAM,mBAAmB,oBAAqB,EAAE,UAAU,CAAE;AAC5D,SACC,iCACC;AAAA,wBAAC,kBAAkB,MAAlB,EAAuB;AAAA,IACxB;AAAA,MAAC,kBAAkB;AAAA,MAAlB;AAAA,QACA,OAAM;AAAA,QACN,OAAQ,GAAI,YAAa;AAAA;AAAA,IAC1B;AAAA,IACA;AAAA,MAAC,kBAAkB;AAAA,MAAlB;AAAA,QACA,OAAM;AAAA,QACN,OAAQ,GAAI,OAAQ;AAAA,QACpB,WAAU;AAAA;AAAA,IACX;AAAA,IACA;AAAA,MAAC,kBAAkB;AAAA,MAAlB;AAAA,QACA,OAAM;AAAA,QACN,OAAQ,GAAI,YAAa;AAAA,QACzB,WAAU;AAAA;AAAA,IACX;AAAA,IACA,oBAAC,kBAAkB,MAAlB,EAAuB,OAAM,UAAS,OAAQ,GAAI,QAAS,GAAI;AAAA,IAChE;AAAA,MAAC,kBAAkB;AAAA,MAAlB;AAAA,QACA,OAAM;AAAA,QACN,OAAQ,GAAI,YAAa;AAAA;AAAA,IAC1B;AAAA,IACA,oBAAC,kBAAkB,MAAlB,EAAuB,OAAM,UAAS,OAAQ,kBAAmB;AAAA,IAClE;AAAA,MAAC,kBAAkB;AAAA,MAAlB;AAAA,QACA,OAAM;AAAA,QACN,OAAQ,GAAI,UAAW;AAAA,QACvB,WAAU;AAAA;AAAA,IACX;AAAA,IACE,wBAAwB,oBAAC,oBAAiB;AAAA,IAC5C,oBAAC,kBAAkB,MAAlB,EAAuB,OAAM,UAAS;AAAA,IACrC,wBACD,oBAAC,kBAAkB,MAAlB,EAAuB,OAAM,YAAW;AAAA,IAExC,wBACD,oBAAC,SACA,8BAAC,oBAAiB,GACnB;AAAA,KAEF;AAEF;AAEA,SAAS,yBAA0B,
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport {\n\tToggleControl,\n\t__experimentalSpacer as Spacer,\n\t__unstableMotion as motion,\n} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport EditContents from './edit-contents';\nimport SkipToSelectedBlock from '../skip-to-selected-block';\nimport BlockCard from '../block-card';\nimport MultiSelectionInspector from '../multi-selection-inspector';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\nimport BlockStyles from '../block-styles';\nimport { ListViewContentPopover } from '../inspector-controls/list-view-content-popover';\nimport InspectorControls from '../inspector-controls';\nimport { BlockInspectorPreTabsSlot } from './inspector-pre-tabs-slot-fill';\nimport { default as InspectorControlsTabs } from '../inspector-controls-tabs';\nimport { SectionStyleControls } from '../inspector-controls-tabs/styles-tab';\nimport useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-controls-tabs';\nimport InspectorControlsLastItem from '../inspector-controls/last-item';\nimport AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';\nimport PositionControls from '../inspector-controls-tabs/position-controls-panel';\nimport useBlockInspectorAnimationSettings from './useBlockInspectorAnimationSettings';\nimport { useBorderPanelLabel } from '../../hooks/border';\nimport { BlockStateBadges, BlockStatesControl } from '../../hooks/states';\nimport ContentTab from '../inspector-controls-tabs/content-tab';\nimport ViewportVisibilityInfo from '../block-visibility/viewport-visibility-info';\nimport { unlock } from '../../lock-unlock';\nimport {\n\tBlockStyleStateProvider,\n\thasPseudoBlockStyleState,\n\thasViewportBlockStyleState,\n\tisDefaultBlockStyleState,\n} from '../../hooks/block-style-state';\n\nfunction StyleInspectorSlots( {\n\tblockName,\n\tshowAdvancedControls = true,\n\tshowPositionControls = true,\n\tshowBindingsControls = true,\n} ) {\n\tconst borderPanelLabel = useBorderPanelLabel( { blockName } );\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls.Slot />\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"typography\"\n\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"color\"\n\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"background\"\n\t\t\t\tlabel={ __( 'Background' ) }\n\t\t\t\tclassName=\"background-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t\t<InspectorControls.Slot group=\"layout\" label={ __( 'Layout' ) } />\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"dimensions\"\n\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot group=\"border\" label={ borderPanelLabel } />\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"elements\"\n\t\t\t\tlabel={ __( 'Elements' ) }\n\t\t\t\tclassName=\"elements-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t\t{ showPositionControls && <PositionControls /> }\n\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t{ showBindingsControls && (\n\t\t\t\t<InspectorControls.Slot group=\"bindings\" />\n\t\t\t) }\n\t\t\t{ showAdvancedControls && (\n\t\t\t\t<div>\n\t\t\t\t\t<AdvancedControls />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction StyleStateInspectorSlots( {\n\tblockName,\n\tclientId,\n\tcontentClientIds,\n\tisSectionBlock,\n\tselectedBlockStyleState,\n} ) {\n\tconst borderPanelLabel = useBorderPanelLabel( { blockName } );\n\tconst showLayoutControls =\n\t\thasViewportBlockStyleState( selectedBlockStyleState ) &&\n\t\t! hasPseudoBlockStyleState( selectedBlockStyleState );\n\tconst showSectionStyleControls =\n\t\tisSectionBlock && blockName !== 'core/template-part';\n\treturn (\n\t\t<>\n\t\t\t{ showSectionStyleControls && (\n\t\t\t\t<BlockStyleStateProvider value={ selectedBlockStyleState }>\n\t\t\t\t\t<SectionStyleControls\n\t\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tcontentClientIds={ contentClientIds }\n\t\t\t\t\t/>\n\t\t\t\t</BlockStyleStateProvider>\n\t\t\t) }\n\t\t\t{ ! showSectionStyleControls && (\n\t\t\t\t<>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"background\"\n\t\t\t\t\t\tlabel={ __( 'Background' ) }\n\t\t\t\t\t\tclassName=\"background-block-support-panel__inner-wrapper\"\n\t\t\t\t\t/>\n\t\t\t\t\t{ showLayoutControls && (\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"layout\"\n\t\t\t\t\t\t\tlabel={ __( 'Layout' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\tlabel={ borderPanelLabel }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"elements\"\n\t\t\t\t\t\tlabel={ __( 'Elements' ) }\n\t\t\t\t\t\tclassName=\"elements-block-support-panel__inner-wrapper\"\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction BlockInspector() {\n\tconst {\n\t\tselectedBlockCount,\n\t\trenderedBlockName,\n\t\trenderedBlockClientId,\n\t\tblockType,\n\t\tisSectionBlock,\n\t\tisSectionBlockInSelection,\n\t\thasBlockStyles,\n\t\teditedContentOnlySection,\n\t\tblockEditingMode,\n\t\tselectedBlockStyleState,\n\t\tshowStateOnCanvas,\n\t\tisResponsiveEditing,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\tgetParentSectionBlock,\n\t\t\tisSectionBlock: _isSectionBlock,\n\t\t\tgetEditedContentOnlySection,\n\t\t\tisWithinEditedContentOnlySection,\n\t\t\tgetBlockEditingMode,\n\t\t\tgetSelectedBlockStyleState,\n\t\t\tisSelectedBlockStyleStateShownOnCanvas,\n\t\t\tisResponsiveEditing: _isResponsiveEditing,\n\t\t} = unlock( select( blockEditorStore ) );\n\t\tconst { getBlockStyles } = select( blocksStore );\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst isWithinEditedSection = isWithinEditedContentOnlySection(\n\t\t\t_selectedBlockClientId\n\t\t);\n\t\tconst _renderedBlockClientId = isWithinEditedSection\n\t\t\t? _selectedBlockClientId\n\t\t\t: getParentSectionBlock( _selectedBlockClientId ) ||\n\t\t\t _selectedBlockClientId;\n\t\tconst _renderedBlockName =\n\t\t\t_renderedBlockClientId && getBlockName( _renderedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_renderedBlockName && getBlockType( _renderedBlockName );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst _isSectionBlockInSelection = selectedBlockClientIds.some(\n\t\t\t( id ) => _isSectionBlock( id )\n\t\t);\n\t\tconst blockStyles =\n\t\t\t_renderedBlockName && getBlockStyles( _renderedBlockName );\n\t\tconst _hasBlockStyles = blockStyles && blockStyles.length > 0;\n\n\t\treturn {\n\t\t\tselectedBlockCount: getSelectedBlockCount(),\n\t\t\trenderedBlockClientId: _renderedBlockClientId,\n\t\t\trenderedBlockName: _renderedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\tisSectionBlockInSelection: _isSectionBlockInSelection,\n\t\t\tisSectionBlock: _isSectionBlock( _renderedBlockClientId ),\n\t\t\thasBlockStyles: _hasBlockStyles,\n\t\t\teditedContentOnlySection: getEditedContentOnlySection(),\n\t\t\tblockEditingMode: getBlockEditingMode( _renderedBlockClientId ),\n\t\t\tselectedBlockStyleState: getSelectedBlockStyleState(\n\t\t\t\t_renderedBlockClientId\n\t\t\t),\n\t\t\tshowStateOnCanvas: isSelectedBlockStyleStateShownOnCanvas(\n\t\t\t\t_renderedBlockClientId\n\t\t\t),\n\t\t\tisResponsiveEditing: _isResponsiveEditing(),\n\t\t};\n\t}, [] );\n\n\t// Separate useSelect for contentClientIds with proper dependencies\n\tconst contentClientIds = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSectionBlock || ! renderedBlockClientId ) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tgetClientIdsOfDescendants,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tshouldRenderBlockListView,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\n\t\t\tconst descendants = getClientIdsOfDescendants(\n\t\t\t\trenderedBlockClientId\n\t\t\t);\n\n\t\t\t// Exclude items from the content tab that are already present in the\n\t\t\t// List View tab.\n\t\t\tconst listViewDescendants = new Set();\n\t\t\tdescendants.forEach( ( clientId ) => {\n\t\t\t\tif ( shouldRenderBlockListView( clientId ) ) {\n\t\t\t\t\tconst listViewChildren =\n\t\t\t\t\t\tgetClientIdsOfDescendants( clientId );\n\t\t\t\t\tlistViewChildren.forEach( ( childId ) =>\n\t\t\t\t\t\tlistViewDescendants.add( childId )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\treturn descendants.filter( ( current ) => {\n\t\t\t\treturn (\n\t\t\t\t\t! listViewDescendants.has( current ) &&\n\t\t\t\t\tgetBlockEditingMode( current ) === 'contentOnly'\n\t\t\t\t);\n\t\t\t} );\n\t\t},\n\t\t[ isSectionBlock, renderedBlockClientId ]\n\t);\n\n\tconst availableTabs = useInspectorControlsTabs(\n\t\tblockType?.name,\n\t\tcontentClientIds,\n\t\tisSectionBlock,\n\t\thasBlockStyles\n\t);\n\tconst hasMultipleTabs = availableTabs?.length > 1;\n\n\t// The block inspector animation settings will be completely\n\t// removed in the future to create an API which allows the block\n\t// inspector to transition between what it\n\t// displays based on the relationship between the selected block\n\t// and its parent, and only enable it if the parent is controlling\n\t// its children blocks.\n\tconst blockInspectorAnimationSettings =\n\t\tuseBlockInspectorAnimationSettings( blockType );\n\n\tconst hasSelectedBlocks = selectedBlockCount > 1;\n\tconst isBlockStyleStateSelected = ! isDefaultBlockStyleState(\n\t\tselectedBlockStyleState\n\t);\n\n\tif ( hasSelectedBlocks && ! isSectionBlockInSelection ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t{ hasMultipleTabs ? (\n\t\t\t\t\t<InspectorControlsTabs tabs={ availableTabs } />\n\t\t\t\t) : (\n\t\t\t\t\t<StyleInspectorSlots\n\t\t\t\t\t\tblockName={ renderedBlockName }\n\t\t\t\t\t\tshowAdvancedControls={ false }\n\t\t\t\t\t\tshowPositionControls={ false }\n\t\t\t\t\t\tshowBindingsControls={ false }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( hasSelectedBlocks && isSectionBlockInSelection ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isRenderedBlockUnregistered =\n\t\trenderedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the rendered block is of an unregistered type, avoid showing it as an actual selection\n\t * because we want the user to focus on the unregistered block warning, not block settings.\n\t */\n\tconst shouldShowWarning =\n\t\t! blockType || ! renderedBlockClientId || isRenderedBlockUnregistered;\n\n\tif ( shouldShowWarning ) {\n\t\treturn (\n\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t</span>\n\t\t);\n\t}\n\n\treturn (\n\t\t<BlockInspectorSingleBlockWrapper\n\t\t\tanimate={ blockInspectorAnimationSettings }\n\t\t\twrapper={ ( children ) => (\n\t\t\t\t<AnimatedContainer\n\t\t\t\t\tblockInspectorAnimationSettings={\n\t\t\t\t\t\tblockInspectorAnimationSettings\n\t\t\t\t\t}\n\t\t\t\t\trenderedBlockClientId={ renderedBlockClientId }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</AnimatedContainer>\n\t\t\t) }\n\t\t>\n\t\t\t<BlockInspectorSingleBlock\n\t\t\t\trenderedBlockClientId={ renderedBlockClientId }\n\t\t\t\tblockName={ blockType.name }\n\t\t\t\tisSectionBlock={ isSectionBlock }\n\t\t\t\tavailableTabs={ availableTabs }\n\t\t\t\tcontentClientIds={ contentClientIds }\n\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\teditedContentOnlySection={ editedContentOnlySection }\n\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\tselectedBlockStyleState={ selectedBlockStyleState }\n\t\t\t\tshowStateOnCanvas={ showStateOnCanvas }\n\t\t\t\tisResponsiveEditing={ isResponsiveEditing }\n\t\t\t\tisBlockStyleStateSelected={ isBlockStyleStateSelected }\n\t\t\t/>\n\t\t</BlockInspectorSingleBlockWrapper>\n\t);\n}\n\nconst BlockInspectorSingleBlockWrapper = ( { animate, wrapper, children } ) => {\n\treturn animate ? wrapper( children ) : children;\n};\n\nconst AnimatedContainer = ( {\n\tblockInspectorAnimationSettings,\n\trenderedBlockClientId,\n\tchildren,\n} ) => {\n\tconst animationOrigin =\n\t\tblockInspectorAnimationSettings &&\n\t\tblockInspectorAnimationSettings.enterDirection === 'leftToRight'\n\t\t\t? -50\n\t\t\t: 50;\n\n\treturn (\n\t\t<motion.div\n\t\t\tanimate={ {\n\t\t\t\tx: 0,\n\t\t\t\topacity: 1,\n\t\t\t\ttransition: {\n\t\t\t\t\tease: 'easeInOut',\n\t\t\t\t\tduration: 0.14,\n\t\t\t\t},\n\t\t\t} }\n\t\t\tinitial={ {\n\t\t\t\tx: animationOrigin,\n\t\t\t\topacity: 0,\n\t\t\t} }\n\t\t\tkey={ renderedBlockClientId }\n\t\t>\n\t\t\t{ children }\n\t\t</motion.div>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( {\n\t// The block that is displayed in the inspector. This is the block whose\n\t// controls and information are shown to the user.\n\trenderedBlockClientId,\n\tblockName,\n\tisSectionBlock,\n\tavailableTabs,\n\tcontentClientIds,\n\thasBlockStyles,\n\teditedContentOnlySection,\n\tblockEditingMode,\n\tselectedBlockStyleState,\n\tshowStateOnCanvas,\n\tisResponsiveEditing,\n} ) => {\n\tconst listViewRef = useRef( null );\n\tconst hasMultipleTabs = availableTabs?.length > 1;\n\tconst hasPseudoState = hasPseudoBlockStyleState( selectedBlockStyleState );\n\tconst isEditingStyleState =\n\t\t( hasViewportBlockStyleState( selectedBlockStyleState ) &&\n\t\t\tisResponsiveEditing ) ||\n\t\thasPseudoBlockStyleState( selectedBlockStyleState );\n\tconst hasParentChildBlockCards =\n\t\teditedContentOnlySection &&\n\t\teditedContentOnlySection !== renderedBlockClientId;\n\tconst parentBlockInformation = useBlockDisplayInformation(\n\t\teditedContentOnlySection\n\t);\n\tconst blockInformation = useBlockDisplayInformation(\n\t\trenderedBlockClientId\n\t);\n\tconst isBlockSynced = blockInformation.isSynced;\n\tconst {\n\t\tsetSelectedBlockStyleState,\n\t\tsetSelectedBlockStyleStateCanvasPreview,\n\t} = unlock( useDispatch( blockEditorStore ) );\n\tconst onBlockStyleStateChange = ( value ) => {\n\t\tsetSelectedBlockStyleState( renderedBlockClientId, value );\n\t};\n\tconst onShowStateOnCanvasChange = ( value ) => {\n\t\tsetSelectedBlockStyleStateCanvasPreview( renderedBlockClientId, value );\n\t};\n\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t{ hasParentChildBlockCards && (\n\t\t\t\t<BlockCard\n\t\t\t\t\t{ ...parentBlockInformation }\n\t\t\t\t\tclassName={\n\t\t\t\t\t\tparentBlockInformation?.isSynced && 'is-synced'\n\t\t\t\t\t}\n\t\t\t\t\tparentClientId={ editedContentOnlySection }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tallowParentNavigation\n\t\t\t\tclassName={ isBlockSynced && 'is-synced' }\n\t\t\t\tisChild={ hasParentChildBlockCards }\n\t\t\t\tclientId={ renderedBlockClientId }\n\t\t\t\tcontrols={\n\t\t\t\t\tblockEditingMode === 'default' && (\n\t\t\t\t\t\t<BlockStatesControl\n\t\t\t\t\t\t\tname={ blockName }\n\t\t\t\t\t\t\tvalue={ selectedBlockStyleState }\n\t\t\t\t\t\t\tonChange={ onBlockStyleStateChange }\n\t\t\t\t\t\t/>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ blockEditingMode === 'default' && isEditingStyleState && (\n\t\t\t\t<Spacer paddingX={ 4 } paddingY={ 2 }>\n\t\t\t\t\t{ hasPseudoState && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show state on canvas' ) }\n\t\t\t\t\t\t\tchecked={ showStateOnCanvas }\n\t\t\t\t\t\t\tonChange={ onShowStateOnCanvasChange }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<BlockStateBadges\n\t\t\t\t\t\tname={ blockName }\n\t\t\t\t\t\tvalue={ selectedBlockStyleState }\n\t\t\t\t\t\tisResponsiveEditing={ isResponsiveEditing }\n\t\t\t\t\t/>\n\t\t\t\t</Spacer>\n\t\t\t) }\n\t\t\t<ViewportVisibilityInfo clientId={ renderedBlockClientId } />\n\t\t\t<EditContents clientId={ renderedBlockClientId } />\n\t\t\t{ ! isEditingStyleState && (\n\t\t\t\t<BlockVariationTransforms\n\t\t\t\t\tblockClientId={ renderedBlockClientId }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<BlockInspectorPreTabsSlot />\n\t\t\t{ isEditingStyleState && (\n\t\t\t\t<StyleStateInspectorSlots\n\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\tclientId={ renderedBlockClientId }\n\t\t\t\t\tcontentClientIds={ contentClientIds }\n\t\t\t\t\tisSectionBlock={ isSectionBlock }\n\t\t\t\t\tselectedBlockStyleState={ selectedBlockStyleState }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! isEditingStyleState && hasMultipleTabs && (\n\t\t\t\t<>\n\t\t\t\t\t<InspectorControlsTabs\n\t\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\t\tclientId={ renderedBlockClientId }\n\t\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\t\ttabs={ availableTabs }\n\t\t\t\t\t\tisSectionBlock={ isSectionBlock }\n\t\t\t\t\t\tcontentClientIds={ contentClientIds }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ ! isEditingStyleState && ! hasMultipleTabs && (\n\t\t\t\t<>\n\t\t\t\t\t{ hasBlockStyles && (\n\t\t\t\t\t\t<BlockStyles clientId={ renderedBlockClientId } />\n\t\t\t\t\t) }\n\t\t\t\t\t<ContentTab contentClientIds={ contentClientIds } />\n\t\t\t\t\t<InspectorControls.Slot group=\"content\" />\n\t\t\t\t\t<InspectorControls.Slot group=\"list\" ref={ listViewRef } />\n\t\t\t\t\t<ListViewContentPopover listViewRef={ listViewRef } />\n\t\t\t\t\t{ ! isSectionBlock && (\n\t\t\t\t\t\t<StyleInspectorSlots blockName={ blockName } />\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ ! isEditingStyleState && <InspectorControlsLastItem.Slot /> }\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md\n */\nexport default BlockInspector;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -10,9 +10,11 @@ import {
|
|
|
10
10
|
validateBlock
|
|
11
11
|
} from "@wordpress/blocks";
|
|
12
12
|
import { store as blockEditorStore } from "../../store/index.mjs";
|
|
13
|
+
import { useNativeUndo } from "../../utils/native-undo.mjs";
|
|
13
14
|
import { jsx } from "react/jsx-runtime";
|
|
14
15
|
function BlockHTML({ clientId }) {
|
|
15
16
|
const [html, setHtml] = useState("");
|
|
17
|
+
const nativeUndoRef = useNativeUndo();
|
|
16
18
|
const block = useSelect(
|
|
17
19
|
(select) => select(blockEditorStore).getBlock(clientId),
|
|
18
20
|
[clientId]
|
|
@@ -56,7 +58,8 @@ function BlockHTML({ clientId }) {
|
|
|
56
58
|
className: "block-editor-block-list__block-html-textarea",
|
|
57
59
|
value: html,
|
|
58
60
|
onBlur: onChange,
|
|
59
|
-
onChange: (event) => setHtml(event.target.value)
|
|
61
|
+
onChange: (event) => setHtml(event.target.value),
|
|
62
|
+
ref: nativeUndoRef
|
|
60
63
|
}
|
|
61
64
|
);
|
|
62
65
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/block-list/block-html.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * External dependencies\n */\nimport TextareaAutosize from 'react-autosize-textarea';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tgetBlockAttributes,\n\tgetBlockContent,\n\tgetBlockType,\n\tgetSaveContent,\n\tvalidateBlock,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockHTML( { clientId } ) {\n\tconst [ html, setHtml ] = useState( '' );\n\tconst block = useSelect(\n\t\t( select ) => select( blockEditorStore ).getBlock( clientId ),\n\t\t[ clientId ]\n\t);\n\tconst { updateBlock } = useDispatch( blockEditorStore );\n\n\t// Derive block content as a primitive string so the effect only fires\n\t// when the serialized content genuinely changes, not when the block\n\t// object reference changes (which happens on every RESET_BLOCKS during\n\t// RTC sync, even for unchanged blocks).\n\tconst blockContent = useMemo(\n\t\t() => ( block ? getBlockContent( block ) : '' ),\n\t\t[ block ]\n\t);\n\n\tconst onChange = () => {\n\t\tconst blockType = getBlockType( block.name );\n\n\t\tif ( ! blockType ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst attributes = getBlockAttributes(\n\t\t\tblockType,\n\t\t\thtml,\n\t\t\tblock.attributes\n\t\t);\n\n\t\t// If html is empty we reset the block to the default HTML and mark it as valid to avoid triggering an error\n\t\tconst content = html ? html : getSaveContent( blockType, attributes );\n\t\tconst [ isValid ] = html\n\t\t\t? validateBlock( {\n\t\t\t\t\t...block,\n\t\t\t\t\tattributes,\n\t\t\t\t\toriginalContent: content,\n\t\t\t } )\n\t\t\t: [ true ];\n\n\t\tupdateBlock( clientId, {\n\t\t\tattributes,\n\t\t\toriginalContent: content,\n\t\t\tisValid,\n\t\t} );\n\n\t\t// Ensure the state is updated if we reset so it displays the default content.\n\t\tif ( ! html ) {\n\t\t\tsetHtml( content );\n\t\t}\n\t};\n\n\tuseEffect( () => {\n\t\tsetHtml( blockContent );\n\t}, [ blockContent ] );\n\n\treturn (\n\t\t<TextareaAutosize\n\t\t\tclassName=\"block-editor-block-list__block-html-textarea\"\n\t\t\tvalue={ html }\n\t\t\tonBlur={ onChange }\n\t\t\tonChange={ ( event ) => setHtml( event.target.value ) }\n\t\t/>\n\t);\n}\n\nexport default BlockHTML;\n"],
|
|
5
|
-
"mappings": ";AAGA,OAAO,sBAAsB;AAK7B,SAAS,WAAW,SAAS,gBAAgB;AAC7C,SAAS,WAAW,mBAAmB;AACvC;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAKP,SAAS,SAAS,wBAAwB;
|
|
4
|
+
"sourcesContent": ["/**\n * External dependencies\n */\nimport TextareaAutosize from 'react-autosize-textarea';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tgetBlockAttributes,\n\tgetBlockContent,\n\tgetBlockType,\n\tgetSaveContent,\n\tvalidateBlock,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { useNativeUndo } from '../../utils/native-undo';\n\nfunction BlockHTML( { clientId } ) {\n\tconst [ html, setHtml ] = useState( '' );\n\tconst nativeUndoRef = useNativeUndo();\n\tconst block = useSelect(\n\t\t( select ) => select( blockEditorStore ).getBlock( clientId ),\n\t\t[ clientId ]\n\t);\n\tconst { updateBlock } = useDispatch( blockEditorStore );\n\n\t// Derive block content as a primitive string so the effect only fires\n\t// when the serialized content genuinely changes, not when the block\n\t// object reference changes (which happens on every RESET_BLOCKS during\n\t// RTC sync, even for unchanged blocks).\n\tconst blockContent = useMemo(\n\t\t() => ( block ? getBlockContent( block ) : '' ),\n\t\t[ block ]\n\t);\n\n\tconst onChange = () => {\n\t\tconst blockType = getBlockType( block.name );\n\n\t\tif ( ! blockType ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst attributes = getBlockAttributes(\n\t\t\tblockType,\n\t\t\thtml,\n\t\t\tblock.attributes\n\t\t);\n\n\t\t// If html is empty we reset the block to the default HTML and mark it as valid to avoid triggering an error\n\t\tconst content = html ? html : getSaveContent( blockType, attributes );\n\t\tconst [ isValid ] = html\n\t\t\t? validateBlock( {\n\t\t\t\t\t...block,\n\t\t\t\t\tattributes,\n\t\t\t\t\toriginalContent: content,\n\t\t\t } )\n\t\t\t: [ true ];\n\n\t\tupdateBlock( clientId, {\n\t\t\tattributes,\n\t\t\toriginalContent: content,\n\t\t\tisValid,\n\t\t} );\n\n\t\t// Ensure the state is updated if we reset so it displays the default content.\n\t\tif ( ! html ) {\n\t\t\tsetHtml( content );\n\t\t}\n\t};\n\n\tuseEffect( () => {\n\t\tsetHtml( blockContent );\n\t}, [ blockContent ] );\n\n\treturn (\n\t\t<TextareaAutosize\n\t\t\tclassName=\"block-editor-block-list__block-html-textarea\"\n\t\t\tvalue={ html }\n\t\t\tonBlur={ onChange }\n\t\t\tonChange={ ( event ) => setHtml( event.target.value ) }\n\t\t\t// The edits are local state until committed on blur, so undo\n\t\t\t// and redo must remain the browser's own within the field.\n\t\t\tref={ nativeUndoRef }\n\t\t/>\n\t);\n}\n\nexport default BlockHTML;\n"],
|
|
5
|
+
"mappings": ";AAGA,OAAO,sBAAsB;AAK7B,SAAS,WAAW,SAAS,gBAAgB;AAC7C,SAAS,WAAW,mBAAmB;AACvC;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAKP,SAAS,SAAS,wBAAwB;AAC1C,SAAS,qBAAqB;AA4D5B;AA1DF,SAAS,UAAW,EAAE,SAAS,GAAI;AAClC,QAAM,CAAE,MAAM,OAAQ,IAAI,SAAU,EAAG;AACvC,QAAM,gBAAgB,cAAc;AACpC,QAAM,QAAQ;AAAA,IACb,CAAE,WAAY,OAAQ,gBAAiB,EAAE,SAAU,QAAS;AAAA,IAC5D,CAAE,QAAS;AAAA,EACZ;AACA,QAAM,EAAE,YAAY,IAAI,YAAa,gBAAiB;AAMtD,QAAM,eAAe;AAAA,IACpB,MAAQ,QAAQ,gBAAiB,KAAM,IAAI;AAAA,IAC3C,CAAE,KAAM;AAAA,EACT;AAEA,QAAM,WAAW,MAAM;AACtB,UAAM,YAAY,aAAc,MAAM,IAAK;AAE3C,QAAK,CAAE,WAAY;AAClB;AAAA,IACD;AAEA,UAAM,aAAa;AAAA,MAClB;AAAA,MACA;AAAA,MACA,MAAM;AAAA,IACP;AAGA,UAAM,UAAU,OAAO,OAAO,eAAgB,WAAW,UAAW;AACpE,UAAM,CAAE,OAAQ,IAAI,OACjB,cAAe;AAAA,MACf,GAAG;AAAA,MACH;AAAA,MACA,iBAAiB;AAAA,IACjB,CAAE,IACF,CAAE,IAAK;AAEV,gBAAa,UAAU;AAAA,MACtB;AAAA,MACA,iBAAiB;AAAA,MACjB;AAAA,IACD,CAAE;AAGF,QAAK,CAAE,MAAO;AACb,cAAS,OAAQ;AAAA,IAClB;AAAA,EACD;AAEA,YAAW,MAAM;AAChB,YAAS,YAAa;AAAA,EACvB,GAAG,CAAE,YAAa,CAAE;AAEpB,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAU;AAAA,MACV,OAAQ;AAAA,MACR,QAAS;AAAA,MACT,UAAW,CAAE,UAAW,QAAS,MAAM,OAAO,KAAM;AAAA,MAGpD,KAAM;AAAA;AAAA,EACP;AAEF;AAEA,IAAO,qBAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|