@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
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
// packages/block-editor/src/components/global-styles/inheritance/index.js
|
|
2
|
+
import clsx from "clsx";
|
|
3
|
+
import {
|
|
4
|
+
Button,
|
|
5
|
+
Icon as WCIcon,
|
|
6
|
+
__experimentalToolsPanelItem as ToolsPanelItem
|
|
7
|
+
} from "@wordpress/components";
|
|
8
|
+
import { reset as resetIcon } from "@wordpress/icons";
|
|
9
|
+
import { __ } from "@wordpress/i18n";
|
|
10
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
11
|
+
var isGlobalStylesInheritanceEnabled = () => !!window.__experimentalGlobalStylesInheritanceUI;
|
|
12
|
+
function getInheritanceProps(isInherited, hasLocalOverride, baseClassName) {
|
|
13
|
+
const inheritedOnly = !!isInherited && !hasLocalOverride;
|
|
14
|
+
const className = clsx(baseClassName, {
|
|
15
|
+
"is-inherited-from-global-styles": inheritedOnly,
|
|
16
|
+
"has-local-override-from-global-styles": !!hasLocalOverride
|
|
17
|
+
});
|
|
18
|
+
return {
|
|
19
|
+
...className ? { className } : {},
|
|
20
|
+
isInherited: inheritedOnly,
|
|
21
|
+
hasLocalOverride: !!hasLocalOverride
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
function InheritanceResetButton({ onResetToInherited, className }) {
|
|
25
|
+
return (
|
|
26
|
+
// Intentionally small (14×14) circular control; exempt from the
|
|
27
|
+
// 40px default-size enforcement rule.
|
|
28
|
+
// eslint-disable-next-line @wordpress/components-no-missing-40px-size-prop
|
|
29
|
+
/* @__PURE__ */ jsxs(
|
|
30
|
+
Button,
|
|
31
|
+
{
|
|
32
|
+
__next40pxDefaultSize: false,
|
|
33
|
+
label: __("Reset to inherited value"),
|
|
34
|
+
showTooltip: true,
|
|
35
|
+
className: clsx(
|
|
36
|
+
"has-local-override-from-global-styles__reset",
|
|
37
|
+
className
|
|
38
|
+
),
|
|
39
|
+
onClick: (event) => {
|
|
40
|
+
event.preventDefault();
|
|
41
|
+
event.stopPropagation();
|
|
42
|
+
onResetToInherited?.();
|
|
43
|
+
},
|
|
44
|
+
children: [
|
|
45
|
+
/* @__PURE__ */ jsx(
|
|
46
|
+
"span",
|
|
47
|
+
{
|
|
48
|
+
"aria-hidden": "true",
|
|
49
|
+
className: "has-local-override-from-global-styles__dot"
|
|
50
|
+
}
|
|
51
|
+
),
|
|
52
|
+
/* @__PURE__ */ jsx(
|
|
53
|
+
WCIcon,
|
|
54
|
+
{
|
|
55
|
+
className: "has-local-override-from-global-styles__reset-icon",
|
|
56
|
+
icon: resetIcon
|
|
57
|
+
}
|
|
58
|
+
)
|
|
59
|
+
]
|
|
60
|
+
}
|
|
61
|
+
)
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
function InheritanceToolsPanelItem({
|
|
65
|
+
className,
|
|
66
|
+
// Destructured (and unused) so the `getInheritanceProps` spread does not
|
|
67
|
+
// leak `isInherited` onto the underlying `ToolsPanelItem`. The inherited
|
|
68
|
+
// treatment is applied purely via `className`
|
|
69
|
+
// (`is-inherited-from-global-styles`).
|
|
70
|
+
isInherited,
|
|
71
|
+
hasLocalOverride,
|
|
72
|
+
label,
|
|
73
|
+
onDeselect,
|
|
74
|
+
showLocalOverrideActionsInLabel = true,
|
|
75
|
+
hasInlineEndToggle = false,
|
|
76
|
+
children,
|
|
77
|
+
...rest
|
|
78
|
+
}) {
|
|
79
|
+
const showResetAffordance = hasLocalOverride && showLocalOverrideActionsInLabel;
|
|
80
|
+
return /* @__PURE__ */ jsxs(
|
|
81
|
+
ToolsPanelItem,
|
|
82
|
+
{
|
|
83
|
+
className,
|
|
84
|
+
label,
|
|
85
|
+
onDeselect,
|
|
86
|
+
...rest,
|
|
87
|
+
children: [
|
|
88
|
+
children,
|
|
89
|
+
showResetAffordance && /* @__PURE__ */ jsx(
|
|
90
|
+
"div",
|
|
91
|
+
{
|
|
92
|
+
className: clsx("global-styles-inheritance-affordance", {
|
|
93
|
+
"global-styles-inheritance-affordance--offset-toggle": hasInlineEndToggle
|
|
94
|
+
}),
|
|
95
|
+
children: /* @__PURE__ */ jsx(InheritanceResetButton, { onResetToInherited: onDeselect })
|
|
96
|
+
}
|
|
97
|
+
)
|
|
98
|
+
]
|
|
99
|
+
}
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
export {
|
|
103
|
+
InheritanceResetButton,
|
|
104
|
+
InheritanceToolsPanelItem,
|
|
105
|
+
getInheritanceProps,
|
|
106
|
+
isGlobalStylesInheritanceEnabled
|
|
107
|
+
};
|
|
108
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/components/global-styles/inheritance/index.js"],
|
|
4
|
+
"sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tIcon as WCIcon,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { reset as resetIcon } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Whether the inspector surfaces inherited Global Styles values.\n *\n * Behind the `gutenberg-global-styles-inheritance-ui` Gutenberg experiment,\n * so the treatment is off unless someone opts in on the Experiments screen.\n * With it off, the panels show locally-set values alone.\n *\n * Evaluated per call rather than once at module scope, so tests can toggle\n * the experiment and so a later move to a store-backed setting only has to\n * change this one place. Always returns a boolean: callers pass the result\n * down as a prop, and `undefined` would trigger a receiving component's own\n * default parameter.\n *\n * @return {boolean} Whether the inherited-value treatment is enabled.\n */\nexport const isGlobalStylesInheritanceEnabled = () =>\n\t!! window.__experimentalGlobalStylesInheritanceUI;\n\n/**\n * Returns props to spread onto a wrapping `<InheritanceToolsPanelItem>`\n * so its descendant label picks up the inherited-from-Global-Styles\n * visual treatment.\n *\n * When `isInherited` is true without a local override, the descendant\n * label text receives the inherited-from-Global-Styles treatment\n * (dotted underline). No dot is shown.\n *\n * When `hasLocalOverride` is true, a small reset dot is rendered as a\n * sibling of the control exposing a \"Reset to inherited value\" action.\n *\n * The two states are mutually exclusive at the source. If both are passed,\n * only the local-override class is returned.\n *\n * Returned object shape allows direct spread:\n *\n * <InheritanceToolsPanelItem\n * { ...getInheritanceProps( isInherited, hasLocalOverride ) }\n * label={ __( 'Line height' ) }\n * …\n * >\n *\n * @param {boolean} isInherited Control is inheriting at rest.\n * @param {boolean} hasLocalOverride Local override is set AND\n * there is an inherited value\n * being overridden.\n * @param {string|Array|Object} [baseClassName] Optional className(s) to fold\n * into the returned `className`.\n *\n * @return {{ className?: string, isInherited: boolean, hasLocalOverride: boolean }} Props for the wrapping\n * `InheritanceToolsPanelItem`.\n */\nexport function getInheritanceProps(\n\tisInherited,\n\thasLocalOverride,\n\tbaseClassName\n) {\n\tconst inheritedOnly = !! isInherited && ! hasLocalOverride;\n\tconst className = clsx( baseClassName, {\n\t\t'is-inherited-from-global-styles': inheritedOnly,\n\t\t'has-local-override-from-global-styles': !! hasLocalOverride,\n\t} );\n\treturn {\n\t\t...( className ? { className } : {} ),\n\t\tisInherited: inheritedOnly,\n\t\thasLocalOverride: !! hasLocalOverride,\n\t};\n}\n\n/**\n * Renders the small always-visible reset button shown next to a control\n * that holds a local override of an inherited Global Styles value. Used by\n * `<InheritanceToolsPanelItem>` and the color/gradient controls.\n *\n * At rest the button shows a blue dot signalling the local override. On\n * hover/focus the dot morphs into the `reset` (dash) icon and the button\n * exposes a \"Reset to inherited value\" tooltip. Activating it clears the\n * override so the control falls back to its inherited value — the same\n * action the `ToolsPanel` menu performs via `onDeselect`.\n *\n * @param {Object} props\n * @param {Function} props.onResetToInherited Reset handler.\n * @param {string} [props.className] Optional className for the button.\n *\n * @return {Element} The reset button.\n */\nexport function InheritanceResetButton( { onResetToInherited, className } ) {\n\treturn (\n\t\t// Intentionally small (14×14) circular control; exempt from the\n\t\t// 40px default-size enforcement rule.\n\t\t// eslint-disable-next-line @wordpress/components-no-missing-40px-size-prop\n\t\t<Button\n\t\t\t__next40pxDefaultSize={ false }\n\t\t\tlabel={ __( 'Reset to inherited value' ) }\n\t\t\t// The button has children (the dot + reset icon), so the tooltip\n\t\t\t// is not shown automatically; opt in explicitly.\n\t\t\tshowTooltip\n\t\t\tclassName={ clsx(\n\t\t\t\t'has-local-override-from-global-styles__reset',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\tonClick={ ( event ) => {\n\t\t\t\t// Prevent the click from reaching any wrapping\n\t\t\t\t// `<label htmlFor>` association, which would otherwise\n\t\t\t\t// focus/activate the inner control.\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tonResetToInherited?.();\n\t\t\t} }\n\t\t>\n\t\t\t<span\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\tclassName=\"has-local-override-from-global-styles__dot\"\n\t\t\t/>\n\t\t\t<WCIcon\n\t\t\t\tclassName=\"has-local-override-from-global-styles__reset-icon\"\n\t\t\t\ticon={ resetIcon }\n\t\t\t/>\n\t\t</Button>\n\t);\n}\n\n/**\n * A `ToolsPanelItem` that reflects whether its control's value is inherited\n * from Global Styles or locally overridden. The two states are mutually\n * exclusive.\n *\n * - Inherited: the control label receives the inherited-from-Global-Styles\n * treatment (dotted underline) via the `is-inherited-from-global-styles`\n * class applied through `getInheritanceProps`. No dot is shown.\n * - Local override: a reset dot is rendered as a plain sibling of the control\n * at the item's inline-end — never nested in the label — exposing the same\n * one-click reset the `ToolsPanel` options menu performs via `onDeselect`.\n *\n * Controls that render their own reset control next to a custom toggle (color,\n * background image) pass `showLocalOverrideActionsInLabel={ false }` so the\n * item does not render a second reset dot.\n *\n * @param {Object} props\n * @param {?string} props.className Item className.\n * @param {boolean} props.isInherited Value is inherited at rest. Accepted so the `getInheritanceProps` spread does not leak onto the underlying `ToolsPanelItem`; the inherited treatment is applied via `className`.\n * @param {boolean} props.hasLocalOverride Local override is set.\n * @param {import('react').ReactNode} props.label Control label.\n * @param {?Function} props.onDeselect Reset handler.\n * @param {boolean} [props.showLocalOverrideActionsInLabel] Render the reset dot here (default true).\n * @param {boolean} [props.hasInlineEndToggle] The control renders a 24x24 toggle (linked/unlink, units switch) at its inline-end; offset the reset dot to sit just to its inline-start (default false).\n * @param {import('react').ReactNode} props.children The control.\n *\n * @return {Element} The panel item.\n */\nexport function InheritanceToolsPanelItem( {\n\tclassName,\n\t// Destructured (and unused) so the `getInheritanceProps` spread does not\n\t// leak `isInherited` onto the underlying `ToolsPanelItem`. The inherited\n\t// treatment is applied purely via `className`\n\t// (`is-inherited-from-global-styles`).\n\tisInherited,\n\thasLocalOverride,\n\tlabel,\n\tonDeselect,\n\tshowLocalOverrideActionsInLabel = true,\n\thasInlineEndToggle = false,\n\tchildren,\n\t...rest\n} ) {\n\tconst showResetAffordance =\n\t\thasLocalOverride && showLocalOverrideActionsInLabel;\n\n\treturn (\n\t\t<ToolsPanelItem\n\t\t\tclassName={ className }\n\t\t\tlabel={ label }\n\t\t\tonDeselect={ onDeselect }\n\t\t\t{ ...rest }\n\t\t>\n\t\t\t{ children }\n\t\t\t{ showResetAffordance && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ clsx( 'global-styles-inheritance-affordance', {\n\t\t\t\t\t\t'global-styles-inheritance-affordance--offset-toggle':\n\t\t\t\t\t\t\thasInlineEndToggle,\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t<InheritanceResetButton onResetToInherited={ onDeselect } />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</ToolsPanelItem>\n\t);\n}\n"],
|
|
5
|
+
"mappings": ";AAGA,OAAO,UAAU;AAKjB;AAAA,EACC;AAAA,EACA,QAAQ;AAAA,EACR,gCAAgC;AAAA,OAC1B;AACP,SAAS,SAAS,iBAAiB;AACnC,SAAS,UAAU;AA4FjB,SAmBC,KAnBD;AA3EK,IAAM,mCAAmC,MAC/C,CAAC,CAAE,OAAO;AAmCJ,SAAS,oBACf,aACA,kBACA,eACC;AACD,QAAM,gBAAgB,CAAC,CAAE,eAAe,CAAE;AAC1C,QAAM,YAAY,KAAM,eAAe;AAAA,IACtC,mCAAmC;AAAA,IACnC,yCAAyC,CAAC,CAAE;AAAA,EAC7C,CAAE;AACF,SAAO;AAAA,IACN,GAAK,YAAY,EAAE,UAAU,IAAI,CAAC;AAAA,IAClC,aAAa;AAAA,IACb,kBAAkB,CAAC,CAAE;AAAA,EACtB;AACD;AAmBO,SAAS,uBAAwB,EAAE,oBAAoB,UAAU,GAAI;AAC3E;AAAA;AAAA;AAAA;AAAA,IAIC;AAAA,MAAC;AAAA;AAAA,QACA,uBAAwB;AAAA,QACxB,OAAQ,GAAI,0BAA2B;AAAA,QAGvC,aAAW;AAAA,QACX,WAAY;AAAA,UACX;AAAA,UACA;AAAA,QACD;AAAA,QACA,SAAU,CAAE,UAAW;AAItB,gBAAM,eAAe;AACrB,gBAAM,gBAAgB;AACtB,+BAAqB;AAAA,QACtB;AAAA,QAEA;AAAA;AAAA,YAAC;AAAA;AAAA,cACA,eAAY;AAAA,cACZ,WAAU;AAAA;AAAA,UACX;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACA,WAAU;AAAA,cACV,MAAO;AAAA;AAAA,UACR;AAAA;AAAA;AAAA,IACD;AAAA;AAEF;AA8BO,SAAS,0BAA2B;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,kCAAkC;AAAA,EAClC,qBAAqB;AAAA,EACrB;AAAA,EACA,GAAG;AACJ,GAAI;AACH,QAAM,sBACL,oBAAoB;AAErB,SACC;AAAA,IAAC;AAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACE,GAAG;AAAA,MAEH;AAAA;AAAA,QACA,uBACD;AAAA,UAAC;AAAA;AAAA,YACA,WAAY,KAAM,wCAAwC;AAAA,cACzD,uDACC;AAAA,YACF,CAAE;AAAA,YAEF,8BAAC,0BAAuB,oBAAqB,YAAa;AAAA;AAAA,QAC3D;AAAA;AAAA;AAAA,EAEF;AAEF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
// packages/block-editor/src/components/global-styles/inherited-value-context.js
|
|
2
|
+
import { useContext, useMemo } from "@wordpress/element";
|
|
3
|
+
import { useSelect } from "@wordpress/data";
|
|
4
|
+
import { store as blocksStore } from "@wordpress/blocks";
|
|
5
|
+
import { privateApis as globalStylesEnginePrivateApis } from "@wordpress/global-styles-engine";
|
|
6
|
+
import { store as blockEditorStore } from "../../store/index.mjs";
|
|
7
|
+
import {
|
|
8
|
+
globalStylesDataKey,
|
|
9
|
+
globalStylesLinksDataKey
|
|
10
|
+
} from "../../store/private-keys.mjs";
|
|
11
|
+
import { getVariationNameFromClass } from "../../hooks/block-style-variation.mjs";
|
|
12
|
+
import { useBlockEditContext } from "../block-edit/context.mjs";
|
|
13
|
+
import BlockContext from "../block-context/index.mjs";
|
|
14
|
+
import { unlock } from "../../lock-unlock.mjs";
|
|
15
|
+
import { isGlobalStylesInheritanceEnabled } from "./inheritance/index.mjs";
|
|
16
|
+
var { resolveStyle } = unlock(globalStylesEnginePrivateApis);
|
|
17
|
+
var NO_RESOLVED_STYLE = { value: void 0, sources: void 0 };
|
|
18
|
+
function useRawGlobalStyles() {
|
|
19
|
+
const { rawGlobalStylesData, links } = useSelect((select) => {
|
|
20
|
+
const settings = select(blockEditorStore).getSettings();
|
|
21
|
+
return {
|
|
22
|
+
rawGlobalStylesData: settings[globalStylesDataKey] ?? null,
|
|
23
|
+
links: settings[globalStylesLinksDataKey] ?? null
|
|
24
|
+
};
|
|
25
|
+
}, []);
|
|
26
|
+
return useMemo(
|
|
27
|
+
() => rawGlobalStylesData ? { styles: rawGlobalStylesData, _links: links ?? void 0 } : null,
|
|
28
|
+
[rawGlobalStylesData, links]
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
var CONTEXT_HEADING_LEVEL_BLOCKS = {
|
|
32
|
+
"core/accordion-heading": {
|
|
33
|
+
contextKey: "core/accordion-heading-level",
|
|
34
|
+
fallbackLevel: 3
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
function getHeadingLevel(blockName, levelAttribute, contextLevel) {
|
|
38
|
+
const contextOwned = CONTEXT_HEADING_LEVEL_BLOCKS[blockName];
|
|
39
|
+
if (!contextOwned) {
|
|
40
|
+
return levelAttribute;
|
|
41
|
+
}
|
|
42
|
+
return levelAttribute || contextLevel || contextOwned.fallbackLevel;
|
|
43
|
+
}
|
|
44
|
+
function useContextHeadingLevel(blockName) {
|
|
45
|
+
const blockContext = useContext(BlockContext);
|
|
46
|
+
const contextKey = CONTEXT_HEADING_LEVEL_BLOCKS[blockName]?.contextKey;
|
|
47
|
+
return contextKey ? blockContext[contextKey] : void 0;
|
|
48
|
+
}
|
|
49
|
+
function getElementLayers(blockName, headingLevel) {
|
|
50
|
+
switch (blockName) {
|
|
51
|
+
case "core/button":
|
|
52
|
+
return ["button"];
|
|
53
|
+
case "core/accordion-heading":
|
|
54
|
+
case "core/heading":
|
|
55
|
+
case "core/post-title":
|
|
56
|
+
case "core/site-title":
|
|
57
|
+
case "core/query-title":
|
|
58
|
+
case "core/comments-title":
|
|
59
|
+
case "core/term-name":
|
|
60
|
+
case "core/site-tagline":
|
|
61
|
+
if (headingLevel === 0) {
|
|
62
|
+
return [];
|
|
63
|
+
}
|
|
64
|
+
return headingLevel ? ["heading", `h${headingLevel}`] : ["heading"];
|
|
65
|
+
// Whole-block link blocks: the entire block renders as an `<a>`, so the
|
|
66
|
+
// root `styles.elements.link` layer paints it, mirroring how `button`
|
|
67
|
+
// paints Button. For the blocks whose `color.text` support is disabled
|
|
68
|
+
// this is inert at the (hidden) text control while their typography
|
|
69
|
+
// controls now reflect the link element; Read More (`color.text: true`)
|
|
70
|
+
// surfaces the inherited link color at its Text control.
|
|
71
|
+
case "core/read-more":
|
|
72
|
+
case "core/loginout":
|
|
73
|
+
case "core/post-navigation-link":
|
|
74
|
+
case "core/query-pagination-next":
|
|
75
|
+
case "core/query-pagination-previous":
|
|
76
|
+
case "core/query-pagination-numbers":
|
|
77
|
+
case "core/comments-pagination-next":
|
|
78
|
+
case "core/comments-pagination-previous":
|
|
79
|
+
case "core/comments-pagination-numbers":
|
|
80
|
+
case "core/comment-edit-link":
|
|
81
|
+
case "core/comment-reply-link":
|
|
82
|
+
case "core/post-comments-link":
|
|
83
|
+
return ["link"];
|
|
84
|
+
default:
|
|
85
|
+
return [];
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
function useVariationAndElements(blockName, className) {
|
|
89
|
+
const { clientId } = useBlockEditContext();
|
|
90
|
+
const contextHeadingLevel = useContextHeadingLevel(blockName);
|
|
91
|
+
return useSelect(
|
|
92
|
+
(select) => {
|
|
93
|
+
if (!blockName) {
|
|
94
|
+
return { variationName: null, headingLevel: void 0 };
|
|
95
|
+
}
|
|
96
|
+
const registeredStyles = select(blocksStore).getBlockStyles(blockName);
|
|
97
|
+
const { level } = select(blockEditorStore).getBlockAttributes(clientId) || {};
|
|
98
|
+
return {
|
|
99
|
+
variationName: className ? getVariationNameFromClass(className, registeredStyles) : null,
|
|
100
|
+
headingLevel: getHeadingLevel(
|
|
101
|
+
blockName,
|
|
102
|
+
level,
|
|
103
|
+
contextHeadingLevel
|
|
104
|
+
)
|
|
105
|
+
};
|
|
106
|
+
},
|
|
107
|
+
[blockName, className, clientId, contextHeadingLevel]
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
function useResolvedStyle(blockName, className, selectedState = null) {
|
|
111
|
+
const { variationName, headingLevel } = useVariationAndElements(
|
|
112
|
+
blockName,
|
|
113
|
+
className
|
|
114
|
+
);
|
|
115
|
+
const globalStyles = useRawGlobalStyles();
|
|
116
|
+
return useMemo(() => {
|
|
117
|
+
if (!isGlobalStylesInheritanceEnabled()) {
|
|
118
|
+
return NO_RESOLVED_STYLE;
|
|
119
|
+
}
|
|
120
|
+
if (!blockName) {
|
|
121
|
+
return { value: {}, sources: {} };
|
|
122
|
+
}
|
|
123
|
+
return resolveStyle(globalStyles, {
|
|
124
|
+
blockName,
|
|
125
|
+
variationName,
|
|
126
|
+
elements: getElementLayers(blockName, headingLevel),
|
|
127
|
+
viewport: selectedState?.viewport ?? null,
|
|
128
|
+
pseudoState: selectedState?.pseudo ?? null
|
|
129
|
+
});
|
|
130
|
+
}, [
|
|
131
|
+
blockName,
|
|
132
|
+
variationName,
|
|
133
|
+
headingLevel,
|
|
134
|
+
globalStyles,
|
|
135
|
+
selectedState
|
|
136
|
+
]);
|
|
137
|
+
}
|
|
138
|
+
export {
|
|
139
|
+
useResolvedStyle
|
|
140
|
+
};
|
|
141
|
+
//# sourceMappingURL=inherited-value-context.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/global-styles/inherited-value-context.js"],
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useContext, useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { privateApis as globalStylesEnginePrivateApis } from '@wordpress/global-styles-engine';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport {\n\tglobalStylesDataKey,\n\tglobalStylesLinksDataKey,\n} from '../../store/private-keys';\nimport { getVariationNameFromClass } from '../../hooks/block-style-variation';\nimport { useBlockEditContext } from '../block-edit/context';\nimport BlockContext from '../block-context';\nimport { unlock } from '../../lock-unlock';\nimport { isGlobalStylesInheritanceEnabled } from './inheritance';\n\nconst { resolveStyle } = unlock( globalStylesEnginePrivateApis );\n\n// Undefined so the panels fall back to their `inheritedValue = value` default.\nconst NO_RESOLVED_STYLE = { value: undefined, sources: undefined };\n\n/**\n * Reads the Global Styles payload and returns it as a `GlobalStylesConfig`\n * (`{ styles, _links }`), the shape `resolveStyle` expects. `_links` carries\n * the theme-file map used to resolve pointers such as background images.\n *\n * @return {?Object} Global Styles config, or `null` before the payload settles.\n */\nfunction useRawGlobalStyles() {\n\tconst { rawGlobalStylesData, links } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\treturn {\n\t\t\trawGlobalStylesData: settings[ globalStylesDataKey ] ?? null,\n\t\t\tlinks: settings[ globalStylesLinksDataKey ] ?? null,\n\t\t};\n\t}, [] );\n\treturn useMemo(\n\t\t() =>\n\t\t\trawGlobalStylesData\n\t\t\t\t? { styles: rawGlobalStylesData, _links: links ?? undefined }\n\t\t\t\t: null,\n\t\t[ rawGlobalStylesData, links ]\n\t);\n}\n\n/**\n * Blocks whose heading level is handed down by a parent through block context\n * rather than held in their own `level` attribute, mapped to that context key\n * and the level they fall back to.\n *\n * Accordion Heading is the only one: the parent Accordion owns the level, and\n * the child's `level` attribute has no default and is absent on pattern-,\n * template- and paste-inserted blocks.\n */\nconst CONTEXT_HEADING_LEVEL_BLOCKS = {\n\t'core/accordion-heading': {\n\t\tcontextKey: 'core/accordion-heading-level',\n\t\tfallbackLevel: 3,\n\t},\n};\n\n/**\n * Resolves the heading level that selects a block's `h1`-`h6` element layer.\n *\n * @param {string} blockName Block name.\n * @param {?number} levelAttribute The block's own `level` attribute, if it has one.\n * @param {?number} contextLevel Level supplied by a parent through block context.\n * @return {?number} Resolved heading level, or `undefined` when the block has none.\n */\nfunction getHeadingLevel( blockName, levelAttribute, contextLevel ) {\n\tconst contextOwned = CONTEXT_HEADING_LEVEL_BLOCKS[ blockName ];\n\tif ( ! contextOwned ) {\n\t\treturn levelAttribute;\n\t}\n\t// Mirrors the block's own chain (Accordion Heading saves `h${ level || 3 }`),\n\t// so `0` coerces to the fallback instead of reading as a level-0 state.\n\treturn levelAttribute || contextLevel || contextOwned.fallbackLevel;\n}\n\n/**\n * Reads the heading level a parent supplies through block context.\n *\n * Only the blocks in `CONTEXT_HEADING_LEVEL_BLOCKS` read a key: the value\n * reaches every descendant, so an ordinary Heading inside an Accordion Panel\n * must not pick it up. Returns a primitive so callers can use it as a\n * `useSelect` dependency.\n *\n * @param {?string} blockName Block name.\n * @return {?number} Level from block context, or `undefined`.\n */\nfunction useContextHeadingLevel( blockName ) {\n\tconst blockContext = useContext( BlockContext );\n\tconst contextKey = CONTEXT_HEADING_LEVEL_BLOCKS[ blockName ]?.contextKey;\n\treturn contextKey ? blockContext[ contextKey ] : undefined;\n}\n\n/**\n * Maps a block to the root-level Global Styles *element* layers that paint it\n * on the canvas, in addition to (or instead of) the block's own class — e.g. a\n * Button renders `.wp-element-button`, a level-2 Heading renders `<h2>`.\n *\n * Keys are ordered low to high precedence, so a level-specific `h2` wins over\n * the generic `heading`. A level of `0` (e.g. a Site or Post Title rendered as\n * a paragraph) renders no heading tag, so no element layer applies.\n *\n * Hand-maintained by necessity: the block-to-element relationship is not\n * inferable from block metadata. `supports.color.link` and friends mark blocks\n * that *contain* an element, not blocks that *are* one, and only the inverse\n * element-to-selector map exists (`__EXPERIMENTAL_ELEMENTS`). Standardizing it\n * as a block property is tracked in\n * https://github.com/WordPress/gutenberg/issues/80438.\n *\n * Only blocks that *are* a link fold the `link` layer (e.g. Read More, Login/out\n * and the pagination links render `<a>` as their whole selves). Blocks that\n * merely *contain* a link — the heading family, Paragraph, Group, and the\n * hybrid blocks with a Link colour control (Post Author Name, Post Date, …) —\n * get no `link` layer: their inner-link control reads the\n * `inheritedValue.elements.link` passthrough instead, so folding `link` in would\n * bleed link color into the block's own text.\n *\n * @param {string} blockName Block name.\n * @param {?number} headingLevel Resolved heading level, from `getHeadingLevel`.\n * @return {string[]} Ordered element keys, low to high precedence.\n */\nfunction getElementLayers( blockName, headingLevel ) {\n\tswitch ( blockName ) {\n\t\tcase 'core/button':\n\t\t\treturn [ 'button' ];\n\t\tcase 'core/accordion-heading':\n\t\tcase 'core/heading':\n\t\tcase 'core/post-title':\n\t\tcase 'core/site-title':\n\t\tcase 'core/query-title':\n\t\tcase 'core/comments-title':\n\t\tcase 'core/term-name':\n\t\tcase 'core/site-tagline':\n\t\t\tif ( headingLevel === 0 ) {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t\treturn headingLevel\n\t\t\t\t? [ 'heading', `h${ headingLevel }` ]\n\t\t\t\t: [ 'heading' ];\n\t\t// Whole-block link blocks: the entire block renders as an `<a>`, so the\n\t\t// root `styles.elements.link` layer paints it, mirroring how `button`\n\t\t// paints Button. For the blocks whose `color.text` support is disabled\n\t\t// this is inert at the (hidden) text control while their typography\n\t\t// controls now reflect the link element; Read More (`color.text: true`)\n\t\t// surfaces the inherited link color at its Text control.\n\t\tcase 'core/read-more':\n\t\tcase 'core/loginout':\n\t\tcase 'core/post-navigation-link':\n\t\tcase 'core/query-pagination-next':\n\t\tcase 'core/query-pagination-previous':\n\t\tcase 'core/query-pagination-numbers':\n\t\tcase 'core/comments-pagination-next':\n\t\tcase 'core/comments-pagination-previous':\n\t\tcase 'core/comments-pagination-numbers':\n\t\tcase 'core/comment-edit-link':\n\t\tcase 'core/comment-reply-link':\n\t\tcase 'core/post-comments-link':\n\t\t\treturn [ 'link' ];\n\t\tdefault:\n\t\t\treturn [];\n\t}\n}\n\n/**\n * Internal hook that derives the active block-style-variation slug from a\n * block's `className` by matching registered styles via\n * `getVariationNameFromClass`, together with the element layers that paint\n * the block. Both come from a single store subscription.\n *\n * The lookup is scoped to a single `useSelect` subscription; the\n * `@wordpress/blocks` registered-styles slice changes only when a block's\n * styles are (un)registered, so this subscription is cold in steady-state\n * editor use.\n *\n * The block's `clientId` comes from the block edit context rather than an\n * argument: these panels always render inside `BlockEditContextProvider`, so\n * the caller does not have to thread it through.\n *\n * @param {?string} blockName Block name (e.g. `core/heading`).\n * @param {?string} className Space-separated class string from block attributes.\n * @return {{ variationName: ?string, headingLevel: ?number }} Variation slug\n * (without the `is-style-` prefix) and the block's heading level, if any.\n */\nfunction useVariationAndElements( blockName, className ) {\n\tconst { clientId } = useBlockEditContext();\n\tconst contextHeadingLevel = useContextHeadingLevel( blockName );\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! blockName ) {\n\t\t\t\treturn { variationName: null, headingLevel: undefined };\n\t\t\t}\n\t\t\tconst registeredStyles =\n\t\t\t\tselect( blocksStore ).getBlockStyles( blockName );\n\t\t\tconst { level } =\n\t\t\t\tselect( blockEditorStore ).getBlockAttributes( clientId ) || {};\n\t\t\t// Primitives only: `useSelect` shallow-compares this object, so\n\t\t\t// returning a fresh array here would re-render on every action.\n\t\t\treturn {\n\t\t\t\tvariationName: className\n\t\t\t\t\t? getVariationNameFromClass( className, registeredStyles )\n\t\t\t\t\t: null,\n\t\t\t\theadingLevel: getHeadingLevel(\n\t\t\t\t\tblockName,\n\t\t\t\t\tlevel,\n\t\t\t\t\tcontextHeadingLevel\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ blockName, className, clientId, contextHeadingLevel ]\n\t);\n}\n\n/**\n * Hook: computes the merged, cascade-resolved `inheritedValue` payload and\n * source map for a selected block, ready to hand to a shared Global Styles\n * panel via props.\n *\n * It reads the merged Global Styles payload and the block's applied variation,\n * then folds the Root ‹ Block-type ‹ applied-variation cascade (resolving\n * `{ ref }` envelopes and theme-file pointers) via the pure `resolveStyle`\n * resolver in `@wordpress/global-styles-engine`. All store access lives here;\n * the panels stay presentational.\n *\n * Before the `globalStylesDataKey` payload settles (hydration) or when\n * `blockName` is missing, the hook returns empty value and source objects, so\n * each panel's `inheritedValue = value` default preserves pre-feature behavior.\n *\n * @param {?string} blockName Selected block name (e.g. `core/heading`).\n * @param {?string} className Block `className` used to detect an applied variation.\n * @param {?Object} [selectedState] Selected block style state (`{ viewport, pseudo }`), or null for the default state.\n * @return {{ value: Object, sources: Object }} Merged panel-scoped payload and source map.\n */\nexport function useResolvedStyle( blockName, className, selectedState = null ) {\n\tconst { variationName, headingLevel } = useVariationAndElements(\n\t\tblockName,\n\t\tclassName\n\t);\n\tconst globalStyles = useRawGlobalStyles();\n\n\treturn useMemo( () => {\n\t\t// Skip the cascade merge entirely when the experiment is off.\n\t\tif ( ! isGlobalStylesInheritanceEnabled() ) {\n\t\t\treturn NO_RESOLVED_STYLE;\n\t\t}\n\t\tif ( ! blockName ) {\n\t\t\treturn { value: {}, sources: {} };\n\t\t}\n\t\treturn resolveStyle( globalStyles, {\n\t\t\tblockName,\n\t\t\tvariationName,\n\t\t\telements: getElementLayers( blockName, headingLevel ),\n\t\t\tviewport: selectedState?.viewport ?? null,\n\t\t\tpseudoState: selectedState?.pseudo ?? null,\n\t\t} );\n\t}, [\n\t\tblockName,\n\t\tvariationName,\n\t\theadingLevel,\n\t\tglobalStyles,\n\t\tselectedState,\n\t] );\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -14,6 +14,7 @@ import { useMemo, useRef } from "@wordpress/element";
|
|
|
14
14
|
import { shadow as shadowIcon, Icon, check, reset } from "@wordpress/icons";
|
|
15
15
|
import clsx from "clsx";
|
|
16
16
|
import { Tooltip } from "@wordpress/ui";
|
|
17
|
+
import { InheritanceResetButton } from "./inheritance/index.mjs";
|
|
17
18
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
18
19
|
var EMPTY_ARRAY = [];
|
|
19
20
|
function ShadowPopoverContainer({ shadow, onShadowChange, settings }) {
|
|
@@ -101,7 +102,15 @@ function ShadowIndicator({ type, label, isActive, onSelect, shadow }) {
|
|
|
101
102
|
/* @__PURE__ */ jsx(Tooltip.Popup, { children: label })
|
|
102
103
|
] });
|
|
103
104
|
}
|
|
104
|
-
function ShadowPopover({
|
|
105
|
+
function ShadowPopover({
|
|
106
|
+
shadow,
|
|
107
|
+
onShadowChange,
|
|
108
|
+
settings,
|
|
109
|
+
className,
|
|
110
|
+
hasLocalValue = !!shadow,
|
|
111
|
+
hasLocalOverride = false,
|
|
112
|
+
onReset
|
|
113
|
+
}) {
|
|
105
114
|
const popoverProps = {
|
|
106
115
|
placement: "left-start",
|
|
107
116
|
offset: 36,
|
|
@@ -111,8 +120,15 @@ function ShadowPopover({ shadow, onShadowChange, settings }) {
|
|
|
111
120
|
Dropdown,
|
|
112
121
|
{
|
|
113
122
|
popoverProps,
|
|
114
|
-
className:
|
|
115
|
-
|
|
123
|
+
className: clsx(
|
|
124
|
+
"block-editor-global-styles__shadow-dropdown",
|
|
125
|
+
className
|
|
126
|
+
),
|
|
127
|
+
renderToggle: renderShadowToggle(shadow, onShadowChange, {
|
|
128
|
+
hasLocalValue,
|
|
129
|
+
hasLocalOverride,
|
|
130
|
+
onReset: onReset ?? (() => onShadowChange(void 0))
|
|
131
|
+
}),
|
|
116
132
|
renderContent: () => /* @__PURE__ */ jsx(DropdownContentWrapper, { paddingSize: "medium", children: /* @__PURE__ */ jsx(
|
|
117
133
|
ShadowPopoverContainer,
|
|
118
134
|
{
|
|
@@ -124,7 +140,8 @@ function ShadowPopover({ shadow, onShadowChange, settings }) {
|
|
|
124
140
|
}
|
|
125
141
|
);
|
|
126
142
|
}
|
|
127
|
-
function renderShadowToggle(shadow, onShadowChange) {
|
|
143
|
+
function renderShadowToggle(shadow, onShadowChange, resetConfig) {
|
|
144
|
+
const { hasLocalValue, hasLocalOverride, onReset } = resetConfig;
|
|
128
145
|
return function ShadowToggle({ onToggle, isOpen }) {
|
|
129
146
|
const shadowButtonRef = useRef(void 0);
|
|
130
147
|
const toggleProps = {
|
|
@@ -136,19 +153,12 @@ function renderShadowToggle(shadow, onShadowChange) {
|
|
|
136
153
|
"aria-expanded": isOpen,
|
|
137
154
|
ref: shadowButtonRef
|
|
138
155
|
};
|
|
139
|
-
const
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
shadowButtonRef.current?.focus();
|
|
146
|
-
},
|
|
147
|
-
className: clsx(
|
|
148
|
-
"block-editor-global-styles__shadow-editor__remove-button",
|
|
149
|
-
{ "is-open": isOpen }
|
|
150
|
-
),
|
|
151
|
-
label: __("Remove")
|
|
156
|
+
const handleReset = () => {
|
|
157
|
+
if (isOpen) {
|
|
158
|
+
onToggle();
|
|
159
|
+
}
|
|
160
|
+
onReset();
|
|
161
|
+
shadowButtonRef.current?.focus();
|
|
152
162
|
};
|
|
153
163
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
154
164
|
/* @__PURE__ */ jsx(Button, { __next40pxDefaultSize: true, ...toggleProps, children: /* @__PURE__ */ jsxs(HStack, { justify: "flex-start", children: [
|
|
@@ -162,15 +172,23 @@ function renderShadowToggle(shadow, onShadowChange) {
|
|
|
162
172
|
),
|
|
163
173
|
/* @__PURE__ */ jsx(FlexItem, { children: __("Drop shadow") })
|
|
164
174
|
] }) }),
|
|
165
|
-
|
|
175
|
+
hasLocalValue && (hasLocalOverride ? /* @__PURE__ */ jsx(
|
|
176
|
+
InheritanceResetButton,
|
|
177
|
+
{
|
|
178
|
+
className: "block-editor-global-styles__shadow-editor__remove-button",
|
|
179
|
+
onResetToInherited: handleReset
|
|
180
|
+
}
|
|
181
|
+
) : /* @__PURE__ */ jsx(
|
|
166
182
|
Button,
|
|
167
183
|
{
|
|
168
184
|
__next40pxDefaultSize: true,
|
|
169
185
|
size: "small",
|
|
170
186
|
icon: reset,
|
|
171
|
-
|
|
187
|
+
label: __("Remove"),
|
|
188
|
+
className: "block-editor-global-styles__shadow-editor__remove-button",
|
|
189
|
+
onClick: handleReset
|
|
172
190
|
}
|
|
173
|
-
)
|
|
191
|
+
))
|
|
174
192
|
] });
|
|
175
193
|
};
|
|
176
194
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/global-styles/shadow-panel-components.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHeading as Heading,\n\t__experimentalHStack as HStack,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tButton,\n\tFlexItem,\n\tDropdown,\n\tComposite,\n} from '@wordpress/components';\nimport { useMemo, useRef } from '@wordpress/element';\nimport { shadow as shadowIcon, Icon, check, reset } from '@wordpress/icons';\n\n/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\nimport { Tooltip } from '@wordpress/ui';\n\n/**\n * Shared reference to an empty array for cases where it is important to avoid\n * returning a new array reference on every invocation.\n *\n * @type {Array}\n */\nconst EMPTY_ARRAY = [];\n\nexport function ShadowPopoverContainer( { shadow, onShadowChange, settings } ) {\n\tconst shadows = useShadowPresets( settings );\n\n\treturn (\n\t\t<div className=\"block-editor-global-styles__shadow-popover-container\">\n\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t<Heading level={ 5 }>{ __( 'Drop shadow' ) }</Heading>\n\t\t\t\t<ShadowPresets\n\t\t\t\t\tpresets={ shadows }\n\t\t\t\t\tactiveShadow={ shadow }\n\t\t\t\t\tonSelect={ onShadowChange }\n\t\t\t\t/>\n\t\t\t\t<div className=\"block-editor-global-styles__clear-shadow\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => onShadowChange( undefined ) }\n\t\t\t\t\t\tdisabled={ ! shadow }\n\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Clear' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nexport function ShadowPresets( { presets, activeShadow, onSelect } ) {\n\treturn ! presets ? null : (\n\t\t<Composite\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"block-editor-global-styles__shadow__list\"\n\t\t\taria-label={ __( 'Drop shadows' ) }\n\t\t>\n\t\t\t{ presets.map( ( { name, slug, shadow } ) => (\n\t\t\t\t<ShadowIndicator\n\t\t\t\t\tkey={ slug }\n\t\t\t\t\tlabel={ name }\n\t\t\t\t\tisActive={ shadow === activeShadow }\n\t\t\t\t\ttype={ slug === 'unset' ? 'unset' : 'preset' }\n\t\t\t\t\tonSelect={ () =>\n\t\t\t\t\t\tonSelect( shadow === activeShadow ? undefined : shadow )\n\t\t\t\t\t}\n\t\t\t\t\tshadow={ shadow }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</Composite>\n\t);\n}\n\nexport function ShadowIndicator( { type, label, isActive, onSelect, shadow } ) {\n\treturn (\n\t\t<Tooltip.Root>\n\t\t\t<Tooltip.Trigger\n\t\t\t\trender={\n\t\t\t\t\t<Composite.Item\n\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\taria-label={ label }\n\t\t\t\t\t\taria-selected={ isActive }\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-global-styles__shadow__item',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-active': isActive,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'block-editor-global-styles__shadow-indicator',\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tunset: type === 'unset',\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\tonClick={ onSelect }\n\t\t\t\t\t\t\t\tstyle={ { boxShadow: shadow } }\n\t\t\t\t\t\t\t\taria-label={ label }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ isActive && <Icon icon={ check } /> }\n\t\t\t\t\t\t\t</button>\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<Tooltip.Popup>{ label }</Tooltip.Popup>\n\t\t</Tooltip.Root>\n\t);\n}\n\nexport function ShadowPopover( { shadow
|
|
5
|
-
"mappings": ";AAGA,SAAS,UAAU;AACnB;AAAA,EACC,wBAAwB;AAAA,EACxB,yBAAyB;AAAA,EACzB,wBAAwB;AAAA,EACxB,wCAAwC;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAAS,SAAS,cAAc;AAChC,SAAS,UAAU,YAAY,MAAM,OAAO,aAAa;AAKzD,OAAO,UAAU;AAEjB,SAAS,eAAe;
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHeading as Heading,\n\t__experimentalHStack as HStack,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tButton,\n\tFlexItem,\n\tDropdown,\n\tComposite,\n} from '@wordpress/components';\nimport { useMemo, useRef } from '@wordpress/element';\nimport { shadow as shadowIcon, Icon, check, reset } from '@wordpress/icons';\n\n/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\nimport { Tooltip } from '@wordpress/ui';\n\n/**\n * Internal dependencies\n */\nimport { InheritanceResetButton } from './inheritance';\n\n/**\n * Shared reference to an empty array for cases where it is important to avoid\n * returning a new array reference on every invocation.\n *\n * @type {Array}\n */\nconst EMPTY_ARRAY = [];\n\nexport function ShadowPopoverContainer( { shadow, onShadowChange, settings } ) {\n\tconst shadows = useShadowPresets( settings );\n\n\treturn (\n\t\t<div className=\"block-editor-global-styles__shadow-popover-container\">\n\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t<Heading level={ 5 }>{ __( 'Drop shadow' ) }</Heading>\n\t\t\t\t<ShadowPresets\n\t\t\t\t\tpresets={ shadows }\n\t\t\t\t\tactiveShadow={ shadow }\n\t\t\t\t\tonSelect={ onShadowChange }\n\t\t\t\t/>\n\t\t\t\t<div className=\"block-editor-global-styles__clear-shadow\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => onShadowChange( undefined ) }\n\t\t\t\t\t\tdisabled={ ! shadow }\n\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Clear' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nexport function ShadowPresets( { presets, activeShadow, onSelect } ) {\n\treturn ! presets ? null : (\n\t\t<Composite\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"block-editor-global-styles__shadow__list\"\n\t\t\taria-label={ __( 'Drop shadows' ) }\n\t\t>\n\t\t\t{ presets.map( ( { name, slug, shadow } ) => (\n\t\t\t\t<ShadowIndicator\n\t\t\t\t\tkey={ slug }\n\t\t\t\t\tlabel={ name }\n\t\t\t\t\tisActive={ shadow === activeShadow }\n\t\t\t\t\ttype={ slug === 'unset' ? 'unset' : 'preset' }\n\t\t\t\t\tonSelect={ () =>\n\t\t\t\t\t\tonSelect( shadow === activeShadow ? undefined : shadow )\n\t\t\t\t\t}\n\t\t\t\t\tshadow={ shadow }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</Composite>\n\t);\n}\n\nexport function ShadowIndicator( { type, label, isActive, onSelect, shadow } ) {\n\treturn (\n\t\t<Tooltip.Root>\n\t\t\t<Tooltip.Trigger\n\t\t\t\trender={\n\t\t\t\t\t<Composite.Item\n\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\taria-label={ label }\n\t\t\t\t\t\taria-selected={ isActive }\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-global-styles__shadow__item',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-active': isActive,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'block-editor-global-styles__shadow-indicator',\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tunset: type === 'unset',\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\tonClick={ onSelect }\n\t\t\t\t\t\t\t\tstyle={ { boxShadow: shadow } }\n\t\t\t\t\t\t\t\taria-label={ label }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ isActive && <Icon icon={ check } /> }\n\t\t\t\t\t\t\t</button>\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<Tooltip.Popup>{ label }</Tooltip.Popup>\n\t\t</Tooltip.Root>\n\t);\n}\n\nexport function ShadowPopover( {\n\tshadow,\n\tonShadowChange,\n\tsettings,\n\tclassName,\n\thasLocalValue = !! shadow,\n\thasLocalOverride = false,\n\tonReset,\n} ) {\n\tconst popoverProps = {\n\t\tplacement: 'left-start',\n\t\toffset: 36,\n\t\tshift: true,\n\t};\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ popoverProps }\n\t\t\tclassName={ clsx(\n\t\t\t\t'block-editor-global-styles__shadow-dropdown',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\trenderToggle={ renderShadowToggle( shadow, onShadowChange, {\n\t\t\t\thasLocalValue,\n\t\t\t\thasLocalOverride,\n\t\t\t\tonReset: onReset ?? ( () => onShadowChange( undefined ) ),\n\t\t\t} ) }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper paddingSize=\"medium\">\n\t\t\t\t\t<ShadowPopoverContainer\n\t\t\t\t\t\tshadow={ shadow }\n\t\t\t\t\t\tonShadowChange={ onShadowChange }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t/>\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nfunction renderShadowToggle( shadow, onShadowChange, resetConfig ) {\n\tconst { hasLocalValue, hasLocalOverride, onReset } = resetConfig;\n\treturn function ShadowToggle( { onToggle, isOpen } ) {\n\t\tconst shadowButtonRef = useRef( undefined );\n\n\t\tconst toggleProps = {\n\t\t\tonClick: onToggle,\n\t\t\tclassName: clsx(\n\t\t\t\t'block-editor-global-styles__shadow-dropdown-toggle',\n\t\t\t\t{ 'is-open': isOpen }\n\t\t\t),\n\t\t\t'aria-expanded': isOpen,\n\t\t\tref: shadowButtonRef,\n\t\t};\n\n\t\tconst handleReset = () => {\n\t\t\tif ( isOpen ) {\n\t\t\t\tonToggle();\n\t\t\t}\n\t\t\tonReset();\n\t\t\t// Return focus to parent button.\n\t\t\tshadowButtonRef.current?.focus();\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button __next40pxDefaultSize { ...toggleProps }>\n\t\t\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\tclassName=\"block-editor-global-styles__toggle-icon\"\n\t\t\t\t\t\t\ticon={ shadowIcon }\n\t\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<FlexItem>{ __( 'Drop shadow' ) }</FlexItem>\n\t\t\t\t\t</HStack>\n\t\t\t\t</Button>\n\t\t\t\t{ hasLocalValue &&\n\t\t\t\t\t( hasLocalOverride ? (\n\t\t\t\t\t\t<InheritanceResetButton\n\t\t\t\t\t\t\tclassName=\"block-editor-global-styles__shadow-editor__remove-button\"\n\t\t\t\t\t\t\tonResetToInherited={ handleReset }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\ticon={ reset }\n\t\t\t\t\t\t\tlabel={ __( 'Remove' ) }\n\t\t\t\t\t\t\tclassName=\"block-editor-global-styles__shadow-editor__remove-button\"\n\t\t\t\t\t\t\tonClick={ handleReset }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t</>\n\t\t);\n\t};\n}\n\nexport function useShadowPresets( settings ) {\n\treturn useMemo( () => {\n\t\tif ( ! settings?.shadow ) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\n\t\tconst defaultPresetsEnabled = settings?.shadow?.defaultPresets;\n\t\tconst {\n\t\t\tdefault: defaultShadows,\n\t\t\ttheme: themeShadows,\n\t\t\tcustom: customShadows,\n\t\t} = settings?.shadow?.presets ?? {};\n\t\tconst unsetShadow = {\n\t\t\tname: __( 'Unset' ),\n\t\t\tslug: 'unset',\n\t\t\tshadow: 'none',\n\t\t};\n\n\t\tconst shadowPresets = [\n\t\t\t...( ( defaultPresetsEnabled && defaultShadows ) || EMPTY_ARRAY ),\n\t\t\t...( themeShadows || EMPTY_ARRAY ),\n\t\t\t...( customShadows || EMPTY_ARRAY ),\n\t\t];\n\t\tif ( shadowPresets.length ) {\n\t\t\tshadowPresets.unshift( unsetShadow );\n\t\t}\n\n\t\treturn shadowPresets;\n\t}, [ settings ] );\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
// packages/block-editor/src/components/global-styles/state-control-badges.js
|
|
2
2
|
import { privateApis as componentsPrivateApis } from "@wordpress/components";
|
|
3
|
-
import {
|
|
3
|
+
import { __, sprintf } from "@wordpress/i18n";
|
|
4
|
+
import { Stack, Tooltip, VisuallyHidden } from "@wordpress/ui";
|
|
4
5
|
import { unlock } from "../../lock-unlock.mjs";
|
|
5
|
-
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
7
|
var { Badge: WCBadge } = unlock(componentsPrivateApis);
|
|
7
8
|
function StateControlBadges({
|
|
8
9
|
viewportStates = [],
|
|
@@ -21,13 +22,23 @@ function StateControlBadges({
|
|
|
21
22
|
if (selectedViewport) {
|
|
22
23
|
activeStates.push({
|
|
23
24
|
key: `viewport-${selectedViewport.value}`,
|
|
24
|
-
label: selectedViewport.label
|
|
25
|
+
label: selectedViewport.label,
|
|
26
|
+
tooltipText: sprintf(
|
|
27
|
+
/* translators: %s: viewport name, e.g. "Tablet". */
|
|
28
|
+
__("Style changes apply to the %s viewport."),
|
|
29
|
+
selectedViewport.label
|
|
30
|
+
)
|
|
25
31
|
});
|
|
26
32
|
}
|
|
27
33
|
if (selectedPseudoState) {
|
|
28
34
|
activeStates.push({
|
|
29
35
|
key: `pseudo-${selectedPseudoState.value}`,
|
|
30
|
-
label: selectedPseudoState.label
|
|
36
|
+
label: selectedPseudoState.label,
|
|
37
|
+
tooltipText: sprintf(
|
|
38
|
+
/* translators: %s: pseudo state name, e.g. "Hover". */
|
|
39
|
+
__("Style changes apply to the %s state."),
|
|
40
|
+
selectedPseudoState.label
|
|
41
|
+
)
|
|
31
42
|
});
|
|
32
43
|
}
|
|
33
44
|
return /* @__PURE__ */ jsx(
|
|
@@ -38,7 +49,32 @@ function StateControlBadges({
|
|
|
38
49
|
justify: "flex-start",
|
|
39
50
|
gap: "xs",
|
|
40
51
|
wrap: "wrap",
|
|
41
|
-
children: activeStates.map((state) =>
|
|
52
|
+
children: activeStates.map((state) => {
|
|
53
|
+
const badge = /* @__PURE__ */ jsxs(
|
|
54
|
+
WCBadge,
|
|
55
|
+
{
|
|
56
|
+
className: "block-editor-global-styles-state-control__badge",
|
|
57
|
+
intent: "info",
|
|
58
|
+
children: [
|
|
59
|
+
state.label,
|
|
60
|
+
!!state.tooltipText && /* @__PURE__ */ jsx(VisuallyHidden, { render: /* @__PURE__ */ jsx("span", {}), children: state.tooltipText })
|
|
61
|
+
]
|
|
62
|
+
},
|
|
63
|
+
state.key
|
|
64
|
+
);
|
|
65
|
+
if (!state.tooltipText) {
|
|
66
|
+
return badge;
|
|
67
|
+
}
|
|
68
|
+
return /* @__PURE__ */ jsxs(Tooltip.Root, { children: [
|
|
69
|
+
/* @__PURE__ */ jsx(
|
|
70
|
+
Tooltip.Trigger,
|
|
71
|
+
{
|
|
72
|
+
render: /* @__PURE__ */ jsx("span", { className: "block-editor-global-styles-state-control__badge-tooltip-trigger", children: badge })
|
|
73
|
+
}
|
|
74
|
+
),
|
|
75
|
+
/* @__PURE__ */ jsx(Tooltip.Popup, { children: state.tooltipText })
|
|
76
|
+
] }, state.key);
|
|
77
|
+
})
|
|
42
78
|
}
|
|
43
79
|
);
|
|
44
80
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/global-styles/state-control-badges.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\nimport { Stack } from '@wordpress/ui';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { Badge: WCBadge } = unlock( componentsPrivateApis );\n\nexport default function StateControlBadges( {\n\tviewportStates = [],\n\tpseudoStates = [],\n\tviewportValue = 'default',\n\tpseudoStateValue = 'default',\n\tclassName = 'block-editor-global-styles-state-control__badges',\n} ) {\n\tconst activeStates = [];\n\tconst selectedViewport = viewportStates.find(\n\t\t( state ) => state.value === viewportValue\n\t);\n\tconst selectedPseudoState = pseudoStates.find(\n\t\t( state ) => state.value === pseudoStateValue\n\t);\n\n\tif ( selectedViewport ) {\n\t\tactiveStates.push( {\n\t\t\tkey: `viewport-${ selectedViewport.value }`,\n\t\t\tlabel: selectedViewport.label,\n\t\t} );\n\t}\n\n\tif ( selectedPseudoState ) {\n\t\tactiveStates.push( {\n\t\t\tkey: `pseudo-${ selectedPseudoState.value }`,\n\t\t\tlabel: selectedPseudoState.label,\n\t\t} );\n\t}\n\n\treturn (\n\t\t<Stack\n\t\t\tclassName={ className }\n\t\t\tdirection=\"row\"\n\t\t\tjustify=\"flex-start\"\n\t\t\tgap=\"xs\"\n\t\t\twrap=\"wrap\"\n\t\t>\n\t\t\t{ activeStates.map( ( state ) => (\n\t\t\t\t<WCBadge
|
|
5
|
-
"mappings": ";AAGA,SAAS,eAAe,6BAA6B;AACrD,SAAS,
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Stack, Tooltip, VisuallyHidden } from '@wordpress/ui';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { Badge: WCBadge } = unlock( componentsPrivateApis );\n\nexport default function StateControlBadges( {\n\tviewportStates = [],\n\tpseudoStates = [],\n\tviewportValue = 'default',\n\tpseudoStateValue = 'default',\n\tclassName = 'block-editor-global-styles-state-control__badges',\n} ) {\n\tconst activeStates = [];\n\tconst selectedViewport = viewportStates.find(\n\t\t( state ) => state.value === viewportValue\n\t);\n\tconst selectedPseudoState = pseudoStates.find(\n\t\t( state ) => state.value === pseudoStateValue\n\t);\n\n\tif ( selectedViewport ) {\n\t\tactiveStates.push( {\n\t\t\tkey: `viewport-${ selectedViewport.value }`,\n\t\t\tlabel: selectedViewport.label,\n\t\t\ttooltipText: sprintf(\n\t\t\t\t/* translators: %s: viewport name, e.g. \"Tablet\". */\n\t\t\t\t__( 'Style changes apply to the %s viewport.' ),\n\t\t\t\tselectedViewport.label\n\t\t\t),\n\t\t} );\n\t}\n\n\tif ( selectedPseudoState ) {\n\t\tactiveStates.push( {\n\t\t\tkey: `pseudo-${ selectedPseudoState.value }`,\n\t\t\tlabel: selectedPseudoState.label,\n\t\t\ttooltipText: sprintf(\n\t\t\t\t/* translators: %s: pseudo state name, e.g. \"Hover\". */\n\t\t\t\t__( 'Style changes apply to the %s state.' ),\n\t\t\t\tselectedPseudoState.label\n\t\t\t),\n\t\t} );\n\t}\n\n\treturn (\n\t\t<Stack\n\t\t\tclassName={ className }\n\t\t\tdirection=\"row\"\n\t\t\tjustify=\"flex-start\"\n\t\t\tgap=\"xs\"\n\t\t\twrap=\"wrap\"\n\t\t>\n\t\t\t{ activeStates.map( ( state ) => {\n\t\t\t\tconst badge = (\n\t\t\t\t\t<WCBadge\n\t\t\t\t\t\tkey={ state.key }\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-state-control__badge\"\n\t\t\t\t\t\tintent=\"info\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ state.label }\n\t\t\t\t\t\t{ !! state.tooltipText && (\n\t\t\t\t\t\t\t<VisuallyHidden render={ <span /> }>\n\t\t\t\t\t\t\t\t{ state.tooltipText }\n\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</WCBadge>\n\t\t\t\t);\n\n\t\t\t\tif ( ! state.tooltipText ) {\n\t\t\t\t\treturn badge;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<Tooltip.Root key={ state.key }>\n\t\t\t\t\t\t<Tooltip.Trigger\n\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t<span className=\"block-editor-global-styles-state-control__badge-tooltip-trigger\">\n\t\t\t\t\t\t\t\t\t{ badge }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Tooltip.Popup>{ state.tooltipText }</Tooltip.Popup>\n\t\t\t\t\t</Tooltip.Root>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</Stack>\n\t);\n}\n"],
|
|
5
|
+
"mappings": ";AAGA,SAAS,eAAe,6BAA6B;AACrD,SAAS,IAAI,eAAe;AAC5B,SAAS,OAAO,SAAS,sBAAsB;AAK/C,SAAS,cAAc;AAqDlB,SAO2B,KAP3B;AAnDL,IAAM,EAAE,OAAO,QAAQ,IAAI,OAAQ,qBAAsB;AAE1C,SAAR,mBAAqC;AAAA,EAC3C,iBAAiB,CAAC;AAAA,EAClB,eAAe,CAAC;AAAA,EAChB,gBAAgB;AAAA,EAChB,mBAAmB;AAAA,EACnB,YAAY;AACb,GAAI;AACH,QAAM,eAAe,CAAC;AACtB,QAAM,mBAAmB,eAAe;AAAA,IACvC,CAAE,UAAW,MAAM,UAAU;AAAA,EAC9B;AACA,QAAM,sBAAsB,aAAa;AAAA,IACxC,CAAE,UAAW,MAAM,UAAU;AAAA,EAC9B;AAEA,MAAK,kBAAmB;AACvB,iBAAa,KAAM;AAAA,MAClB,KAAK,YAAa,iBAAiB,KAAM;AAAA,MACzC,OAAO,iBAAiB;AAAA,MACxB,aAAa;AAAA;AAAA,QAEZ,GAAI,yCAA0C;AAAA,QAC9C,iBAAiB;AAAA,MAClB;AAAA,IACD,CAAE;AAAA,EACH;AAEA,MAAK,qBAAsB;AAC1B,iBAAa,KAAM;AAAA,MAClB,KAAK,UAAW,oBAAoB,KAAM;AAAA,MAC1C,OAAO,oBAAoB;AAAA,MAC3B,aAAa;AAAA;AAAA,QAEZ,GAAI,sCAAuC;AAAA,QAC3C,oBAAoB;AAAA,MACrB;AAAA,IACD,CAAE;AAAA,EACH;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA;AAAA,MACA,WAAU;AAAA,MACV,SAAQ;AAAA,MACR,KAAI;AAAA,MACJ,MAAK;AAAA,MAEH,uBAAa,IAAK,CAAE,UAAW;AAChC,cAAM,QACL;AAAA,UAAC;AAAA;AAAA,YAEA,WAAU;AAAA,YACV,QAAO;AAAA,YAEL;AAAA,oBAAM;AAAA,cACN,CAAC,CAAE,MAAM,eACV,oBAAC,kBAAe,QAAS,oBAAC,UAAK,GAC5B,gBAAM,aACT;AAAA;AAAA;AAAA,UARK,MAAM;AAAA,QAUb;AAGD,YAAK,CAAE,MAAM,aAAc;AAC1B,iBAAO;AAAA,QACR;AAEA,eACC,qBAAC,QAAQ,MAAR,EACA;AAAA;AAAA,YAAC,QAAQ;AAAA,YAAR;AAAA,cACA,QACC,oBAAC,UAAK,WAAU,mEACb,iBACH;AAAA;AAAA,UAEF;AAAA,UACA,oBAAC,QAAQ,OAAR,EAAgB,gBAAM,aAAa;AAAA,aARjB,MAAM,GAS1B;AAAA,MAEF,CAAE;AAAA;AAAA,EACH;AAEF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -59,7 +59,7 @@ function StateControl({
|
|
|
59
59
|
}
|
|
60
60
|
const currentStateLabel = activeStates.length ? activeStates.map((state) => state.label).join(", ") : __("Default");
|
|
61
61
|
const icon = showText ? chevronDown : moreVertical;
|
|
62
|
-
const toggleProps = showText ? { size: "compact",
|
|
62
|
+
const toggleProps = showText ? { size: "compact", iconPosition: "right" } : { size: "small" };
|
|
63
63
|
return /* @__PURE__ */ jsx(
|
|
64
64
|
Stack,
|
|
65
65
|
{
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/global-styles/state-control.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { check, chevronDown, moreVertical } from '@wordpress/icons';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { Stack } from '@wordpress/ui';\n\n/**\n * State control for managing viewport and pseudo-state styles.\n * Displays a dropdown menu with separate groups for each selector.\n *\n * @param {Object} props Component props.\n * @param {Array} props.viewportStates Array of available viewport states.\n * @param {Array} props.pseudoStates Array of available pseudo states.\n * @param {string} props.viewportValue Currently selected viewport value.\n * @param {string} props.pseudoStateValue Currently selected pseudo state value.\n * @param {Function} props.onChangeViewport Callback when viewport selection changes.\n * @param {Function} props.onChangePseudoState Callback when pseudo state selection changes.\n * @param {boolean} props.showText Whether to show text label on the toggle. Default true.\n * @param {Object} props.popoverProps Popover props for the dropdown menu.\n * @return {Element|null} State control component.\n */\nexport default function StateControl( {\n\tviewportStates = [],\n\tpseudoStates = [],\n\tviewportValue = 'default',\n\tpseudoStateValue = 'default',\n\tonChangeViewport,\n\tonChangePseudoState,\n\tshowText = true,\n\tpopoverProps = {},\n} ) {\n\tif ( ! viewportStates.length && ! pseudoStates.length ) {\n\t\treturn null;\n\t}\n\n\tconst viewportOptions = [\n\t\t{ label: __( 'Default' ), value: 'default' },\n\t\t...viewportStates.map( ( state ) => ( {\n\t\t\tlabel: state.label,\n\t\t\tvalue: state.value,\n\t\t} ) ),\n\t];\n\tconst pseudoStateOptions = [\n\t\t{ label: __( 'Default' ), value: 'default' },\n\t\t...pseudoStates.map( ( state ) => ( {\n\t\t\tlabel: state.label,\n\t\t\tvalue: state.value,\n\t\t} ) ),\n\t];\n\n\tconst hasViewportOptions = viewportStates.length > 0;\n\tconst hasPseudoStateOptions = pseudoStates.length > 0;\n\tconst triggerLabel = __( 'States' );\n\tconst activeStates = [];\n\n\tif ( hasViewportOptions && viewportValue !== 'default' ) {\n\t\tconst selectedViewport = viewportOptions.find(\n\t\t\t( option ) => option.value === viewportValue\n\t\t);\n\n\t\tif ( selectedViewport ) {\n\t\t\tactiveStates.push( {\n\t\t\t\tkey: `viewport-${ selectedViewport.value }`,\n\t\t\t\tlabel: selectedViewport.label,\n\t\t\t} );\n\t\t}\n\t}\n\n\tif ( hasPseudoStateOptions && pseudoStateValue !== 'default' ) {\n\t\tconst selectedPseudoState = pseudoStateOptions.find(\n\t\t\t( option ) => option.value === pseudoStateValue\n\t\t);\n\n\t\tif ( selectedPseudoState ) {\n\t\t\tactiveStates.push( {\n\t\t\t\tkey: `pseudo-${ selectedPseudoState.value }`,\n\t\t\t\tlabel: selectedPseudoState.label,\n\t\t\t} );\n\t\t}\n\t}\n\n\tconst currentStateLabel = activeStates.length\n\t\t? activeStates.map( ( state ) => state.label ).join( ', ' )\n\t\t: __( 'Default' );\n\tconst icon = showText ? chevronDown : moreVertical;\n\tconst toggleProps = showText\n\t\t? { size: 'compact',
|
|
5
|
-
"mappings": ";AAGA,SAAS,IAAI,eAAe;AAC5B,SAAS,OAAO,aAAa,oBAAoB;AACjD,SAAS,cAAc,WAAW,gBAAgB;AAClD,SAAS,aAAa;AA+GjB,mBAII,KAJJ;AA9FU,SAAR,aAA+B;AAAA,EACrC,iBAAiB,CAAC;AAAA,EAClB,eAAe,CAAC;AAAA,EAChB,gBAAgB;AAAA,EAChB,mBAAmB;AAAA,EACnB;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,eAAe,CAAC;AACjB,GAAI;AACH,MAAK,CAAE,eAAe,UAAU,CAAE,aAAa,QAAS;AACvD,WAAO;AAAA,EACR;AAEA,QAAM,kBAAkB;AAAA,IACvB,EAAE,OAAO,GAAI,SAAU,GAAG,OAAO,UAAU;AAAA,IAC3C,GAAG,eAAe,IAAK,CAAE,WAAa;AAAA,MACrC,OAAO,MAAM;AAAA,MACb,OAAO,MAAM;AAAA,IACd,EAAI;AAAA,EACL;AACA,QAAM,qBAAqB;AAAA,IAC1B,EAAE,OAAO,GAAI,SAAU,GAAG,OAAO,UAAU;AAAA,IAC3C,GAAG,aAAa,IAAK,CAAE,WAAa;AAAA,MACnC,OAAO,MAAM;AAAA,MACb,OAAO,MAAM;AAAA,IACd,EAAI;AAAA,EACL;AAEA,QAAM,qBAAqB,eAAe,SAAS;AACnD,QAAM,wBAAwB,aAAa,SAAS;AACpD,QAAM,eAAe,GAAI,QAAS;AAClC,QAAM,eAAe,CAAC;AAEtB,MAAK,sBAAsB,kBAAkB,WAAY;AACxD,UAAM,mBAAmB,gBAAgB;AAAA,MACxC,CAAE,WAAY,OAAO,UAAU;AAAA,IAChC;AAEA,QAAK,kBAAmB;AACvB,mBAAa,KAAM;AAAA,QAClB,KAAK,YAAa,iBAAiB,KAAM;AAAA,QACzC,OAAO,iBAAiB;AAAA,MACzB,CAAE;AAAA,IACH;AAAA,EACD;AAEA,MAAK,yBAAyB,qBAAqB,WAAY;AAC9D,UAAM,sBAAsB,mBAAmB;AAAA,MAC9C,CAAE,WAAY,OAAO,UAAU;AAAA,IAChC;AAEA,QAAK,qBAAsB;AAC1B,mBAAa,KAAM;AAAA,QAClB,KAAK,UAAW,oBAAoB,KAAM;AAAA,QAC1C,OAAO,oBAAoB;AAAA,MAC5B,CAAE;AAAA,IACH;AAAA,EACD;AAEA,QAAM,oBAAoB,aAAa,SACpC,aAAa,IAAK,CAAE,UAAW,MAAM,KAAM,EAAE,KAAM,IAAK,IACxD,GAAI,SAAU;AACjB,QAAM,OAAO,WAAW,cAAc;AACtC,QAAM,cAAc,WACjB,EAAE,MAAM,WAAW,
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { check, chevronDown, moreVertical } from '@wordpress/icons';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { Stack } from '@wordpress/ui';\n\n/**\n * State control for managing viewport and pseudo-state styles.\n * Displays a dropdown menu with separate groups for each selector.\n *\n * @param {Object} props Component props.\n * @param {Array} props.viewportStates Array of available viewport states.\n * @param {Array} props.pseudoStates Array of available pseudo states.\n * @param {string} props.viewportValue Currently selected viewport value.\n * @param {string} props.pseudoStateValue Currently selected pseudo state value.\n * @param {Function} props.onChangeViewport Callback when viewport selection changes.\n * @param {Function} props.onChangePseudoState Callback when pseudo state selection changes.\n * @param {boolean} props.showText Whether to show text label on the toggle. Default true.\n * @param {Object} props.popoverProps Popover props for the dropdown menu.\n * @return {Element|null} State control component.\n */\nexport default function StateControl( {\n\tviewportStates = [],\n\tpseudoStates = [],\n\tviewportValue = 'default',\n\tpseudoStateValue = 'default',\n\tonChangeViewport,\n\tonChangePseudoState,\n\tshowText = true,\n\tpopoverProps = {},\n} ) {\n\tif ( ! viewportStates.length && ! pseudoStates.length ) {\n\t\treturn null;\n\t}\n\n\tconst viewportOptions = [\n\t\t{ label: __( 'Default' ), value: 'default' },\n\t\t...viewportStates.map( ( state ) => ( {\n\t\t\tlabel: state.label,\n\t\t\tvalue: state.value,\n\t\t} ) ),\n\t];\n\tconst pseudoStateOptions = [\n\t\t{ label: __( 'Default' ), value: 'default' },\n\t\t...pseudoStates.map( ( state ) => ( {\n\t\t\tlabel: state.label,\n\t\t\tvalue: state.value,\n\t\t} ) ),\n\t];\n\n\tconst hasViewportOptions = viewportStates.length > 0;\n\tconst hasPseudoStateOptions = pseudoStates.length > 0;\n\tconst triggerLabel = __( 'States' );\n\tconst activeStates = [];\n\n\tif ( hasViewportOptions && viewportValue !== 'default' ) {\n\t\tconst selectedViewport = viewportOptions.find(\n\t\t\t( option ) => option.value === viewportValue\n\t\t);\n\n\t\tif ( selectedViewport ) {\n\t\t\tactiveStates.push( {\n\t\t\t\tkey: `viewport-${ selectedViewport.value }`,\n\t\t\t\tlabel: selectedViewport.label,\n\t\t\t} );\n\t\t}\n\t}\n\n\tif ( hasPseudoStateOptions && pseudoStateValue !== 'default' ) {\n\t\tconst selectedPseudoState = pseudoStateOptions.find(\n\t\t\t( option ) => option.value === pseudoStateValue\n\t\t);\n\n\t\tif ( selectedPseudoState ) {\n\t\t\tactiveStates.push( {\n\t\t\t\tkey: `pseudo-${ selectedPseudoState.value }`,\n\t\t\t\tlabel: selectedPseudoState.label,\n\t\t\t} );\n\t\t}\n\t}\n\n\tconst currentStateLabel = activeStates.length\n\t\t? activeStates.map( ( state ) => state.label ).join( ', ' )\n\t\t: __( 'Default' );\n\tconst icon = showText ? chevronDown : moreVertical;\n\tconst toggleProps = showText\n\t\t? { size: 'compact', iconPosition: 'right' }\n\t\t: { size: 'small' };\n\n\treturn (\n\t\t<Stack\n\t\t\tdirection=\"column\"\n\t\t\tgap=\"sm\"\n\t\t\talign=\"flex-end\"\n\t\t\tclassName=\"block-editor-global-styles-state-control\"\n\t\t>\n\t\t\t<DropdownMenu\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={\n\t\t\t\t\tshowText\n\t\t\t\t\t\t? triggerLabel\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: Current state (e.g. \"Hover\", \"Focus\") */\n\t\t\t\t\t\t\t\t__( 'State: %s' ),\n\t\t\t\t\t\t\t\tcurrentStateLabel\n\t\t\t\t\t\t )\n\t\t\t\t}\n\t\t\t\tpopoverProps={ {\n\t\t\t\t\tplacement: 'right-start',\n\t\t\t\t\t...popoverProps,\n\t\t\t\t} }\n\t\t\t\ttext={ showText ? triggerLabel : undefined }\n\t\t\t\ttoggleProps={ toggleProps }\n\t\t\t>\n\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ hasViewportOptions && (\n\t\t\t\t\t\t\t<MenuGroup label={ __( 'Viewport' ) }>\n\t\t\t\t\t\t\t\t{ viewportOptions.map( ( option ) => (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tkey={ `viewport-${ option.value }` }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tonChangeViewport?.( option.value );\n\t\t\t\t\t\t\t\t\t\t\tif ( ! hasPseudoStateOptions ) {\n\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\tviewportValue === option.value\n\t\t\t\t\t\t\t\t\t\t\t\t? check\n\t\t\t\t\t\t\t\t\t\t\t\t: null\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\t\t{ option.label }\n\t\t\t\t\t\t\t\t\t</MenuItem>\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\t{ hasPseudoStateOptions && (\n\t\t\t\t\t\t\t<MenuGroup label={ __( 'Pseudo state' ) }>\n\t\t\t\t\t\t\t\t{ pseudoStateOptions.map( ( option ) => (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tkey={ `pseudo-${ option.value }` }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tonChangePseudoState?.(\n\t\t\t\t\t\t\t\t\t\t\t\toption.value\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\tif ( ! hasViewportOptions ) {\n\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\tpseudoStateValue === option.value\n\t\t\t\t\t\t\t\t\t\t\t\t? check\n\t\t\t\t\t\t\t\t\t\t\t\t: null\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\t\t{ option.label }\n\t\t\t\t\t\t\t\t\t</MenuItem>\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\t</DropdownMenu>\n\t\t</Stack>\n\t);\n}\n"],
|
|
5
|
+
"mappings": ";AAGA,SAAS,IAAI,eAAe;AAC5B,SAAS,OAAO,aAAa,oBAAoB;AACjD,SAAS,cAAc,WAAW,gBAAgB;AAClD,SAAS,aAAa;AA+GjB,mBAII,KAJJ;AA9FU,SAAR,aAA+B;AAAA,EACrC,iBAAiB,CAAC;AAAA,EAClB,eAAe,CAAC;AAAA,EAChB,gBAAgB;AAAA,EAChB,mBAAmB;AAAA,EACnB;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,eAAe,CAAC;AACjB,GAAI;AACH,MAAK,CAAE,eAAe,UAAU,CAAE,aAAa,QAAS;AACvD,WAAO;AAAA,EACR;AAEA,QAAM,kBAAkB;AAAA,IACvB,EAAE,OAAO,GAAI,SAAU,GAAG,OAAO,UAAU;AAAA,IAC3C,GAAG,eAAe,IAAK,CAAE,WAAa;AAAA,MACrC,OAAO,MAAM;AAAA,MACb,OAAO,MAAM;AAAA,IACd,EAAI;AAAA,EACL;AACA,QAAM,qBAAqB;AAAA,IAC1B,EAAE,OAAO,GAAI,SAAU,GAAG,OAAO,UAAU;AAAA,IAC3C,GAAG,aAAa,IAAK,CAAE,WAAa;AAAA,MACnC,OAAO,MAAM;AAAA,MACb,OAAO,MAAM;AAAA,IACd,EAAI;AAAA,EACL;AAEA,QAAM,qBAAqB,eAAe,SAAS;AACnD,QAAM,wBAAwB,aAAa,SAAS;AACpD,QAAM,eAAe,GAAI,QAAS;AAClC,QAAM,eAAe,CAAC;AAEtB,MAAK,sBAAsB,kBAAkB,WAAY;AACxD,UAAM,mBAAmB,gBAAgB;AAAA,MACxC,CAAE,WAAY,OAAO,UAAU;AAAA,IAChC;AAEA,QAAK,kBAAmB;AACvB,mBAAa,KAAM;AAAA,QAClB,KAAK,YAAa,iBAAiB,KAAM;AAAA,QACzC,OAAO,iBAAiB;AAAA,MACzB,CAAE;AAAA,IACH;AAAA,EACD;AAEA,MAAK,yBAAyB,qBAAqB,WAAY;AAC9D,UAAM,sBAAsB,mBAAmB;AAAA,MAC9C,CAAE,WAAY,OAAO,UAAU;AAAA,IAChC;AAEA,QAAK,qBAAsB;AAC1B,mBAAa,KAAM;AAAA,QAClB,KAAK,UAAW,oBAAoB,KAAM;AAAA,QAC1C,OAAO,oBAAoB;AAAA,MAC5B,CAAE;AAAA,IACH;AAAA,EACD;AAEA,QAAM,oBAAoB,aAAa,SACpC,aAAa,IAAK,CAAE,UAAW,MAAM,KAAM,EAAE,KAAM,IAAK,IACxD,GAAI,SAAU;AACjB,QAAM,OAAO,WAAW,cAAc;AACtC,QAAM,cAAc,WACjB,EAAE,MAAM,WAAW,cAAc,QAAQ,IACzC,EAAE,MAAM,QAAQ;AAEnB,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAU;AAAA,MACV,KAAI;AAAA,MACJ,OAAM;AAAA,MACN,WAAU;AAAA,MAEV;AAAA,QAAC;AAAA;AAAA,UACA;AAAA,UACA,OACC,WACG,eACA;AAAA;AAAA,YAEA,GAAI,WAAY;AAAA,YAChB;AAAA,UACA;AAAA,UAEJ,cAAe;AAAA,YACd,WAAW;AAAA,YACX,GAAG;AAAA,UACJ;AAAA,UACA,MAAO,WAAW,eAAe;AAAA,UACjC;AAAA,UAEE,WAAE,EAAE,QAAQ,MACb,iCACG;AAAA,kCACD,oBAAC,aAAU,OAAQ,GAAI,UAAW,GAC/B,0BAAgB,IAAK,CAAE,WACxB;AAAA,cAAC;AAAA;AAAA,gBAEA,SAAU,MAAM;AACf,qCAAoB,OAAO,KAAM;AACjC,sBAAK,CAAE,uBAAwB;AAC9B,4BAAQ;AAAA,kBACT;AAAA,gBACD;AAAA,gBACA,MACC,kBAAkB,OAAO,QACtB,QACA;AAAA,gBAGF,iBAAO;AAAA;AAAA,cAbH,YAAa,OAAO,KAAM;AAAA,YAcjC,CACC,GACH;AAAA,YAEC,yBACD,oBAAC,aAAU,OAAQ,GAAI,cAAe,GACnC,6BAAmB,IAAK,CAAE,WAC3B;AAAA,cAAC;AAAA;AAAA,gBAEA,SAAU,MAAM;AACf;AAAA,oBACC,OAAO;AAAA,kBACR;AACA,sBAAK,CAAE,oBAAqB;AAC3B,4BAAQ;AAAA,kBACT;AAAA,gBACD;AAAA,gBACA,MACC,qBAAqB,OAAO,QACzB,QACA;AAAA,gBAGF,iBAAO;AAAA;AAAA,cAfH,UAAW,OAAO,KAAM;AAAA,YAgB/B,CACC,GACH;AAAA,aAEF;AAAA;AAAA,MAEF;AAAA;AAAA,EACD;AAEF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|