@wordpress/block-editor 9.8.1-next.957ca95e4c.0 → 10.0.1
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 +6 -0
- package/README.md +13 -1
- package/build/components/alignment-control/ui.js +6 -5
- package/build/components/alignment-control/ui.js.map +1 -1
- package/build/components/autocomplete/index.js +2 -2
- package/build/components/autocomplete/index.js.map +1 -1
- package/build/components/block-actions/index.js +5 -9
- package/build/components/block-actions/index.js.map +1 -1
- package/build/components/block-alignment-control/ui.js +5 -5
- package/build/components/block-alignment-control/ui.js.map +1 -1
- package/build/components/block-content-overlay/index.js +2 -4
- package/build/components/block-content-overlay/index.js.map +1 -1
- package/build/components/block-draggable/draggable-chip.js +2 -1
- package/build/components/block-draggable/draggable-chip.js.map +1 -1
- package/build/components/block-edit/edit.js +1 -1
- package/build/components/block-edit/edit.js.map +1 -1
- package/build/components/block-inspector/index.js +125 -17
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block-list-compact.native.js +2 -1
- package/build/components/block-list/block-list-compact.native.js.map +1 -1
- package/build/components/block-list/block.js +40 -9
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/index.js +4 -4
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +14 -11
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-class-names.js +3 -2
- package/build/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
- package/build/components/block-list/use-block-props/use-focus-first-element.js +3 -9
- package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build/components/block-list/use-block-props/use-is-hovered.js +1 -2
- package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +7 -12
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-list-appender/index.js +20 -21
- package/build/components/block-list-appender/index.js.map +1 -1
- package/build/components/block-list-appender/index.native.js +1 -7
- package/build/components/block-list-appender/index.native.js.map +1 -1
- package/build/components/block-lock/use-block-lock.js +3 -1
- package/build/components/block-lock/use-block-lock.js.map +1 -1
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js +20 -10
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build/components/block-mover/button.js +4 -6
- package/build/components/block-mover/button.js.map +1 -1
- package/build/components/block-mover/index.js +4 -6
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-mover/index.native.js +24 -8
- package/build/components/block-mover/index.native.js.map +1 -1
- package/build/components/block-popover/inbetween.js +82 -52
- package/build/components/block-popover/inbetween.js.map +1 -1
- package/build/components/block-popover/index.js +31 -7
- package/build/components/block-popover/index.js.map +1 -1
- package/build/components/block-preview/auto.js +4 -2
- package/build/components/block-preview/auto.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +3 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +3 -1
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-styles/preview-panel.js +7 -1
- package/build/components/block-styles/preview-panel.js.map +1 -1
- package/build/components/block-switcher/block-transformations-menu.js +114 -25
- package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build/components/block-toolbar/index.js +9 -8
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/block-contextual-toolbar.js +3 -2
- package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +13 -5
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/index.js +33 -15
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +4 -9
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-tools/selected-block-popover.js +9 -8
- package/build/components/block-tools/selected-block-popover.js.map +1 -1
- package/build/components/block-tools/use-block-toolbar-popover-props.js +13 -8
- package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserters.js +71 -0
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -0
- package/build/components/block-vertical-alignment-control/ui.js +5 -2
- package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
- package/build/components/border-radius-control/linked-button.js +5 -6
- package/build/components/border-radius-control/linked-button.js.map +1 -1
- package/build/components/colors-gradients/dropdown.js +1 -1
- package/build/components/colors-gradients/dropdown.js.map +1 -1
- package/build/components/convert-to-group-buttons/toolbar.js +8 -3
- package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
- package/build/components/iframe/index.js +31 -4
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/inner-blocks/default-block-appender.js +1 -7
- package/build/components/inner-blocks/default-block-appender.js.map +1 -1
- package/build/components/inner-blocks/index.js +9 -3
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/use-inner-block-template-sync.js +28 -17
- package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build/components/inner-blocks/use-nested-settings-update.js +28 -4
- package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build/components/inserter/index.js +3 -6
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/library.js +14 -3
- package/build/components/inserter/library.js.map +1 -1
- package/build/components/inserter/menu.js +21 -8
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/preview-panel.js +1 -1
- package/build/components/inserter/preview-panel.js.map +1 -1
- package/build/components/inserter/tabs.js +11 -4
- package/build/components/inserter/tabs.js.map +1 -1
- package/build/components/link-control/link-preview.js +1 -1
- package/build/components/link-control/link-preview.js.map +1 -1
- package/build/components/link-control/search-input.js +6 -3
- package/build/components/link-control/search-input.js.map +1 -1
- package/build/components/link-control/search-item.js +36 -5
- package/build/components/link-control/search-item.js.map +1 -1
- package/build/components/list-view/block.js +23 -11
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +19 -2
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/drop-indicator.js +30 -28
- package/build/components/list-view/drop-indicator.js.map +1 -1
- package/build/components/list-view/index.js +8 -4
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/list-view/use-block-selection.js +0 -1
- package/build/components/list-view/use-block-selection.js.map +1 -1
- package/build/components/provider/use-block-sync.js +1 -7
- package/build/components/provider/use-block-sync.js.map +1 -1
- package/build/components/publish-date-time-picker/index.js +1 -1
- package/build/components/publish-date-time-picker/index.js.map +1 -1
- package/build/components/rich-text/format-toolbar-container.js +9 -9
- package/build/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build/components/rich-text/index.js +31 -21
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +11 -20
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/spacing-sizes-control/linked-button.js +2 -3
- package/build/components/spacing-sizes-control/linked-button.js.map +1 -1
- package/build/components/spacing-sizes-control/utils.js +1 -4
- package/build/components/spacing-sizes-control/utils.js.map +1 -1
- package/build/components/text-decoration-control/index.js +19 -15
- package/build/components/text-decoration-control/index.js.map +1 -1
- package/build/components/text-transform-control/index.js +25 -17
- package/build/components/text-transform-control/index.js.map +1 -1
- package/build/components/tool-selector/index.js +6 -11
- package/build/components/tool-selector/index.js.map +1 -1
- package/build/components/url-popover/image-url-input-ui.js +6 -4
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/components/url-popover/index.js +1 -1
- package/build/components/url-popover/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +7 -4
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-moving-animation/index.js +9 -28
- package/build/components/use-moving-animation/index.js.map +1 -1
- package/build/components/writing-flow/use-select-all.js +1 -7
- package/build/components/writing-flow/use-select-all.js.map +1 -1
- package/build/hooks/align.js +14 -2
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/color-panel.js +2 -1
- package/build/hooks/color-panel.js.map +1 -1
- package/build/hooks/content-lock-ui.js +145 -0
- package/build/hooks/content-lock-ui.js.map +1 -0
- package/build/hooks/duotone.js +8 -1
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/index.js +14 -0
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/layout.js +11 -9
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/metadata-name.js +55 -0
- package/build/hooks/metadata-name.js.map +1 -0
- package/build/hooks/metadata.js +65 -0
- package/build/hooks/metadata.js.map +1 -0
- package/build/hooks/typography.js +10 -11
- package/build/hooks/typography.js.map +1 -1
- package/build/hooks/use-typography-props.js +51 -0
- package/build/hooks/use-typography-props.js.map +1 -0
- package/build/hooks/utils.js +3 -1
- package/build/hooks/utils.js.map +1 -1
- package/build/index.js +7 -0
- package/build/index.js.map +1 -1
- package/build/layouts/constrained.js +59 -20
- package/build/layouts/constrained.js.map +1 -1
- package/build/store/actions.js +65 -21
- package/build/store/actions.js.map +1 -1
- package/build/store/reducer.js +43 -19
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +96 -10
- package/build/store/selectors.js.map +1 -1
- package/build/utils/parse-css-unit-to-px.js +1 -1
- package/build/utils/parse-css-unit-to-px.js.map +1 -1
- package/build-module/components/alignment-control/ui.js +6 -5
- package/build-module/components/alignment-control/ui.js.map +1 -1
- package/build-module/components/autocomplete/index.js +2 -2
- package/build-module/components/autocomplete/index.js.map +1 -1
- package/build-module/components/block-actions/index.js +5 -8
- package/build-module/components/block-actions/index.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.js +5 -5
- package/build-module/components/block-alignment-control/ui.js.map +1 -1
- package/build-module/components/block-content-overlay/index.js +2 -4
- package/build-module/components/block-content-overlay/index.js.map +1 -1
- package/build-module/components/block-draggable/draggable-chip.js +2 -1
- package/build-module/components/block-draggable/draggable-chip.js.map +1 -1
- package/build-module/components/block-edit/edit.js +1 -1
- package/build-module/components/block-edit/edit.js.map +1 -1
- package/build-module/components/block-inspector/index.js +127 -19
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block-list-compact.native.js +2 -1
- package/build-module/components/block-list/block-list-compact.native.js.map +1 -1
- package/build-module/components/block-list/block.js +41 -9
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/index.js +4 -4
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +13 -11
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-block-class-names.js +3 -2
- package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js +3 -8
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-is-hovered.js +1 -2
- package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +7 -12
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-list-appender/index.js +20 -20
- package/build-module/components/block-list-appender/index.js.map +1 -1
- package/build-module/components/block-list-appender/index.native.js +1 -6
- package/build-module/components/block-list-appender/index.native.js.map +1 -1
- package/build-module/components/block-lock/use-block-lock.js +3 -1
- package/build-module/components/block-lock/use-block-lock.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +20 -9
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build-module/components/block-mover/button.js +4 -5
- package/build-module/components/block-mover/button.js.map +1 -1
- package/build-module/components/block-mover/index.js +4 -5
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-mover/index.native.js +24 -7
- package/build-module/components/block-mover/index.native.js.map +1 -1
- package/build-module/components/block-popover/inbetween.js +83 -53
- package/build-module/components/block-popover/inbetween.js.map +1 -1
- package/build-module/components/block-popover/index.js +31 -7
- package/build-module/components/block-popover/index.js.map +1 -1
- package/build-module/components/block-preview/auto.js +4 -2
- package/build-module/components/block-preview/auto.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +3 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +3 -1
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-styles/preview-panel.js +6 -1
- package/build-module/components/block-styles/preview-panel.js.map +1 -1
- package/build-module/components/block-switcher/block-transformations-menu.js +115 -27
- package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +9 -8
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js +3 -2
- package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +12 -5
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/index.js +30 -15
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +4 -9
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-tools/selected-block-popover.js +9 -8
- package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
- package/build-module/components/block-tools/use-block-toolbar-popover-props.js +13 -8
- package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-mode-inserters.js +59 -0
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -0
- package/build-module/components/block-vertical-alignment-control/ui.js +5 -2
- package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
- package/build-module/components/border-radius-control/linked-button.js +5 -6
- package/build-module/components/border-radius-control/linked-button.js.map +1 -1
- package/build-module/components/colors-gradients/dropdown.js +1 -1
- package/build-module/components/colors-gradients/dropdown.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/toolbar.js +8 -3
- package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
- package/build-module/components/iframe/index.js +32 -5
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/inner-blocks/default-block-appender.js +1 -6
- package/build-module/components/inner-blocks/default-block-appender.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +9 -3
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js +28 -17
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build-module/components/inner-blocks/use-nested-settings-update.js +28 -4
- package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build-module/components/inserter/index.js +3 -6
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/library.js +14 -3
- package/build-module/components/inserter/library.js.map +1 -1
- package/build-module/components/inserter/menu.js +20 -8
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/preview-panel.js +1 -1
- package/build-module/components/inserter/preview-panel.js.map +1 -1
- package/build-module/components/inserter/tabs.js +11 -4
- package/build-module/components/inserter/tabs.js.map +1 -1
- package/build-module/components/link-control/link-preview.js +1 -1
- package/build-module/components/link-control/link-preview.js.map +1 -1
- package/build-module/components/link-control/search-input.js +6 -2
- package/build-module/components/link-control/search-input.js.map +1 -1
- package/build-module/components/link-control/search-item.js +37 -6
- package/build-module/components/link-control/search-item.js.map +1 -1
- package/build-module/components/list-view/block.js +23 -11
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +19 -3
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/drop-indicator.js +30 -28
- package/build-module/components/list-view/drop-indicator.js.map +1 -1
- package/build-module/components/list-view/index.js +8 -4
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/list-view/use-block-selection.js +0 -1
- package/build-module/components/list-view/use-block-selection.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +1 -6
- package/build-module/components/provider/use-block-sync.js.map +1 -1
- package/build-module/components/publish-date-time-picker/index.js +1 -1
- package/build-module/components/publish-date-time-picker/index.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar-container.js +10 -10
- package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build-module/components/rich-text/index.js +31 -20
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +11 -18
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/spacing-sizes-control/linked-button.js +2 -3
- package/build-module/components/spacing-sizes-control/linked-button.js.map +1 -1
- package/build-module/components/spacing-sizes-control/utils.js +1 -4
- package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
- package/build-module/components/text-decoration-control/index.js +21 -16
- package/build-module/components/text-decoration-control/index.js.map +1 -1
- package/build-module/components/text-transform-control/index.js +28 -20
- package/build-module/components/text-transform-control/index.js.map +1 -1
- package/build-module/components/tool-selector/index.js +6 -11
- package/build-module/components/tool-selector/index.js.map +1 -1
- package/build-module/components/url-popover/image-url-input-ui.js +6 -4
- package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build-module/components/url-popover/index.js +1 -1
- package/build-module/components/url-popover/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +7 -4
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-moving-animation/index.js +9 -28
- package/build-module/components/use-moving-animation/index.js.map +1 -1
- package/build-module/components/writing-flow/use-select-all.js +1 -6
- package/build-module/components/writing-flow/use-select-all.js.map +1 -1
- package/build-module/hooks/align.js +12 -2
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/color-panel.js +2 -1
- package/build-module/hooks/color-panel.js.map +1 -1
- package/build-module/hooks/content-lock-ui.js +128 -0
- package/build-module/hooks/content-lock-ui.js.map +1 -0
- package/build-module/hooks/duotone.js +6 -1
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/index.js +4 -0
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/layout.js +11 -9
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/metadata-name.js +45 -0
- package/build-module/hooks/metadata-name.js.map +1 -0
- package/build-module/hooks/metadata.js +50 -0
- package/build-module/hooks/metadata.js.map +1 -0
- package/build-module/hooks/typography.js +10 -11
- package/build-module/hooks/typography.js.map +1 -1
- package/build-module/hooks/use-typography-props.js +38 -0
- package/build-module/hooks/use-typography-props.js.map +1 -0
- package/build-module/hooks/utils.js +4 -2
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/index.js +1 -1
- package/build-module/index.js.map +1 -1
- package/build-module/layouts/constrained.js +61 -22
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/store/actions.js +58 -20
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/reducer.js +41 -19
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +81 -10
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/parse-css-unit-to-px.js +1 -1
- package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
- package/build-style/style-rtl.css +142 -46
- package/build-style/style.css +142 -46
- package/package.json +28 -28
- package/src/components/alignment-control/test/__snapshots__/index.js.snap +137 -108
- package/src/components/alignment-control/test/index.js +124 -33
- package/src/components/alignment-control/ui.js +8 -3
- package/src/components/autocomplete/index.js +2 -5
- package/src/components/block-actions/index.js +9 -8
- package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +108 -65
- package/src/components/block-alignment-control/test/index.js +95 -31
- package/src/components/block-alignment-control/ui.js +2 -2
- package/src/components/block-compare/test/__snapshots__/block-view.js.snap +28 -26
- package/src/components/block-compare/test/block-view.js +3 -3
- package/src/components/block-content-overlay/index.js +2 -6
- package/src/components/block-content-overlay/style.scss +24 -3
- package/src/components/block-draggable/draggable-chip.js +4 -1
- package/src/components/block-edit/edit.js +5 -1
- package/src/components/block-edit/test/edit.js +23 -21
- package/src/components/block-icon/test/__snapshots__/index.js.snap +22 -0
- package/src/components/block-icon/test/index.js +31 -16
- package/src/components/block-inspector/index.js +126 -12
- package/src/components/block-inspector/style.scss +7 -1
- package/src/components/block-list/block-list-compact.native.js +1 -1
- package/src/components/block-list/block.js +53 -13
- package/src/components/block-list/index.js +4 -4
- package/src/components/block-list/style.scss +57 -11
- package/src/components/block-list/test/block-list-context.native.js +11 -13
- package/src/components/block-list/use-block-props/index.js +10 -10
- package/src/components/block-list/use-block-props/use-block-class-names.js +4 -1
- package/src/components/block-list/use-block-props/use-focus-first-element.js +3 -8
- package/src/components/block-list/use-block-props/use-is-hovered.js +2 -2
- package/src/components/block-list/use-in-between-inserter.js +11 -13
- package/src/components/block-list-appender/index.js +27 -18
- package/src/components/block-list-appender/index.native.js +3 -6
- package/src/components/block-lock/use-block-lock.js +2 -0
- package/src/components/block-mobile-toolbar/block-actions-menu.native.js +15 -9
- package/src/components/block-mover/button.js +6 -5
- package/src/components/block-mover/index.js +8 -7
- package/src/components/block-mover/index.native.js +20 -13
- package/src/components/block-popover/inbetween.js +124 -62
- package/src/components/block-popover/index.js +47 -8
- package/src/components/block-popover/style.scss +3 -4
- package/src/components/block-preview/auto.js +4 -2
- package/src/components/block-settings-menu/block-settings-dropdown.js +4 -0
- package/src/components/block-settings-menu-controls/README.md +9 -0
- package/src/components/block-settings-menu-controls/index.js +13 -2
- package/src/components/block-styles/preview-panel.js +3 -0
- package/src/components/block-switcher/block-transformations-menu.js +127 -33
- package/src/components/block-switcher/style.scss +4 -2
- package/src/components/block-title/test/index.js +28 -25
- package/src/components/block-toolbar/index.js +27 -17
- package/src/components/block-tools/block-contextual-toolbar.js +10 -3
- package/src/components/block-tools/block-selection-button.js +35 -16
- package/src/components/block-tools/index.js +40 -24
- package/src/components/block-tools/insertion-point.js +3 -7
- package/src/components/block-tools/selected-block-popover.js +9 -7
- package/src/components/block-tools/style.scss +5 -0
- package/src/components/block-tools/use-block-toolbar-popover-props.js +19 -6
- package/src/components/block-tools/zoom-out-mode-inserters.js +57 -0
- package/src/components/block-vertical-alignment-control/test/__snapshots__/index.js.snap +91 -51
- package/src/components/block-vertical-alignment-control/test/index.js +92 -23
- package/src/components/block-vertical-alignment-control/ui.js +3 -2
- package/src/components/border-radius-control/linked-button.js +12 -11
- package/src/components/color-palette/test/__snapshots__/control.js.snap +3 -12
- package/src/components/colors/test/with-colors.js +37 -12
- package/src/components/colors-gradients/dropdown.js +1 -1
- package/src/components/contrast-checker/test/index.js +135 -116
- package/src/components/convert-to-group-buttons/toolbar.js +6 -2
- package/src/components/default-block-appender/test/__snapshots__/index.js.snap +39 -57
- package/src/components/default-block-appender/test/index.js +32 -18
- package/src/components/font-sizes/README.MD +9 -0
- package/src/components/iframe/index.js +64 -5
- package/src/components/inner-blocks/README.md +2 -1
- package/src/components/inner-blocks/default-block-appender.js +1 -6
- package/src/components/inner-blocks/index.js +10 -2
- package/src/components/inner-blocks/use-inner-block-template-sync.js +40 -25
- package/src/components/inner-blocks/use-nested-settings-update.js +32 -3
- package/src/components/inserter/index.js +2 -8
- package/src/components/inserter/library.js +11 -5
- package/src/components/inserter/menu.js +42 -29
- package/src/components/inserter/preview-panel.js +1 -1
- package/src/components/inserter/stories/fixtures.js +44 -0
- package/src/components/inserter/stories/index.js +90 -0
- package/src/components/inserter/style.scss +21 -27
- package/src/components/inserter/tabs.js +8 -4
- package/src/components/link-control/link-preview.js +5 -3
- package/src/components/link-control/search-input.js +2 -2
- package/src/components/link-control/search-item.js +39 -7
- package/src/components/list-view/block.js +29 -10
- package/src/components/list-view/branch.js +27 -4
- package/src/components/list-view/drop-indicator.js +33 -32
- package/src/components/list-view/index.js +8 -3
- package/src/components/list-view/use-block-selection.js +0 -1
- package/src/components/media-placeholder/test/index.js +2 -2
- package/src/components/media-replace-flow/README.md +1 -1
- package/src/components/provider/use-block-sync.js +3 -6
- package/src/components/publish-date-time-picker/index.js +1 -1
- package/src/components/rich-text/format-toolbar-container.js +18 -10
- package/src/components/rich-text/index.js +26 -37
- package/src/components/rich-text/index.native.js +8 -21
- package/src/components/spacing-sizes-control/linked-button.js +2 -3
- package/src/components/spacing-sizes-control/style.scss +4 -1
- package/src/components/spacing-sizes-control/utils.js +1 -8
- package/src/components/text-decoration-control/index.js +31 -23
- package/src/components/text-decoration-control/style.scss +18 -0
- package/src/components/text-transform-control/index.js +42 -26
- package/src/components/text-transform-control/style.scss +18 -0
- package/src/components/tool-selector/index.js +9 -11
- package/src/components/url-input/test/button.js +145 -71
- package/src/components/url-popover/image-url-input-ui.js +5 -3
- package/src/components/url-popover/index.js +1 -1
- package/src/components/url-popover/test/__snapshots__/index.js.snap +108 -80
- package/src/components/url-popover/test/index.js +14 -12
- package/src/components/use-block-drop-zone/index.js +15 -4
- package/src/components/use-moving-animation/index.js +9 -24
- package/src/components/warning/test/__snapshots__/index.js.snap +11 -14
- package/src/components/warning/test/index.js +32 -29
- package/src/components/writing-flow/use-select-all.js +4 -6
- package/src/hooks/align.js +22 -13
- package/src/hooks/color-panel.js +2 -1
- package/src/hooks/content-lock-ui.js +161 -0
- package/src/hooks/duotone.js +13 -1
- package/src/hooks/index.js +4 -0
- package/src/hooks/layout.js +25 -19
- package/src/hooks/layout.scss +7 -1
- package/src/hooks/metadata-name.js +48 -0
- package/src/hooks/metadata.js +64 -0
- package/src/hooks/test/use-typography-props.js +28 -0
- package/src/hooks/typography.js +13 -14
- package/src/hooks/use-typography-props.js +41 -0
- package/src/hooks/utils.js +2 -11
- package/src/index.js +1 -0
- package/src/layouts/constrained.js +73 -24
- package/src/store/actions.js +45 -4
- package/src/store/reducer.js +36 -21
- package/src/store/selectors.js +99 -20
- package/src/store/test/reducer.js +8 -5
- package/src/store/test/selectors.js +4 -4
- package/src/style.scss +2 -0
- package/src/utils/parse-css-unit-to-px.js +1 -1
- package/src/components/colors/test/__snapshots__/with-colors.js.snap +0 -23
|
@@ -61,7 +61,7 @@ function useLayoutClasses(layout, layoutDefinitions) {
|
|
|
61
61
|
layoutClassnames.push(layoutDefinitions === null || layoutDefinitions === void 0 ? void 0 : (_layoutDefinitions2 = layoutDefinitions[(layout === null || layout === void 0 ? void 0 : layout.type) || 'default']) === null || _layoutDefinitions2 === void 0 ? void 0 : _layoutDefinitions2.className);
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
if ((layout !== null && layout !== void 0 && layout.inherit || layout !== null && layout !== void 0 && layout.contentSize) && rootPaddingAlignment) {
|
|
64
|
+
if ((layout !== null && layout !== void 0 && layout.inherit || layout !== null && layout !== void 0 && layout.contentSize || (layout === null || layout === void 0 ? void 0 : layout.type) === 'constrained') && rootPaddingAlignment) {
|
|
65
65
|
layoutClassnames.push('has-global-padding');
|
|
66
66
|
}
|
|
67
67
|
|
|
@@ -130,6 +130,8 @@ function LayoutPanel(_ref) {
|
|
|
130
130
|
|
|
131
131
|
const layoutType = getLayoutType(type);
|
|
132
132
|
const constrainedType = getLayoutType('constrained');
|
|
133
|
+
const displayControlsForLegacyLayouts = !usedLayout.type && (contentSize || inherit);
|
|
134
|
+
const hasContentSizeOrLegacySettings = !!inherit || !!contentSize;
|
|
133
135
|
|
|
134
136
|
const onChangeType = newType => setAttributes({
|
|
135
137
|
layout: {
|
|
@@ -144,23 +146,23 @@ function LayoutPanel(_ref) {
|
|
|
144
146
|
return createElement(Fragment, null, createElement(InspectorControls, null, createElement(PanelBody, {
|
|
145
147
|
title: __('Layout')
|
|
146
148
|
}, showInheritToggle && createElement(Fragment, null, createElement(ToggleControl, {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
+
className: "block-editor-hooks__toggle-control",
|
|
150
|
+
label: __('Inner blocks use content width'),
|
|
151
|
+
checked: (layoutType === null || layoutType === void 0 ? void 0 : layoutType.name) === 'constrained' || hasContentSizeOrLegacySettings,
|
|
149
152
|
onChange: () => setAttributes({
|
|
150
153
|
layout: {
|
|
151
|
-
type: (layoutType === null || layoutType === void 0 ? void 0 : layoutType.name) === 'constrained' ? 'default' : 'constrained'
|
|
154
|
+
type: (layoutType === null || layoutType === void 0 ? void 0 : layoutType.name) === 'constrained' || hasContentSizeOrLegacySettings ? 'default' : 'constrained'
|
|
152
155
|
}
|
|
153
|
-
})
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
}, !!inherit || (layoutType === null || layoutType === void 0 ? void 0 : layoutType.name) === 'constrained' ? __('Nested blocks use theme content width with options for full and wide widths.') : __('Nested blocks will fill the width of this container.'))), !inherit && allowSwitching && createElement(LayoutTypeSwitcher, {
|
|
156
|
+
}),
|
|
157
|
+
help: (layoutType === null || layoutType === void 0 ? void 0 : layoutType.name) === 'constrained' || hasContentSizeOrLegacySettings ? __('Nested blocks use content width with options for full and wide widths.') : __('Nested blocks will fill the width of this container. Toggle to constrain.')
|
|
158
|
+
})), !inherit && allowSwitching && createElement(LayoutTypeSwitcher, {
|
|
157
159
|
type: type,
|
|
158
160
|
onChange: onChangeType
|
|
159
161
|
}), layoutType && layoutType.name !== 'default' && createElement(layoutType.inspectorControls, {
|
|
160
162
|
layout: usedLayout,
|
|
161
163
|
onChange: onChangeLayout,
|
|
162
164
|
layoutBlockSupport: layoutBlockSupport
|
|
163
|
-
}), constrainedType &&
|
|
165
|
+
}), constrainedType && displayControlsForLegacyLayouts && createElement(constrainedType.inspectorControls, {
|
|
164
166
|
layout: usedLayout,
|
|
165
167
|
onChange: onChangeLayout,
|
|
166
168
|
layoutBlockSupport: layoutBlockSupport
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/hooks/layout.js"],"names":["classnames","kebabCase","createHigherOrderComponent","useInstanceId","addFilter","getBlockDefaultClassName","getBlockSupport","hasBlockSupport","useSelect","Button","ButtonGroup","ToggleControl","PanelBody","__","useContext","createPortal","store","blockEditorStore","InspectorControls","useSetting","LayoutStyle","BlockList","getLayoutType","getLayoutTypes","layoutBlockSupportKey","useLayoutClasses","layout","layoutDefinitions","rootPaddingAlignment","select","getSettings","__experimentalFeatures","useRootPaddingAwareAlignments","layoutClassnames","type","className","push","inherit","contentSize","orientation","justifyContent","flexWrap","LayoutPanel","setAttributes","attributes","name","blockName","defaultThemeLayout","themeSupportsLayout","supportsLayout","layoutBlockSupport","allowSwitching","allowEditing","allowInheriting","default","defaultBlockLayout","showInheritToggle","usedLayout","layoutType","constrainedType","onChangeType","newType","onChangeLayout","newLayout","LayoutTypeSwitcher","onChange","map","label","addAttribute","settings","withInspectorControls","BlockEdit","props","supportLayout","withLayoutStyles","BlockListBlock","hasLayoutBlockSupport","disableLayoutStyles","shouldRenderLayoutStyles","id","element","__unstableElementContext","wideSize","layoutClasses","definitions","selector","blockGapSupport","hasBlockGapSupport","css","fullLayoutType","getLayoutStyle","style"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { kebabCase } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { createHigherOrderComponent, useInstanceId } from '@wordpress/compose';\nimport { addFilter } from '@wordpress/hooks';\nimport {\n\tgetBlockDefaultClassName,\n\tgetBlockSupport,\n\thasBlockSupport,\n} from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tButton,\n\tButtonGroup,\n\tToggleControl,\n\tPanelBody,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useContext, createPortal } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../store';\nimport { InspectorControls } from '../components';\nimport useSetting from '../components/use-setting';\nimport { LayoutStyle } from '../components/block-list/layout';\nimport BlockList from '../components/block-list';\nimport { getLayoutType, getLayoutTypes } from '../layouts';\n\nconst layoutBlockSupportKey = '__experimentalLayout';\n\n/**\n * Generates the utility classnames for the given blocks layout attributes.\n * This method was primarily added to reintroduce classnames that were removed\n * in the 5.9 release (https://github.com/WordPress/gutenberg/issues/38719), rather\n * than providing an extensive list of all possible layout classes. The plan is to\n * have the style engine generate a more extensive list of utility classnames which\n * will then replace this method.\n *\n * @param { Object } layout Layout object.\n * @param { Object } layoutDefinitions An object containing layout definitions, stored in theme.json.\n *\n * @return { Array } Array of CSS classname strings.\n */\nfunction useLayoutClasses( layout, layoutDefinitions ) {\n\tconst rootPaddingAlignment = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().__experimentalFeatures\n\t\t\t?.useRootPaddingAwareAlignments;\n\t}, [] );\n\tconst layoutClassnames = [];\n\n\tif ( layoutDefinitions?.[ layout?.type || 'default' ]?.className ) {\n\t\tlayoutClassnames.push(\n\t\t\tlayoutDefinitions?.[ layout?.type || 'default' ]?.className\n\t\t);\n\t}\n\n\tif ( ( layout?.inherit || layout?.contentSize ) && rootPaddingAlignment ) {\n\t\tlayoutClassnames.push( 'has-global-padding' );\n\t}\n\n\tif ( layout?.orientation ) {\n\t\tlayoutClassnames.push( `is-${ kebabCase( layout.orientation ) }` );\n\t}\n\n\tif ( layout?.justifyContent ) {\n\t\tlayoutClassnames.push(\n\t\t\t`is-content-justification-${ kebabCase( layout.justifyContent ) }`\n\t\t);\n\t}\n\n\tif ( layout?.flexWrap && layout.flexWrap === 'nowrap' ) {\n\t\tlayoutClassnames.push( 'is-nowrap' );\n\t}\n\n\treturn layoutClassnames;\n}\n\nfunction LayoutPanel( { setAttributes, attributes, name: blockName } ) {\n\tconst { layout } = attributes;\n\tconst defaultThemeLayout = useSetting( 'layout' );\n\tconst themeSupportsLayout = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().supportsLayout;\n\t}, [] );\n\n\tconst layoutBlockSupport = getBlockSupport(\n\t\tblockName,\n\t\tlayoutBlockSupportKey,\n\t\t{}\n\t);\n\tconst {\n\t\tallowSwitching,\n\t\tallowEditing = true,\n\t\tallowInheriting = true,\n\t\tdefault: defaultBlockLayout,\n\t} = layoutBlockSupport;\n\n\tif ( ! allowEditing ) {\n\t\treturn null;\n\t}\n\n\t// Only show the inherit toggle if it's supported,\n\t// a default theme layout is set (e.g. one that provides `contentSize` and/or `wideSize` values),\n\t// and either the default / flow or the constrained layout type is in use, as the toggle switches from one to the other.\n\tconst showInheritToggle = !! (\n\t\tallowInheriting &&\n\t\t!! defaultThemeLayout &&\n\t\t( ! layout?.type ||\n\t\t\tlayout?.type === 'default' ||\n\t\t\tlayout?.type === 'constrained' ||\n\t\t\tlayout?.inherit )\n\t);\n\n\tconst usedLayout = layout || defaultBlockLayout || {};\n\tconst {\n\t\tinherit = false,\n\t\ttype = 'default',\n\t\tcontentSize = null,\n\t} = usedLayout;\n\t/**\n\t * `themeSupportsLayout` is only relevant to the `default/flow` or\n\t * `constrained` layouts and it should not be taken into account when other\n\t * `layout` types are used.\n\t */\n\tif (\n\t\t( type === 'default' || type === 'constrained' ) &&\n\t\t! themeSupportsLayout\n\t) {\n\t\treturn null;\n\t}\n\tconst layoutType = getLayoutType( type );\n\n\tconst constrainedType = getLayoutType( 'constrained' );\n\n\tconst onChangeType = ( newType ) =>\n\t\tsetAttributes( { layout: { type: newType } } );\n\tconst onChangeLayout = ( newLayout ) =>\n\t\tsetAttributes( { layout: newLayout } );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Layout' ) }>\n\t\t\t\t\t{ showInheritToggle && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t'Inner blocks respect content width'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tchecked={\n\t\t\t\t\t\t\t\t\tlayoutType?.name === 'constrained' ||\n\t\t\t\t\t\t\t\t\t!! inherit ||\n\t\t\t\t\t\t\t\t\t!! contentSize\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\t\t\t\t\ttype:\n\t\t\t\t\t\t\t\t\t\t\t\tlayoutType?.name ===\n\t\t\t\t\t\t\t\t\t\t\t\t'constrained'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? 'default'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: 'constrained',\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<p className=\"block-editor-hooks__layout-controls-helptext\">\n\t\t\t\t\t\t\t\t{ !! inherit ||\n\t\t\t\t\t\t\t\tlayoutType?.name === 'constrained'\n\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t'Nested blocks use theme content width with options for full and wide widths.'\n\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\t'Nested blocks will fill the width of this container.'\n\t\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ ! inherit && allowSwitching && (\n\t\t\t\t\t\t<LayoutTypeSwitcher\n\t\t\t\t\t\t\ttype={ type }\n\t\t\t\t\t\t\tonChange={ onChangeType }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ layoutType && layoutType.name !== 'default' && (\n\t\t\t\t\t\t<layoutType.inspectorControls\n\t\t\t\t\t\t\tlayout={ usedLayout }\n\t\t\t\t\t\t\tonChange={ onChangeLayout }\n\t\t\t\t\t\t\tlayoutBlockSupport={ layoutBlockSupport }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ constrainedType && !! contentSize && (\n\t\t\t\t\t\t<constrainedType.inspectorControls\n\t\t\t\t\t\t\tlayout={ usedLayout }\n\t\t\t\t\t\t\tonChange={ onChangeLayout }\n\t\t\t\t\t\t\tlayoutBlockSupport={ layoutBlockSupport }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ ! inherit && layoutType && (\n\t\t\t\t<layoutType.toolBarControls\n\t\t\t\t\tlayout={ usedLayout }\n\t\t\t\t\tonChange={ onChangeLayout }\n\t\t\t\t\tlayoutBlockSupport={ layoutBlockSupport }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction LayoutTypeSwitcher( { type, onChange } ) {\n\treturn (\n\t\t<ButtonGroup>\n\t\t\t{ getLayoutTypes().map( ( { name, label } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tkey={ name }\n\t\t\t\t\t\tisPressed={ type === name }\n\t\t\t\t\t\tonClick={ () => onChange( name ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ButtonGroup>\n\t);\n}\n\n/**\n * Filters registered block settings, extending attributes to include `layout`.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addAttribute( settings ) {\n\tif ( 'type' in ( settings.attributes?.layout ?? {} ) ) {\n\t\treturn settings;\n\t}\n\tif ( hasBlockSupport( settings, layoutBlockSupportKey ) ) {\n\t\tsettings.attributes = {\n\t\t\t...settings.attributes,\n\t\t\tlayout: {\n\t\t\t\ttype: 'object',\n\t\t\t},\n\t\t};\n\t}\n\n\treturn settings;\n}\n\n/**\n * Override the default edit UI to include layout controls\n *\n * @param {Function} BlockEdit Original component.\n *\n * @return {Function} Wrapped component.\n */\nexport const withInspectorControls = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst { name: blockName } = props;\n\t\tconst supportLayout = hasBlockSupport(\n\t\t\tblockName,\n\t\t\tlayoutBlockSupportKey\n\t\t);\n\n\t\treturn [\n\t\t\tsupportLayout && <LayoutPanel key=\"layout\" { ...props } />,\n\t\t\t<BlockEdit key=\"edit\" { ...props } />,\n\t\t];\n\t},\n\t'withInspectorControls'\n);\n\n/**\n * Override the default block element to add the layout styles.\n *\n * @param {Function} BlockListBlock Original component.\n *\n * @return {Function} Wrapped component.\n */\nexport const withLayoutStyles = createHigherOrderComponent(\n\t( BlockListBlock ) => ( props ) => {\n\t\tconst { name, attributes } = props;\n\t\tconst hasLayoutBlockSupport = hasBlockSupport(\n\t\t\tname,\n\t\t\tlayoutBlockSupportKey\n\t\t);\n\t\tconst disableLayoutStyles = useSelect( ( select ) => {\n\t\t\tconst { getSettings } = select( blockEditorStore );\n\t\t\treturn !! getSettings().disableLayoutStyles;\n\t\t} );\n\t\tconst shouldRenderLayoutStyles =\n\t\t\thasLayoutBlockSupport && ! disableLayoutStyles;\n\t\tconst id = useInstanceId( BlockListBlock );\n\t\tconst defaultThemeLayout = useSetting( 'layout' ) || {};\n\t\tconst element = useContext( BlockList.__unstableElementContext );\n\t\tconst { layout } = attributes;\n\t\tconst { default: defaultBlockLayout } =\n\t\t\tgetBlockSupport( name, layoutBlockSupportKey ) || {};\n\t\tconst usedLayout =\n\t\t\tlayout?.inherit || layout?.contentSize || layout?.wideSize\n\t\t\t\t? { ...layout, type: 'constrained' }\n\t\t\t\t: layout || defaultBlockLayout || {};\n\t\tconst layoutClasses = hasLayoutBlockSupport\n\t\t\t? useLayoutClasses( usedLayout, defaultThemeLayout?.definitions )\n\t\t\t: null;\n\t\tconst selector = `.${ getBlockDefaultClassName(\n\t\t\tname\n\t\t) }.wp-container-${ id }`;\n\t\tconst blockGapSupport = useSetting( 'spacing.blockGap' );\n\t\tconst hasBlockGapSupport = blockGapSupport !== null;\n\n\t\t// Get CSS string for the current layout type.\n\t\t// The CSS and `style` element is only output if it is not empty.\n\t\tlet css;\n\t\tif ( shouldRenderLayoutStyles ) {\n\t\t\tconst fullLayoutType = getLayoutType(\n\t\t\t\tusedLayout?.type || 'default'\n\t\t\t);\n\t\t\tcss = fullLayoutType?.getLayoutStyle?.( {\n\t\t\t\tblockName: name,\n\t\t\t\tselector,\n\t\t\t\tlayout: usedLayout,\n\t\t\t\tlayoutDefinitions: defaultThemeLayout?.definitions,\n\t\t\t\tstyle: attributes?.style,\n\t\t\t\thasBlockGapSupport,\n\t\t\t} );\n\t\t}\n\n\t\t// Attach a `wp-container-` id-based class name as well as a layout class name such as `is-layout-flex`.\n\t\tconst className = classnames(\n\t\t\tprops?.className,\n\t\t\t{\n\t\t\t\t[ `wp-container-${ id }` ]: shouldRenderLayoutStyles && !! css, // Only attach a container class if there is generated CSS to be attached.\n\t\t\t},\n\t\t\tlayoutClasses\n\t\t);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ shouldRenderLayoutStyles &&\n\t\t\t\t\telement &&\n\t\t\t\t\t!! css &&\n\t\t\t\t\tcreatePortal(\n\t\t\t\t\t\t<LayoutStyle\n\t\t\t\t\t\t\tblockName={ name }\n\t\t\t\t\t\t\tselector={ selector }\n\t\t\t\t\t\t\tcss={ css }\n\t\t\t\t\t\t\tlayout={ usedLayout }\n\t\t\t\t\t\t\tstyle={ attributes?.style }\n\t\t\t\t\t\t/>,\n\t\t\t\t\t\telement\n\t\t\t\t\t) }\n\t\t\t\t<BlockListBlock { ...props } className={ className } />\n\t\t\t</>\n\t\t);\n\t}\n);\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/layout/addAttribute',\n\taddAttribute\n);\naddFilter(\n\t'editor.BlockListBlock',\n\t'core/editor/layout/with-layout-styles',\n\twithLayoutStyles\n);\naddFilter(\n\t'editor.BlockEdit',\n\t'core/editor/layout/with-inspector-controls',\n\twithInspectorControls\n);\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/hooks/layout.js"],"names":["classnames","kebabCase","createHigherOrderComponent","useInstanceId","addFilter","getBlockDefaultClassName","getBlockSupport","hasBlockSupport","useSelect","Button","ButtonGroup","ToggleControl","PanelBody","__","useContext","createPortal","store","blockEditorStore","InspectorControls","useSetting","LayoutStyle","BlockList","getLayoutType","getLayoutTypes","layoutBlockSupportKey","useLayoutClasses","layout","layoutDefinitions","rootPaddingAlignment","select","getSettings","__experimentalFeatures","useRootPaddingAwareAlignments","layoutClassnames","type","className","push","inherit","contentSize","orientation","justifyContent","flexWrap","LayoutPanel","setAttributes","attributes","name","blockName","defaultThemeLayout","themeSupportsLayout","supportsLayout","layoutBlockSupport","allowSwitching","allowEditing","allowInheriting","default","defaultBlockLayout","showInheritToggle","usedLayout","layoutType","constrainedType","displayControlsForLegacyLayouts","hasContentSizeOrLegacySettings","onChangeType","newType","onChangeLayout","newLayout","LayoutTypeSwitcher","onChange","map","label","addAttribute","settings","withInspectorControls","BlockEdit","props","supportLayout","withLayoutStyles","BlockListBlock","hasLayoutBlockSupport","disableLayoutStyles","shouldRenderLayoutStyles","id","element","__unstableElementContext","wideSize","layoutClasses","definitions","selector","blockGapSupport","hasBlockGapSupport","css","fullLayoutType","getLayoutStyle","style"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { kebabCase } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { createHigherOrderComponent, useInstanceId } from '@wordpress/compose';\nimport { addFilter } from '@wordpress/hooks';\nimport {\n\tgetBlockDefaultClassName,\n\tgetBlockSupport,\n\thasBlockSupport,\n} from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tButton,\n\tButtonGroup,\n\tToggleControl,\n\tPanelBody,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useContext, createPortal } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../store';\nimport { InspectorControls } from '../components';\nimport useSetting from '../components/use-setting';\nimport { LayoutStyle } from '../components/block-list/layout';\nimport BlockList from '../components/block-list';\nimport { getLayoutType, getLayoutTypes } from '../layouts';\n\nconst layoutBlockSupportKey = '__experimentalLayout';\n\n/**\n * Generates the utility classnames for the given blocks layout attributes.\n * This method was primarily added to reintroduce classnames that were removed\n * in the 5.9 release (https://github.com/WordPress/gutenberg/issues/38719), rather\n * than providing an extensive list of all possible layout classes. The plan is to\n * have the style engine generate a more extensive list of utility classnames which\n * will then replace this method.\n *\n * @param { Object } layout Layout object.\n * @param { Object } layoutDefinitions An object containing layout definitions, stored in theme.json.\n *\n * @return { Array } Array of CSS classname strings.\n */\nfunction useLayoutClasses( layout, layoutDefinitions ) {\n\tconst rootPaddingAlignment = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().__experimentalFeatures\n\t\t\t?.useRootPaddingAwareAlignments;\n\t}, [] );\n\tconst layoutClassnames = [];\n\n\tif ( layoutDefinitions?.[ layout?.type || 'default' ]?.className ) {\n\t\tlayoutClassnames.push(\n\t\t\tlayoutDefinitions?.[ layout?.type || 'default' ]?.className\n\t\t);\n\t}\n\n\tif (\n\t\t( layout?.inherit ||\n\t\t\tlayout?.contentSize ||\n\t\t\tlayout?.type === 'constrained' ) &&\n\t\trootPaddingAlignment\n\t) {\n\t\tlayoutClassnames.push( 'has-global-padding' );\n\t}\n\n\tif ( layout?.orientation ) {\n\t\tlayoutClassnames.push( `is-${ kebabCase( layout.orientation ) }` );\n\t}\n\n\tif ( layout?.justifyContent ) {\n\t\tlayoutClassnames.push(\n\t\t\t`is-content-justification-${ kebabCase( layout.justifyContent ) }`\n\t\t);\n\t}\n\n\tif ( layout?.flexWrap && layout.flexWrap === 'nowrap' ) {\n\t\tlayoutClassnames.push( 'is-nowrap' );\n\t}\n\n\treturn layoutClassnames;\n}\n\nfunction LayoutPanel( { setAttributes, attributes, name: blockName } ) {\n\tconst { layout } = attributes;\n\tconst defaultThemeLayout = useSetting( 'layout' );\n\tconst themeSupportsLayout = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().supportsLayout;\n\t}, [] );\n\n\tconst layoutBlockSupport = getBlockSupport(\n\t\tblockName,\n\t\tlayoutBlockSupportKey,\n\t\t{}\n\t);\n\tconst {\n\t\tallowSwitching,\n\t\tallowEditing = true,\n\t\tallowInheriting = true,\n\t\tdefault: defaultBlockLayout,\n\t} = layoutBlockSupport;\n\n\tif ( ! allowEditing ) {\n\t\treturn null;\n\t}\n\n\t// Only show the inherit toggle if it's supported,\n\t// a default theme layout is set (e.g. one that provides `contentSize` and/or `wideSize` values),\n\t// and either the default / flow or the constrained layout type is in use, as the toggle switches from one to the other.\n\tconst showInheritToggle = !! (\n\t\tallowInheriting &&\n\t\t!! defaultThemeLayout &&\n\t\t( ! layout?.type ||\n\t\t\tlayout?.type === 'default' ||\n\t\t\tlayout?.type === 'constrained' ||\n\t\t\tlayout?.inherit )\n\t);\n\n\tconst usedLayout = layout || defaultBlockLayout || {};\n\tconst {\n\t\tinherit = false,\n\t\ttype = 'default',\n\t\tcontentSize = null,\n\t} = usedLayout;\n\t/**\n\t * `themeSupportsLayout` is only relevant to the `default/flow` or\n\t * `constrained` layouts and it should not be taken into account when other\n\t * `layout` types are used.\n\t */\n\tif (\n\t\t( type === 'default' || type === 'constrained' ) &&\n\t\t! themeSupportsLayout\n\t) {\n\t\treturn null;\n\t}\n\tconst layoutType = getLayoutType( type );\n\tconst constrainedType = getLayoutType( 'constrained' );\n\tconst displayControlsForLegacyLayouts =\n\t\t! usedLayout.type && ( contentSize || inherit );\n\tconst hasContentSizeOrLegacySettings = !! inherit || !! contentSize;\n\n\tconst onChangeType = ( newType ) =>\n\t\tsetAttributes( { layout: { type: newType } } );\n\tconst onChangeLayout = ( newLayout ) =>\n\t\tsetAttributes( { layout: newLayout } );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Layout' ) }>\n\t\t\t\t\t{ showInheritToggle && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tclassName=\"block-editor-hooks__toggle-control\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Inner blocks use content width' ) }\n\t\t\t\t\t\t\t\tchecked={\n\t\t\t\t\t\t\t\t\tlayoutType?.name === 'constrained' ||\n\t\t\t\t\t\t\t\t\thasContentSizeOrLegacySettings\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\t\t\t\t\ttype:\n\t\t\t\t\t\t\t\t\t\t\t\tlayoutType?.name ===\n\t\t\t\t\t\t\t\t\t\t\t\t\t'constrained' ||\n\t\t\t\t\t\t\t\t\t\t\t\thasContentSizeOrLegacySettings\n\t\t\t\t\t\t\t\t\t\t\t\t\t? 'default'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: 'constrained',\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\tlayoutType?.name === 'constrained' ||\n\t\t\t\t\t\t\t\t\thasContentSizeOrLegacySettings\n\t\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Nested blocks use content width with options for full and wide widths.'\n\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\t\t\t'Nested blocks will fill the width of this container. Toggle to constrain.'\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ ! inherit && allowSwitching && (\n\t\t\t\t\t\t<LayoutTypeSwitcher\n\t\t\t\t\t\t\ttype={ type }\n\t\t\t\t\t\t\tonChange={ onChangeType }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ layoutType && layoutType.name !== 'default' && (\n\t\t\t\t\t\t<layoutType.inspectorControls\n\t\t\t\t\t\t\tlayout={ usedLayout }\n\t\t\t\t\t\t\tonChange={ onChangeLayout }\n\t\t\t\t\t\t\tlayoutBlockSupport={ layoutBlockSupport }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ constrainedType && displayControlsForLegacyLayouts && (\n\t\t\t\t\t\t<constrainedType.inspectorControls\n\t\t\t\t\t\t\tlayout={ usedLayout }\n\t\t\t\t\t\t\tonChange={ onChangeLayout }\n\t\t\t\t\t\t\tlayoutBlockSupport={ layoutBlockSupport }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ ! inherit && layoutType && (\n\t\t\t\t<layoutType.toolBarControls\n\t\t\t\t\tlayout={ usedLayout }\n\t\t\t\t\tonChange={ onChangeLayout }\n\t\t\t\t\tlayoutBlockSupport={ layoutBlockSupport }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction LayoutTypeSwitcher( { type, onChange } ) {\n\treturn (\n\t\t<ButtonGroup>\n\t\t\t{ getLayoutTypes().map( ( { name, label } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tkey={ name }\n\t\t\t\t\t\tisPressed={ type === name }\n\t\t\t\t\t\tonClick={ () => onChange( name ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ButtonGroup>\n\t);\n}\n\n/**\n * Filters registered block settings, extending attributes to include `layout`.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addAttribute( settings ) {\n\tif ( 'type' in ( settings.attributes?.layout ?? {} ) ) {\n\t\treturn settings;\n\t}\n\tif ( hasBlockSupport( settings, layoutBlockSupportKey ) ) {\n\t\tsettings.attributes = {\n\t\t\t...settings.attributes,\n\t\t\tlayout: {\n\t\t\t\ttype: 'object',\n\t\t\t},\n\t\t};\n\t}\n\n\treturn settings;\n}\n\n/**\n * Override the default edit UI to include layout controls\n *\n * @param {Function} BlockEdit Original component.\n *\n * @return {Function} Wrapped component.\n */\nexport const withInspectorControls = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst { name: blockName } = props;\n\t\tconst supportLayout = hasBlockSupport(\n\t\t\tblockName,\n\t\t\tlayoutBlockSupportKey\n\t\t);\n\n\t\treturn [\n\t\t\tsupportLayout && <LayoutPanel key=\"layout\" { ...props } />,\n\t\t\t<BlockEdit key=\"edit\" { ...props } />,\n\t\t];\n\t},\n\t'withInspectorControls'\n);\n\n/**\n * Override the default block element to add the layout styles.\n *\n * @param {Function} BlockListBlock Original component.\n *\n * @return {Function} Wrapped component.\n */\nexport const withLayoutStyles = createHigherOrderComponent(\n\t( BlockListBlock ) => ( props ) => {\n\t\tconst { name, attributes } = props;\n\t\tconst hasLayoutBlockSupport = hasBlockSupport(\n\t\t\tname,\n\t\t\tlayoutBlockSupportKey\n\t\t);\n\t\tconst disableLayoutStyles = useSelect( ( select ) => {\n\t\t\tconst { getSettings } = select( blockEditorStore );\n\t\t\treturn !! getSettings().disableLayoutStyles;\n\t\t} );\n\t\tconst shouldRenderLayoutStyles =\n\t\t\thasLayoutBlockSupport && ! disableLayoutStyles;\n\t\tconst id = useInstanceId( BlockListBlock );\n\t\tconst defaultThemeLayout = useSetting( 'layout' ) || {};\n\t\tconst element = useContext( BlockList.__unstableElementContext );\n\t\tconst { layout } = attributes;\n\t\tconst { default: defaultBlockLayout } =\n\t\t\tgetBlockSupport( name, layoutBlockSupportKey ) || {};\n\t\tconst usedLayout =\n\t\t\tlayout?.inherit || layout?.contentSize || layout?.wideSize\n\t\t\t\t? { ...layout, type: 'constrained' }\n\t\t\t\t: layout || defaultBlockLayout || {};\n\t\tconst layoutClasses = hasLayoutBlockSupport\n\t\t\t? useLayoutClasses( usedLayout, defaultThemeLayout?.definitions )\n\t\t\t: null;\n\t\tconst selector = `.${ getBlockDefaultClassName(\n\t\t\tname\n\t\t) }.wp-container-${ id }`;\n\t\tconst blockGapSupport = useSetting( 'spacing.blockGap' );\n\t\tconst hasBlockGapSupport = blockGapSupport !== null;\n\n\t\t// Get CSS string for the current layout type.\n\t\t// The CSS and `style` element is only output if it is not empty.\n\t\tlet css;\n\t\tif ( shouldRenderLayoutStyles ) {\n\t\t\tconst fullLayoutType = getLayoutType(\n\t\t\t\tusedLayout?.type || 'default'\n\t\t\t);\n\t\t\tcss = fullLayoutType?.getLayoutStyle?.( {\n\t\t\t\tblockName: name,\n\t\t\t\tselector,\n\t\t\t\tlayout: usedLayout,\n\t\t\t\tlayoutDefinitions: defaultThemeLayout?.definitions,\n\t\t\t\tstyle: attributes?.style,\n\t\t\t\thasBlockGapSupport,\n\t\t\t} );\n\t\t}\n\n\t\t// Attach a `wp-container-` id-based class name as well as a layout class name such as `is-layout-flex`.\n\t\tconst className = classnames(\n\t\t\tprops?.className,\n\t\t\t{\n\t\t\t\t[ `wp-container-${ id }` ]: shouldRenderLayoutStyles && !! css, // Only attach a container class if there is generated CSS to be attached.\n\t\t\t},\n\t\t\tlayoutClasses\n\t\t);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ shouldRenderLayoutStyles &&\n\t\t\t\t\telement &&\n\t\t\t\t\t!! css &&\n\t\t\t\t\tcreatePortal(\n\t\t\t\t\t\t<LayoutStyle\n\t\t\t\t\t\t\tblockName={ name }\n\t\t\t\t\t\t\tselector={ selector }\n\t\t\t\t\t\t\tcss={ css }\n\t\t\t\t\t\t\tlayout={ usedLayout }\n\t\t\t\t\t\t\tstyle={ attributes?.style }\n\t\t\t\t\t\t/>,\n\t\t\t\t\t\telement\n\t\t\t\t\t) }\n\t\t\t\t<BlockListBlock { ...props } className={ className } />\n\t\t\t</>\n\t\t);\n\t}\n);\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/layout/addAttribute',\n\taddAttribute\n);\naddFilter(\n\t'editor.BlockListBlock',\n\t'core/editor/layout/with-layout-styles',\n\twithLayoutStyles\n);\naddFilter(\n\t'editor.BlockEdit',\n\t'core/editor/layout/with-inspector-controls',\n\twithInspectorControls\n);\n"]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { addFilter } from '@wordpress/hooks';
|
|
5
|
+
/**
|
|
6
|
+
* Internal dependencies
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { hasBlockMetadataSupport } from './metadata';
|
|
10
|
+
/**
|
|
11
|
+
* Filters registered block settings, adding an `__experimentalLabel` callback if one does not already exist.
|
|
12
|
+
*
|
|
13
|
+
* @param {Object} settings Original block settings.
|
|
14
|
+
*
|
|
15
|
+
* @return {Object} Filtered block settings.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
export function addLabelCallback(settings) {
|
|
19
|
+
// If blocks provide their own label callback, do not override it.
|
|
20
|
+
if (settings.__experimentalLabel) {
|
|
21
|
+
return settings;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const supportsBlockNaming = hasBlockMetadataSupport(settings, 'name', false // default value
|
|
25
|
+
); // Check whether block metadata is supported before using it.
|
|
26
|
+
|
|
27
|
+
if (supportsBlockNaming) {
|
|
28
|
+
settings.__experimentalLabel = (attributes, _ref) => {
|
|
29
|
+
let {
|
|
30
|
+
context
|
|
31
|
+
} = _ref;
|
|
32
|
+
const {
|
|
33
|
+
metadata
|
|
34
|
+
} = attributes; // In the list view, use the block's name attribute as the label.
|
|
35
|
+
|
|
36
|
+
if (context === 'list-view' && metadata !== null && metadata !== void 0 && metadata.name) {
|
|
37
|
+
return metadata.name;
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return settings;
|
|
43
|
+
}
|
|
44
|
+
addFilter('blocks.registerBlockType', 'core/metadata/addLabelCallback', addLabelCallback);
|
|
45
|
+
//# sourceMappingURL=metadata-name.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/hooks/metadata-name.js"],"names":["addFilter","hasBlockMetadataSupport","addLabelCallback","settings","__experimentalLabel","supportsBlockNaming","attributes","context","metadata","name"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,kBAA1B;AACA;AACA;AACA;;AACA,SAASC,uBAAT,QAAwC,YAAxC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,gBAAT,CAA2BC,QAA3B,EAAsC;AAC5C;AACA,MAAKA,QAAQ,CAACC,mBAAd,EAAoC;AACnC,WAAOD,QAAP;AACA;;AAED,QAAME,mBAAmB,GAAGJ,uBAAuB,CAClDE,QADkD,EAElD,MAFkD,EAGlD,KAHkD,CAG5C;AAH4C,GAAnD,CAN4C,CAY5C;;AACA,MAAKE,mBAAL,EAA2B;AAC1BF,IAAAA,QAAQ,CAACC,mBAAT,GAA+B,CAAEE,UAAF,WAA+B;AAAA,UAAjB;AAAEC,QAAAA;AAAF,OAAiB;AAC7D,YAAM;AAAEC,QAAAA;AAAF,UAAeF,UAArB,CAD6D,CAG7D;;AACA,UAAKC,OAAO,KAAK,WAAZ,IAA2BC,QAA3B,aAA2BA,QAA3B,eAA2BA,QAAQ,CAAEC,IAA1C,EAAiD;AAChD,eAAOD,QAAQ,CAACC,IAAhB;AACA;AACD,KAPD;AAQA;;AAED,SAAON,QAAP;AACA;AAEDH,SAAS,CACR,0BADQ,EAER,gCAFQ,EAGRE,gBAHQ,CAAT","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\n/**\n * Internal dependencies\n */\nimport { hasBlockMetadataSupport } from './metadata';\n\n/**\n * Filters registered block settings, adding an `__experimentalLabel` callback if one does not already exist.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addLabelCallback( settings ) {\n\t// If blocks provide their own label callback, do not override it.\n\tif ( settings.__experimentalLabel ) {\n\t\treturn settings;\n\t}\n\n\tconst supportsBlockNaming = hasBlockMetadataSupport(\n\t\tsettings,\n\t\t'name',\n\t\tfalse // default value\n\t);\n\n\t// Check whether block metadata is supported before using it.\n\tif ( supportsBlockNaming ) {\n\t\tsettings.__experimentalLabel = ( attributes, { context } ) => {\n\t\t\tconst { metadata } = attributes;\n\n\t\t\t// In the list view, use the block's name attribute as the label.\n\t\t\tif ( context === 'list-view' && metadata?.name ) {\n\t\t\t\treturn metadata.name;\n\t\t\t}\n\t\t};\n\t}\n\n\treturn settings;\n}\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/metadata/addLabelCallback',\n\taddLabelCallback\n);\n"]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { addFilter } from '@wordpress/hooks';
|
|
5
|
+
import { getBlockSupport } from '@wordpress/blocks';
|
|
6
|
+
const META_ATTRIBUTE_NAME = 'metadata';
|
|
7
|
+
export function hasBlockMetadataSupport(blockType) {
|
|
8
|
+
let feature = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
9
|
+
const support = getBlockSupport(blockType, '__experimentalMetadata');
|
|
10
|
+
return !!(true === support || support !== null && support !== void 0 && support[feature]);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Filters registered block settings, extending attributes to include `metadata`.
|
|
14
|
+
*
|
|
15
|
+
* see: https://github.com/WordPress/gutenberg/pull/40393/files#r864632012
|
|
16
|
+
*
|
|
17
|
+
* @param {Object} blockTypeSettings Original block settings.
|
|
18
|
+
* @return {Object} Filtered block settings.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
export function addMetaAttribute(blockTypeSettings) {
|
|
22
|
+
var _blockTypeSettings$at, _blockTypeSettings$at2;
|
|
23
|
+
|
|
24
|
+
// Allow blocks to specify their own attribute definition with default values if needed.
|
|
25
|
+
if (blockTypeSettings !== null && blockTypeSettings !== void 0 && (_blockTypeSettings$at = blockTypeSettings.attributes) !== null && _blockTypeSettings$at !== void 0 && (_blockTypeSettings$at2 = _blockTypeSettings$at[META_ATTRIBUTE_NAME]) !== null && _blockTypeSettings$at2 !== void 0 && _blockTypeSettings$at2.type) {
|
|
26
|
+
return blockTypeSettings;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const supportsBlockNaming = hasBlockMetadataSupport(blockTypeSettings, 'name', false);
|
|
30
|
+
|
|
31
|
+
if (supportsBlockNaming) {
|
|
32
|
+
blockTypeSettings.attributes = { ...blockTypeSettings.attributes,
|
|
33
|
+
[META_ATTRIBUTE_NAME]: {
|
|
34
|
+
type: 'object'
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return blockTypeSettings;
|
|
40
|
+
}
|
|
41
|
+
export function addSaveProps(extraProps, blockType, attributes) {
|
|
42
|
+
if (hasBlockMetadataSupport(blockType)) {
|
|
43
|
+
extraProps[META_ATTRIBUTE_NAME] = attributes[META_ATTRIBUTE_NAME];
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return extraProps;
|
|
47
|
+
}
|
|
48
|
+
addFilter('blocks.registerBlockType', 'core/metadata/addMetaAttribute', addMetaAttribute);
|
|
49
|
+
addFilter('blocks.getSaveContent.extraProps', 'core/metadata/save-props', addSaveProps);
|
|
50
|
+
//# sourceMappingURL=metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/hooks/metadata.js"],"names":["addFilter","getBlockSupport","META_ATTRIBUTE_NAME","hasBlockMetadataSupport","blockType","feature","support","addMetaAttribute","blockTypeSettings","attributes","type","supportsBlockNaming","addSaveProps","extraProps"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,kBAA1B;AACA,SAASC,eAAT,QAAgC,mBAAhC;AAEA,MAAMC,mBAAmB,GAAG,UAA5B;AAEA,OAAO,SAASC,uBAAT,CAAkCC,SAAlC,EAA4D;AAAA,MAAfC,OAAe,uEAAL,EAAK;AAClE,QAAMC,OAAO,GAAGL,eAAe,CAAEG,SAAF,EAAa,wBAAb,CAA/B;AACA,SAAO,CAAC,EAAI,SAASE,OAAT,IAAoBA,OAApB,aAAoBA,OAApB,eAAoBA,OAAO,CAAID,OAAJ,CAA/B,CAAR;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASE,gBAAT,CAA2BC,iBAA3B,EAA+C;AAAA;;AACrD;AACA,MAAKA,iBAAL,aAAKA,iBAAL,wCAAKA,iBAAiB,CAAEC,UAAxB,4EAAK,sBAAiCP,mBAAjC,CAAL,mDAAK,uBAAwDQ,IAA7D,EAAoE;AACnE,WAAOF,iBAAP;AACA;;AAED,QAAMG,mBAAmB,GAAGR,uBAAuB,CAClDK,iBADkD,EAElD,MAFkD,EAGlD,KAHkD,CAAnD;;AAMA,MAAKG,mBAAL,EAA2B;AAC1BH,IAAAA,iBAAiB,CAACC,UAAlB,GAA+B,EAC9B,GAAGD,iBAAiB,CAACC,UADS;AAE9B,OAAEP,mBAAF,GAAyB;AACxBQ,QAAAA,IAAI,EAAE;AADkB;AAFK,KAA/B;AAMA;;AAED,SAAOF,iBAAP;AACA;AAED,OAAO,SAASI,YAAT,CAAuBC,UAAvB,EAAmCT,SAAnC,EAA8CK,UAA9C,EAA2D;AACjE,MAAKN,uBAAuB,CAAEC,SAAF,CAA5B,EAA4C;AAC3CS,IAAAA,UAAU,CAAEX,mBAAF,CAAV,GAAoCO,UAAU,CAAEP,mBAAF,CAA9C;AACA;;AAED,SAAOW,UAAP;AACA;AAEDb,SAAS,CACR,0BADQ,EAER,gCAFQ,EAGRO,gBAHQ,CAAT;AAMAP,SAAS,CACR,kCADQ,EAER,0BAFQ,EAGRY,YAHQ,CAAT","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { getBlockSupport } from '@wordpress/blocks';\n\nconst META_ATTRIBUTE_NAME = 'metadata';\n\nexport function hasBlockMetadataSupport( blockType, feature = '' ) {\n\tconst support = getBlockSupport( blockType, '__experimentalMetadata' );\n\treturn !! ( true === support || support?.[ feature ] );\n}\n\n/**\n * Filters registered block settings, extending attributes to include `metadata`.\n *\n * see: https://github.com/WordPress/gutenberg/pull/40393/files#r864632012\n *\n * @param {Object} blockTypeSettings Original block settings.\n * @return {Object} Filtered block settings.\n */\nexport function addMetaAttribute( blockTypeSettings ) {\n\t// Allow blocks to specify their own attribute definition with default values if needed.\n\tif ( blockTypeSettings?.attributes?.[ META_ATTRIBUTE_NAME ]?.type ) {\n\t\treturn blockTypeSettings;\n\t}\n\n\tconst supportsBlockNaming = hasBlockMetadataSupport(\n\t\tblockTypeSettings,\n\t\t'name',\n\t\tfalse\n\t);\n\n\tif ( supportsBlockNaming ) {\n\t\tblockTypeSettings.attributes = {\n\t\t\t...blockTypeSettings.attributes,\n\t\t\t[ META_ATTRIBUTE_NAME ]: {\n\t\t\t\ttype: 'object',\n\t\t\t},\n\t\t};\n\t}\n\n\treturn blockTypeSettings;\n}\n\nexport function addSaveProps( extraProps, blockType, attributes ) {\n\tif ( hasBlockMetadataSupport( blockType ) ) {\n\t\textraProps[ META_ATTRIBUTE_NAME ] = attributes[ META_ATTRIBUTE_NAME ];\n\t}\n\n\treturn extraProps;\n}\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/metadata/addMetaAttribute',\n\taddMetaAttribute\n);\n\naddFilter(\n\t'blocks.getSaveContent.extraProps',\n\t'core/metadata/save-props',\n\taddSaveProps\n);\n"]}
|
|
@@ -109,7 +109,15 @@ export function TypographyPanel(props) {
|
|
|
109
109
|
isShownByDefault: defaultControls === null || defaultControls === void 0 ? void 0 : defaultControls.lineHeight,
|
|
110
110
|
resetAllFilter: createResetAllFilter('lineHeight'),
|
|
111
111
|
panelId: clientId
|
|
112
|
-
}, createElement(LineHeightEdit, props)), !
|
|
112
|
+
}, createElement(LineHeightEdit, props)), !isLetterSpacingDisabled && createElement(ToolsPanelItem, {
|
|
113
|
+
className: "single-column",
|
|
114
|
+
hasValue: () => hasLetterSpacingValue(props),
|
|
115
|
+
label: __('Letter spacing'),
|
|
116
|
+
onDeselect: () => resetLetterSpacing(props),
|
|
117
|
+
isShownByDefault: defaultControls === null || defaultControls === void 0 ? void 0 : defaultControls.letterSpacing,
|
|
118
|
+
resetAllFilter: createResetAllFilter('letterSpacing'),
|
|
119
|
+
panelId: clientId
|
|
120
|
+
}, createElement(LetterSpacingEdit, props)), !isTextDecorationDisabled && createElement(ToolsPanelItem, {
|
|
113
121
|
className: "single-column",
|
|
114
122
|
hasValue: () => hasTextDecorationValue(props),
|
|
115
123
|
label: __('Decoration'),
|
|
@@ -118,7 +126,6 @@ export function TypographyPanel(props) {
|
|
|
118
126
|
resetAllFilter: createResetAllFilter('textDecoration'),
|
|
119
127
|
panelId: clientId
|
|
120
128
|
}, createElement(TextDecorationEdit, props)), !isTextTransformDisabled && createElement(ToolsPanelItem, {
|
|
121
|
-
className: "single-column",
|
|
122
129
|
hasValue: () => hasTextTransformValue(props)
|
|
123
130
|
/* translators: Ensure translation is distinct from "Font size" */
|
|
124
131
|
,
|
|
@@ -127,15 +134,7 @@ export function TypographyPanel(props) {
|
|
|
127
134
|
isShownByDefault: defaultControls === null || defaultControls === void 0 ? void 0 : defaultControls.textTransform,
|
|
128
135
|
resetAllFilter: createResetAllFilter('textTransform'),
|
|
129
136
|
panelId: clientId
|
|
130
|
-
}, createElement(TextTransformEdit, props))
|
|
131
|
-
className: "single-column",
|
|
132
|
-
hasValue: () => hasLetterSpacingValue(props),
|
|
133
|
-
label: __('Letter spacing'),
|
|
134
|
-
onDeselect: () => resetLetterSpacing(props),
|
|
135
|
-
isShownByDefault: defaultControls === null || defaultControls === void 0 ? void 0 : defaultControls.letterSpacing,
|
|
136
|
-
resetAllFilter: createResetAllFilter('letterSpacing'),
|
|
137
|
-
panelId: clientId
|
|
138
|
-
}, createElement(LetterSpacingEdit, props)));
|
|
137
|
+
}, createElement(TextTransformEdit, props)));
|
|
139
138
|
}
|
|
140
139
|
export const hasTypographySupport = blockName => {
|
|
141
140
|
return TYPOGRAPHY_SUPPORT_KEYS.some(key => hasBlockSupport(blockName, key));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/hooks/typography.js"],"names":["getBlockSupport","hasBlockSupport","__experimentalToolsPanelItem","ToolsPanelItem","__","InspectorControls","getFontAppearanceLabel","LINE_HEIGHT_SUPPORT_KEY","LineHeightEdit","hasLineHeightValue","resetLineHeight","useIsLineHeightDisabled","FONT_STYLE_SUPPORT_KEY","FONT_WEIGHT_SUPPORT_KEY","FontAppearanceEdit","hasFontAppearanceValue","resetFontAppearance","useIsFontAppearanceDisabled","useIsFontStyleDisabled","useIsFontWeightDisabled","FONT_FAMILY_SUPPORT_KEY","FontFamilyEdit","hasFontFamilyValue","resetFontFamily","useIsFontFamilyDisabled","FONT_SIZE_SUPPORT_KEY","FontSizeEdit","hasFontSizeValue","resetFontSize","useIsFontSizeDisabled","TEXT_DECORATION_SUPPORT_KEY","TextDecorationEdit","hasTextDecorationValue","resetTextDecoration","useIsTextDecorationDisabled","TEXT_TRANSFORM_SUPPORT_KEY","TextTransformEdit","hasTextTransformValue","resetTextTransform","useIsTextTransformDisabled","LETTER_SPACING_SUPPORT_KEY","LetterSpacingEdit","hasLetterSpacingValue","resetLetterSpacing","useIsLetterSpacingDisabled","TYPOGRAPHY_SUPPORT_KEY","TYPOGRAPHY_SUPPORT_KEYS","TypographyPanel","props","clientId","isFontFamilyDisabled","isFontSizeDisabled","isFontAppearanceDisabled","isLineHeightDisabled","isTextDecorationDisabled","isTextTransformDisabled","isLetterSpacingDisabled","hasFontStyles","hasFontWeights","isDisabled","useIsTypographyDisabled","isSupported","hasTypographySupport","name","defaultControls","createResetAllFilter","attribute","newAttributes","style","typography","undefined","fontFamily","fontSize","fontAppearance","fontStyle","fontWeight","lineHeight","textDecoration","textTransform","letterSpacing","blockName","some","key","configs","filter","Boolean","length"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,eAAT,EAA0BC,eAA1B,QAAiD,mBAAjD;AACA,SAASC,4BAA4B,IAAIC,cAAzC,QAA+D,uBAA/D;AACA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AACA,OAAOC,iBAAP,MAA8B,kCAA9B;AACA,SAASC,sBAAT,QAAuC,uCAAvC;AAEA,SACCC,uBADD,EAECC,cAFD,EAGCC,kBAHD,EAICC,eAJD,EAKCC,uBALD,QAMO,eANP;AAOA,SACCC,sBADD,EAECC,uBAFD,EAGCC,kBAHD,EAICC,sBAJD,EAKCC,mBALD,EAMCC,2BAND,EAOCC,sBAPD,EAQCC,uBARD,QASO,mBATP;AAUA,SACCC,uBADD,EAECC,cAFD,EAGCC,kBAHD,EAICC,eAJD,EAKCC,uBALD,QAMO,eANP;AAOA,SACCC,qBADD,EAECC,YAFD,EAGCC,gBAHD,EAICC,aAJD,EAKCC,qBALD,QAMO,aANP;AAOA,SACCC,2BADD,EAECC,kBAFD,EAGCC,sBAHD,EAICC,mBAJD,EAKCC,2BALD,QAMO,mBANP;AAOA,SACCC,0BADD,EAECC,iBAFD,EAGCC,qBAHD,EAICC,kBAJD,EAKCC,0BALD,QAMO,kBANP;AAOA,SACCC,0BADD,EAECC,iBAFD,EAGCC,qBAHD,EAICC,kBAJD,EAKCC,0BALD,QAMO,kBANP;AAQA,OAAO,MAAMC,sBAAsB,GAAG,YAA/B;AACP,OAAO,MAAMC,uBAAuB,GAAG,CACtCvC,uBADsC,EAEtCkB,qBAFsC,EAGtCb,sBAHsC,EAItCC,uBAJsC,EAKtCO,uBALsC,EAMtCU,2BANsC,EAOtCK,0BAPsC,EAQtCK,0BARsC,CAAhC;AAWP,OAAO,SAASO,eAAT,CAA0BC,KAA1B,EAAkC;AACxC,QAAM;AAAEC,IAAAA;AAAF,MAAeD,KAArB;AACA,QAAME,oBAAoB,GAAG1B,uBAAuB,CAAEwB,KAAF,CAApD;AACA,QAAMG,kBAAkB,GAAGtB,qBAAqB,CAAEmB,KAAF,CAAhD;AACA,QAAMI,wBAAwB,GAAGnC,2BAA2B,CAAE+B,KAAF,CAA5D;AACA,QAAMK,oBAAoB,GAAG1C,uBAAuB,CAAEqC,KAAF,CAApD;AACA,QAAMM,wBAAwB,GAAGpB,2BAA2B,CAAEc,KAAF,CAA5D;AACA,QAAMO,uBAAuB,GAAGhB,0BAA0B,CAAES,KAAF,CAA1D;AACA,QAAMQ,uBAAuB,GAAGZ,0BAA0B,CAAEI,KAAF,CAA1D;AAEA,QAAMS,aAAa,GAAG,CAAEvC,sBAAsB,CAAE8B,KAAF,CAA9C;AACA,QAAMU,cAAc,GAAG,CAAEvC,uBAAuB,CAAE6B,KAAF,CAAhD;AAEA,QAAMW,UAAU,GAAGC,uBAAuB,CAAEZ,KAAF,CAA1C;AACA,QAAMa,WAAW,GAAGC,oBAAoB,CAAEd,KAAK,CAACe,IAAR,CAAxC;AAEA,MAAKJ,UAAU,IAAI,CAAEE,WAArB,EAAmC,OAAO,IAAP;AAEnC,QAAMG,eAAe,GAAGhE,eAAe,CAAEgD,KAAK,CAACe,IAAR,EAAc,CACpDlB,sBADoD,EAEpD,+BAFoD,CAAd,CAAvC;;AAKA,QAAMoB,oBAAoB,GAAKC,SAAF,IAAmBC,aAAF;AAAA;;AAAA,WAAuB,EACpE,GAAGA,aADiE;AAEpEC,MAAAA,KAAK,EAAE,EACN,GAAGD,aAAa,CAACC,KADX;AAENC,QAAAA,UAAU,EAAE,EACX,4BAAGF,aAAa,CAACC,KAAjB,yDAAG,qBAAqBC,UAAxB,CADW;AAEX,WAAEH,SAAF,GAAeI;AAFJ;AAFN;AAF6D,KAAvB;AAAA,GAA9C;;AAWA,SACC,cAAC,iBAAD;AAAmB,IAAA,mBAAmB,EAAC;AAAvC,KACG,CAAEpB,oBAAF,IACD,cAAC,cAAD;AACC,IAAA,QAAQ,EAAG,MAAM5B,kBAAkB,CAAE0B,KAAF,CADpC;AAEC,IAAA,KAAK,EAAG5C,EAAE,CAAE,aAAF,CAFX;AAGC,IAAA,UAAU,EAAG,MAAMmB,eAAe,CAAEyB,KAAF,CAHnC;AAIC,IAAA,gBAAgB,EAAGgB,eAAH,aAAGA,eAAH,uBAAGA,eAAe,CAAEO,UAJrC;AAKC,IAAA,cAAc,EAAKJ,aAAF,KAAuB,EACvC,GAAGA,aADoC;AAEvCI,MAAAA,UAAU,EAAED;AAF2B,KAAvB,CALlB;AASC,IAAA,OAAO,EAAGrB;AATX,KAWC,cAAC,cAAD,EAAqBD,KAArB,CAXD,CAFF,EAgBG,CAAEG,kBAAF,IACD,cAAC,cAAD;AACC,IAAA,QAAQ,EAAG,MAAMxB,gBAAgB,CAAEqB,KAAF;AACjC;AAFD;AAGC,IAAA,KAAK,EAAG5C,EAAE,CAAE,WAAF,CAHX;AAIC,IAAA,UAAU,EAAG,MAAMwB,aAAa,CAAEoB,KAAF,CAJjC;AAKC,IAAA,gBAAgB,EAAGgB,eAAH,aAAGA,eAAH,uBAAGA,eAAe,CAAEQ,QALrC;AAMC,IAAA,cAAc,EAAKL,aAAF;AAAA;;AAAA,aAAuB,EACvC,GAAGA,aADoC;AAEvCK,QAAAA,QAAQ,EAAEF,SAF6B;AAGvCF,QAAAA,KAAK,EAAE,EACN,GAAGD,aAAa,CAACC,KADX;AAENC,UAAAA,UAAU,EAAE,EACX,6BAAGF,aAAa,CAACC,KAAjB,0DAAG,sBAAqBC,UAAxB,CADW;AAEXG,YAAAA,QAAQ,EAAEF;AAFC;AAFN;AAHgC,OAAvB;AAAA,KANlB;AAiBC,IAAA,OAAO,EAAGrB;AAjBX,KAmBC,cAAC,YAAD,EAAmBD,KAAnB,CAnBD,CAjBF,EAuCG,CAAEI,wBAAF,IACD,cAAC,cAAD;AACC,IAAA,SAAS,EAAC,eADX;AAEC,IAAA,QAAQ,EAAG,MAAMrC,sBAAsB,CAAEiC,KAAF,CAFxC;AAGC,IAAA,KAAK,EAAG1C,sBAAsB,CAC7BmD,aAD6B,EAE7BC,cAF6B,CAH/B;AAOC,IAAA,UAAU,EAAG,MAAM1C,mBAAmB,CAAEgC,KAAF,CAPvC;AAQC,IAAA,gBAAgB,EAAGgB,eAAH,aAAGA,eAAH,uBAAGA,eAAe,CAAES,cARrC;AASC,IAAA,cAAc,EAAKN,aAAF;AAAA;;AAAA,aAAuB,EACvC,GAAGA,aADoC;AAEvCC,QAAAA,KAAK,EAAE,EACN,GAAGD,aAAa,CAACC,KADX;AAENC,UAAAA,UAAU,EAAE,EACX,6BAAGF,aAAa,CAACC,KAAjB,0DAAG,sBAAqBC,UAAxB,CADW;AAEXK,YAAAA,SAAS,EAAEJ,SAFA;AAGXK,YAAAA,UAAU,EAAEL;AAHD;AAFN;AAFgC,OAAvB;AAAA,KATlB;AAoBC,IAAA,OAAO,EAAGrB;AApBX,KAsBC,cAAC,kBAAD,EAAyBD,KAAzB,CAtBD,CAxCF,EAiEG,CAAEK,oBAAF,IACD,cAAC,cAAD;AACC,IAAA,SAAS,EAAC,eADX;AAEC,IAAA,QAAQ,EAAG,MAAM5C,kBAAkB,CAAEuC,KAAF,CAFpC;AAGC,IAAA,KAAK,EAAG5C,EAAE,CAAE,aAAF,CAHX;AAIC,IAAA,UAAU,EAAG,MAAMM,eAAe,CAAEsC,KAAF,CAJnC;AAKC,IAAA,gBAAgB,EAAGgB,eAAH,aAAGA,eAAH,uBAAGA,eAAe,CAAEY,UALrC;AAMC,IAAA,cAAc,EAAGX,oBAAoB,CAAE,YAAF,CANtC;AAOC,IAAA,OAAO,EAAGhB;AAPX,KASC,cAAC,cAAD,EAAqBD,KAArB,CATD,CAlEF,EA8EG,CAAEM,wBAAF,IACD,cAAC,cAAD;AACC,IAAA,SAAS,EAAC,eADX;AAEC,IAAA,QAAQ,EAAG,MAAMtB,sBAAsB,CAAEgB,KAAF,CAFxC;AAGC,IAAA,KAAK,EAAG5C,EAAE,CAAE,YAAF,CAHX;AAIC,IAAA,UAAU,EAAG,MAAM6B,mBAAmB,CAAEe,KAAF,CAJvC;AAKC,IAAA,gBAAgB,EAAGgB,eAAH,aAAGA,eAAH,uBAAGA,eAAe,CAAEa,cALrC;AAMC,IAAA,cAAc,EAAGZ,oBAAoB,CAAE,gBAAF,CANtC;AAOC,IAAA,OAAO,EAAGhB;AAPX,KASC,cAAC,kBAAD,EAAyBD,KAAzB,CATD,CA/EF,EA2FG,CAAEO,uBAAF,IACD,cAAC,cAAD;AACC,IAAA,SAAS,EAAC,eADX;AAEC,IAAA,QAAQ,EAAG,MAAMlB,qBAAqB,CAAEW,KAAF;AACtC;AAHD;AAIC,IAAA,KAAK,EAAG5C,EAAE,CAAE,aAAF,CAJX;AAKC,IAAA,UAAU,EAAG,MAAMkC,kBAAkB,CAAEU,KAAF,CALtC;AAMC,IAAA,gBAAgB,EAAGgB,eAAH,aAAGA,eAAH,uBAAGA,eAAe,CAAEc,aANrC;AAOC,IAAA,cAAc,EAAGb,oBAAoB,CAAE,eAAF,CAPtC;AAQC,IAAA,OAAO,EAAGhB;AARX,KAUC,cAAC,iBAAD,EAAwBD,KAAxB,CAVD,CA5FF,EAyGG,CAAEQ,uBAAF,IACD,cAAC,cAAD;AACC,IAAA,SAAS,EAAC,eADX;AAEC,IAAA,QAAQ,EAAG,MAAMd,qBAAqB,CAAEM,KAAF,CAFvC;AAGC,IAAA,KAAK,EAAG5C,EAAE,CAAE,gBAAF,CAHX;AAIC,IAAA,UAAU,EAAG,MAAMuC,kBAAkB,CAAEK,KAAF,CAJtC;AAKC,IAAA,gBAAgB,EAAGgB,eAAH,aAAGA,eAAH,uBAAGA,eAAe,CAAEe,aALrC;AAMC,IAAA,cAAc,EAAGd,oBAAoB,CAAE,eAAF,CANtC;AAOC,IAAA,OAAO,EAAGhB;AAPX,KASC,cAAC,iBAAD,EAAwBD,KAAxB,CATD,CA1GF,CADD;AAyHA;AAED,OAAO,MAAMc,oBAAoB,GAAKkB,SAAF,IAAiB;AACpD,SAAOlC,uBAAuB,CAACmC,IAAxB,CAAgCC,GAAF,IACpCjF,eAAe,CAAE+E,SAAF,EAAaE,GAAb,CADT,CAAP;AAGA,CAJM;;AAMP,SAAStB,uBAAT,GAA+C;AAAA,MAAbZ,KAAa,uEAAL,EAAK;AAC9C,QAAMmC,OAAO,GAAG,CACflE,2BAA2B,CAAE+B,KAAF,CADZ,EAEfnB,qBAAqB,CAAEmB,KAAF,CAFN,EAGfrC,uBAAuB,CAAEqC,KAAF,CAHR,EAIfxB,uBAAuB,CAAEwB,KAAF,CAJR,EAKfd,2BAA2B,CAAEc,KAAF,CALZ,EAMfT,0BAA0B,CAAES,KAAF,CANX,EAOfJ,0BAA0B,CAAEI,KAAF,CAPX,CAAhB;AAUA,SAAOmC,OAAO,CAACC,MAAR,CAAgBC,OAAhB,EAA0BC,MAA1B,KAAqCH,OAAO,CAACG,MAApD;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockSupport, hasBlockSupport } from '@wordpress/blocks';\nimport { __experimentalToolsPanelItem as ToolsPanelItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport InspectorControls from '../components/inspector-controls';\nimport { getFontAppearanceLabel } from '../components/font-appearance-control';\n\nimport {\n\tLINE_HEIGHT_SUPPORT_KEY,\n\tLineHeightEdit,\n\thasLineHeightValue,\n\tresetLineHeight,\n\tuseIsLineHeightDisabled,\n} from './line-height';\nimport {\n\tFONT_STYLE_SUPPORT_KEY,\n\tFONT_WEIGHT_SUPPORT_KEY,\n\tFontAppearanceEdit,\n\thasFontAppearanceValue,\n\tresetFontAppearance,\n\tuseIsFontAppearanceDisabled,\n\tuseIsFontStyleDisabled,\n\tuseIsFontWeightDisabled,\n} from './font-appearance';\nimport {\n\tFONT_FAMILY_SUPPORT_KEY,\n\tFontFamilyEdit,\n\thasFontFamilyValue,\n\tresetFontFamily,\n\tuseIsFontFamilyDisabled,\n} from './font-family';\nimport {\n\tFONT_SIZE_SUPPORT_KEY,\n\tFontSizeEdit,\n\thasFontSizeValue,\n\tresetFontSize,\n\tuseIsFontSizeDisabled,\n} from './font-size';\nimport {\n\tTEXT_DECORATION_SUPPORT_KEY,\n\tTextDecorationEdit,\n\thasTextDecorationValue,\n\tresetTextDecoration,\n\tuseIsTextDecorationDisabled,\n} from './text-decoration';\nimport {\n\tTEXT_TRANSFORM_SUPPORT_KEY,\n\tTextTransformEdit,\n\thasTextTransformValue,\n\tresetTextTransform,\n\tuseIsTextTransformDisabled,\n} from './text-transform';\nimport {\n\tLETTER_SPACING_SUPPORT_KEY,\n\tLetterSpacingEdit,\n\thasLetterSpacingValue,\n\tresetLetterSpacing,\n\tuseIsLetterSpacingDisabled,\n} from './letter-spacing';\n\nexport const TYPOGRAPHY_SUPPORT_KEY = 'typography';\nexport const TYPOGRAPHY_SUPPORT_KEYS = [\n\tLINE_HEIGHT_SUPPORT_KEY,\n\tFONT_SIZE_SUPPORT_KEY,\n\tFONT_STYLE_SUPPORT_KEY,\n\tFONT_WEIGHT_SUPPORT_KEY,\n\tFONT_FAMILY_SUPPORT_KEY,\n\tTEXT_DECORATION_SUPPORT_KEY,\n\tTEXT_TRANSFORM_SUPPORT_KEY,\n\tLETTER_SPACING_SUPPORT_KEY,\n];\n\nexport function TypographyPanel( props ) {\n\tconst { clientId } = props;\n\tconst isFontFamilyDisabled = useIsFontFamilyDisabled( props );\n\tconst isFontSizeDisabled = useIsFontSizeDisabled( props );\n\tconst isFontAppearanceDisabled = useIsFontAppearanceDisabled( props );\n\tconst isLineHeightDisabled = useIsLineHeightDisabled( props );\n\tconst isTextDecorationDisabled = useIsTextDecorationDisabled( props );\n\tconst isTextTransformDisabled = useIsTextTransformDisabled( props );\n\tconst isLetterSpacingDisabled = useIsLetterSpacingDisabled( props );\n\n\tconst hasFontStyles = ! useIsFontStyleDisabled( props );\n\tconst hasFontWeights = ! useIsFontWeightDisabled( props );\n\n\tconst isDisabled = useIsTypographyDisabled( props );\n\tconst isSupported = hasTypographySupport( props.name );\n\n\tif ( isDisabled || ! isSupported ) return null;\n\n\tconst defaultControls = getBlockSupport( props.name, [\n\t\tTYPOGRAPHY_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\n\tconst createResetAllFilter = ( attribute ) => ( newAttributes ) => ( {\n\t\t...newAttributes,\n\t\tstyle: {\n\t\t\t...newAttributes.style,\n\t\t\ttypography: {\n\t\t\t\t...newAttributes.style?.typography,\n\t\t\t\t[ attribute ]: undefined,\n\t\t\t},\n\t\t},\n\t} );\n\n\treturn (\n\t\t<InspectorControls __experimentalGroup=\"typography\">\n\t\t\t{ ! isFontFamilyDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => hasFontFamilyValue( props ) }\n\t\t\t\t\tlabel={ __( 'Font family' ) }\n\t\t\t\t\tonDeselect={ () => resetFontFamily( props ) }\n\t\t\t\t\tisShownByDefault={ defaultControls?.fontFamily }\n\t\t\t\t\tresetAllFilter={ ( newAttributes ) => ( {\n\t\t\t\t\t\t...newAttributes,\n\t\t\t\t\t\tfontFamily: undefined,\n\t\t\t\t\t} ) }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<FontFamilyEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ ! isFontSizeDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => hasFontSizeValue( props ) }\n\t\t\t\t\t/* translators: Ensure translation is distinct from \"Letter case\" */\n\t\t\t\t\tlabel={ __( 'Font size' ) }\n\t\t\t\t\tonDeselect={ () => resetFontSize( props ) }\n\t\t\t\t\tisShownByDefault={ defaultControls?.fontSize }\n\t\t\t\t\tresetAllFilter={ ( newAttributes ) => ( {\n\t\t\t\t\t\t...newAttributes,\n\t\t\t\t\t\tfontSize: undefined,\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t...newAttributes.style,\n\t\t\t\t\t\t\ttypography: {\n\t\t\t\t\t\t\t\t...newAttributes.style?.typography,\n\t\t\t\t\t\t\t\tfontSize: undefined,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t} ) }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<FontSizeEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ ! isFontAppearanceDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\thasValue={ () => hasFontAppearanceValue( props ) }\n\t\t\t\t\tlabel={ getFontAppearanceLabel(\n\t\t\t\t\t\thasFontStyles,\n\t\t\t\t\t\thasFontWeights\n\t\t\t\t\t) }\n\t\t\t\t\tonDeselect={ () => resetFontAppearance( props ) }\n\t\t\t\t\tisShownByDefault={ defaultControls?.fontAppearance }\n\t\t\t\t\tresetAllFilter={ ( newAttributes ) => ( {\n\t\t\t\t\t\t...newAttributes,\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t...newAttributes.style,\n\t\t\t\t\t\t\ttypography: {\n\t\t\t\t\t\t\t\t...newAttributes.style?.typography,\n\t\t\t\t\t\t\t\tfontStyle: undefined,\n\t\t\t\t\t\t\t\tfontWeight: undefined,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t} ) }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<FontAppearanceEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ ! isLineHeightDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\thasValue={ () => hasLineHeightValue( props ) }\n\t\t\t\t\tlabel={ __( 'Line height' ) }\n\t\t\t\t\tonDeselect={ () => resetLineHeight( props ) }\n\t\t\t\t\tisShownByDefault={ defaultControls?.lineHeight }\n\t\t\t\t\tresetAllFilter={ createResetAllFilter( 'lineHeight' ) }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<LineHeightEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ ! isTextDecorationDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\thasValue={ () => hasTextDecorationValue( props ) }\n\t\t\t\t\tlabel={ __( 'Decoration' ) }\n\t\t\t\t\tonDeselect={ () => resetTextDecoration( props ) }\n\t\t\t\t\tisShownByDefault={ defaultControls?.textDecoration }\n\t\t\t\t\tresetAllFilter={ createResetAllFilter( 'textDecoration' ) }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<TextDecorationEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ ! isTextTransformDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\thasValue={ () => hasTextTransformValue( props ) }\n\t\t\t\t\t/* translators: Ensure translation is distinct from \"Font size\" */\n\t\t\t\t\tlabel={ __( 'Letter case' ) }\n\t\t\t\t\tonDeselect={ () => resetTextTransform( props ) }\n\t\t\t\t\tisShownByDefault={ defaultControls?.textTransform }\n\t\t\t\t\tresetAllFilter={ createResetAllFilter( 'textTransform' ) }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<TextTransformEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ ! isLetterSpacingDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\thasValue={ () => hasLetterSpacingValue( props ) }\n\t\t\t\t\tlabel={ __( 'Letter spacing' ) }\n\t\t\t\t\tonDeselect={ () => resetLetterSpacing( props ) }\n\t\t\t\t\tisShownByDefault={ defaultControls?.letterSpacing }\n\t\t\t\t\tresetAllFilter={ createResetAllFilter( 'letterSpacing' ) }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<LetterSpacingEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</InspectorControls>\n\t);\n}\n\nexport const hasTypographySupport = ( blockName ) => {\n\treturn TYPOGRAPHY_SUPPORT_KEYS.some( ( key ) =>\n\t\thasBlockSupport( blockName, key )\n\t);\n};\n\nfunction useIsTypographyDisabled( props = {} ) {\n\tconst configs = [\n\t\tuseIsFontAppearanceDisabled( props ),\n\t\tuseIsFontSizeDisabled( props ),\n\t\tuseIsLineHeightDisabled( props ),\n\t\tuseIsFontFamilyDisabled( props ),\n\t\tuseIsTextDecorationDisabled( props ),\n\t\tuseIsTextTransformDisabled( props ),\n\t\tuseIsLetterSpacingDisabled( props ),\n\t];\n\n\treturn configs.filter( Boolean ).length === configs.length;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/hooks/typography.js"],"names":["getBlockSupport","hasBlockSupport","__experimentalToolsPanelItem","ToolsPanelItem","__","InspectorControls","getFontAppearanceLabel","LINE_HEIGHT_SUPPORT_KEY","LineHeightEdit","hasLineHeightValue","resetLineHeight","useIsLineHeightDisabled","FONT_STYLE_SUPPORT_KEY","FONT_WEIGHT_SUPPORT_KEY","FontAppearanceEdit","hasFontAppearanceValue","resetFontAppearance","useIsFontAppearanceDisabled","useIsFontStyleDisabled","useIsFontWeightDisabled","FONT_FAMILY_SUPPORT_KEY","FontFamilyEdit","hasFontFamilyValue","resetFontFamily","useIsFontFamilyDisabled","FONT_SIZE_SUPPORT_KEY","FontSizeEdit","hasFontSizeValue","resetFontSize","useIsFontSizeDisabled","TEXT_DECORATION_SUPPORT_KEY","TextDecorationEdit","hasTextDecorationValue","resetTextDecoration","useIsTextDecorationDisabled","TEXT_TRANSFORM_SUPPORT_KEY","TextTransformEdit","hasTextTransformValue","resetTextTransform","useIsTextTransformDisabled","LETTER_SPACING_SUPPORT_KEY","LetterSpacingEdit","hasLetterSpacingValue","resetLetterSpacing","useIsLetterSpacingDisabled","TYPOGRAPHY_SUPPORT_KEY","TYPOGRAPHY_SUPPORT_KEYS","TypographyPanel","props","clientId","isFontFamilyDisabled","isFontSizeDisabled","isFontAppearanceDisabled","isLineHeightDisabled","isTextDecorationDisabled","isTextTransformDisabled","isLetterSpacingDisabled","hasFontStyles","hasFontWeights","isDisabled","useIsTypographyDisabled","isSupported","hasTypographySupport","name","defaultControls","createResetAllFilter","attribute","newAttributes","style","typography","undefined","fontFamily","fontSize","fontAppearance","fontStyle","fontWeight","lineHeight","letterSpacing","textDecoration","textTransform","blockName","some","key","configs","filter","Boolean","length"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockSupport, hasBlockSupport } from '@wordpress/blocks';\nimport { __experimentalToolsPanelItem as ToolsPanelItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport InspectorControls from '../components/inspector-controls';\nimport { getFontAppearanceLabel } from '../components/font-appearance-control';\n\nimport {\n\tLINE_HEIGHT_SUPPORT_KEY,\n\tLineHeightEdit,\n\thasLineHeightValue,\n\tresetLineHeight,\n\tuseIsLineHeightDisabled,\n} from './line-height';\nimport {\n\tFONT_STYLE_SUPPORT_KEY,\n\tFONT_WEIGHT_SUPPORT_KEY,\n\tFontAppearanceEdit,\n\thasFontAppearanceValue,\n\tresetFontAppearance,\n\tuseIsFontAppearanceDisabled,\n\tuseIsFontStyleDisabled,\n\tuseIsFontWeightDisabled,\n} from './font-appearance';\nimport {\n\tFONT_FAMILY_SUPPORT_KEY,\n\tFontFamilyEdit,\n\thasFontFamilyValue,\n\tresetFontFamily,\n\tuseIsFontFamilyDisabled,\n} from './font-family';\nimport {\n\tFONT_SIZE_SUPPORT_KEY,\n\tFontSizeEdit,\n\thasFontSizeValue,\n\tresetFontSize,\n\tuseIsFontSizeDisabled,\n} from './font-size';\nimport {\n\tTEXT_DECORATION_SUPPORT_KEY,\n\tTextDecorationEdit,\n\thasTextDecorationValue,\n\tresetTextDecoration,\n\tuseIsTextDecorationDisabled,\n} from './text-decoration';\nimport {\n\tTEXT_TRANSFORM_SUPPORT_KEY,\n\tTextTransformEdit,\n\thasTextTransformValue,\n\tresetTextTransform,\n\tuseIsTextTransformDisabled,\n} from './text-transform';\nimport {\n\tLETTER_SPACING_SUPPORT_KEY,\n\tLetterSpacingEdit,\n\thasLetterSpacingValue,\n\tresetLetterSpacing,\n\tuseIsLetterSpacingDisabled,\n} from './letter-spacing';\n\nexport const TYPOGRAPHY_SUPPORT_KEY = 'typography';\nexport const TYPOGRAPHY_SUPPORT_KEYS = [\n\tLINE_HEIGHT_SUPPORT_KEY,\n\tFONT_SIZE_SUPPORT_KEY,\n\tFONT_STYLE_SUPPORT_KEY,\n\tFONT_WEIGHT_SUPPORT_KEY,\n\tFONT_FAMILY_SUPPORT_KEY,\n\tTEXT_DECORATION_SUPPORT_KEY,\n\tTEXT_TRANSFORM_SUPPORT_KEY,\n\tLETTER_SPACING_SUPPORT_KEY,\n];\n\nexport function TypographyPanel( props ) {\n\tconst { clientId } = props;\n\tconst isFontFamilyDisabled = useIsFontFamilyDisabled( props );\n\tconst isFontSizeDisabled = useIsFontSizeDisabled( props );\n\tconst isFontAppearanceDisabled = useIsFontAppearanceDisabled( props );\n\tconst isLineHeightDisabled = useIsLineHeightDisabled( props );\n\tconst isTextDecorationDisabled = useIsTextDecorationDisabled( props );\n\tconst isTextTransformDisabled = useIsTextTransformDisabled( props );\n\tconst isLetterSpacingDisabled = useIsLetterSpacingDisabled( props );\n\n\tconst hasFontStyles = ! useIsFontStyleDisabled( props );\n\tconst hasFontWeights = ! useIsFontWeightDisabled( props );\n\n\tconst isDisabled = useIsTypographyDisabled( props );\n\tconst isSupported = hasTypographySupport( props.name );\n\n\tif ( isDisabled || ! isSupported ) return null;\n\n\tconst defaultControls = getBlockSupport( props.name, [\n\t\tTYPOGRAPHY_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\n\tconst createResetAllFilter = ( attribute ) => ( newAttributes ) => ( {\n\t\t...newAttributes,\n\t\tstyle: {\n\t\t\t...newAttributes.style,\n\t\t\ttypography: {\n\t\t\t\t...newAttributes.style?.typography,\n\t\t\t\t[ attribute ]: undefined,\n\t\t\t},\n\t\t},\n\t} );\n\n\treturn (\n\t\t<InspectorControls __experimentalGroup=\"typography\">\n\t\t\t{ ! isFontFamilyDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => hasFontFamilyValue( props ) }\n\t\t\t\t\tlabel={ __( 'Font family' ) }\n\t\t\t\t\tonDeselect={ () => resetFontFamily( props ) }\n\t\t\t\t\tisShownByDefault={ defaultControls?.fontFamily }\n\t\t\t\t\tresetAllFilter={ ( newAttributes ) => ( {\n\t\t\t\t\t\t...newAttributes,\n\t\t\t\t\t\tfontFamily: undefined,\n\t\t\t\t\t} ) }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<FontFamilyEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ ! isFontSizeDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => hasFontSizeValue( props ) }\n\t\t\t\t\t/* translators: Ensure translation is distinct from \"Letter case\" */\n\t\t\t\t\tlabel={ __( 'Font size' ) }\n\t\t\t\t\tonDeselect={ () => resetFontSize( props ) }\n\t\t\t\t\tisShownByDefault={ defaultControls?.fontSize }\n\t\t\t\t\tresetAllFilter={ ( newAttributes ) => ( {\n\t\t\t\t\t\t...newAttributes,\n\t\t\t\t\t\tfontSize: undefined,\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t...newAttributes.style,\n\t\t\t\t\t\t\ttypography: {\n\t\t\t\t\t\t\t\t...newAttributes.style?.typography,\n\t\t\t\t\t\t\t\tfontSize: undefined,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t} ) }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<FontSizeEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ ! isFontAppearanceDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\thasValue={ () => hasFontAppearanceValue( props ) }\n\t\t\t\t\tlabel={ getFontAppearanceLabel(\n\t\t\t\t\t\thasFontStyles,\n\t\t\t\t\t\thasFontWeights\n\t\t\t\t\t) }\n\t\t\t\t\tonDeselect={ () => resetFontAppearance( props ) }\n\t\t\t\t\tisShownByDefault={ defaultControls?.fontAppearance }\n\t\t\t\t\tresetAllFilter={ ( newAttributes ) => ( {\n\t\t\t\t\t\t...newAttributes,\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t...newAttributes.style,\n\t\t\t\t\t\t\ttypography: {\n\t\t\t\t\t\t\t\t...newAttributes.style?.typography,\n\t\t\t\t\t\t\t\tfontStyle: undefined,\n\t\t\t\t\t\t\t\tfontWeight: undefined,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t} ) }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<FontAppearanceEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ ! isLineHeightDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\thasValue={ () => hasLineHeightValue( props ) }\n\t\t\t\t\tlabel={ __( 'Line height' ) }\n\t\t\t\t\tonDeselect={ () => resetLineHeight( props ) }\n\t\t\t\t\tisShownByDefault={ defaultControls?.lineHeight }\n\t\t\t\t\tresetAllFilter={ createResetAllFilter( 'lineHeight' ) }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<LineHeightEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ ! isLetterSpacingDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\thasValue={ () => hasLetterSpacingValue( props ) }\n\t\t\t\t\tlabel={ __( 'Letter spacing' ) }\n\t\t\t\t\tonDeselect={ () => resetLetterSpacing( props ) }\n\t\t\t\t\tisShownByDefault={ defaultControls?.letterSpacing }\n\t\t\t\t\tresetAllFilter={ createResetAllFilter( 'letterSpacing' ) }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<LetterSpacingEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ ! isTextDecorationDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\thasValue={ () => hasTextDecorationValue( props ) }\n\t\t\t\t\tlabel={ __( 'Decoration' ) }\n\t\t\t\t\tonDeselect={ () => resetTextDecoration( props ) }\n\t\t\t\t\tisShownByDefault={ defaultControls?.textDecoration }\n\t\t\t\t\tresetAllFilter={ createResetAllFilter( 'textDecoration' ) }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<TextDecorationEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ ! isTextTransformDisabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => hasTextTransformValue( props ) }\n\t\t\t\t\t/* translators: Ensure translation is distinct from \"Font size\" */\n\t\t\t\t\tlabel={ __( 'Letter case' ) }\n\t\t\t\t\tonDeselect={ () => resetTextTransform( props ) }\n\t\t\t\t\tisShownByDefault={ defaultControls?.textTransform }\n\t\t\t\t\tresetAllFilter={ createResetAllFilter( 'textTransform' ) }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<TextTransformEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</InspectorControls>\n\t);\n}\n\nexport const hasTypographySupport = ( blockName ) => {\n\treturn TYPOGRAPHY_SUPPORT_KEYS.some( ( key ) =>\n\t\thasBlockSupport( blockName, key )\n\t);\n};\n\nfunction useIsTypographyDisabled( props = {} ) {\n\tconst configs = [\n\t\tuseIsFontAppearanceDisabled( props ),\n\t\tuseIsFontSizeDisabled( props ),\n\t\tuseIsLineHeightDisabled( props ),\n\t\tuseIsFontFamilyDisabled( props ),\n\t\tuseIsTextDecorationDisabled( props ),\n\t\tuseIsTextTransformDisabled( props ),\n\t\tuseIsLetterSpacingDisabled( props ),\n\t];\n\n\treturn configs.filter( Boolean ).length === configs.length;\n}\n"]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { kebabCase } from 'lodash';
|
|
5
|
+
import classnames from 'classnames';
|
|
6
|
+
/**
|
|
7
|
+
* Internal dependencies
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { getInlineStyles } from './style';
|
|
11
|
+
import { getFontSizeClass } from '../components/font-sizes'; // This utility is intended to assist where the serialization of the typography
|
|
12
|
+
// block support is being skipped for a block but the typography related CSS
|
|
13
|
+
// styles still need to be generated so they can be applied to inner elements.
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Provides the CSS class names and inline styles for a block's typography support
|
|
17
|
+
* attributes.
|
|
18
|
+
*
|
|
19
|
+
* @param {Object} attributes Block attributes.
|
|
20
|
+
*
|
|
21
|
+
* @return {Object} Typography block support derived CSS classes & styles.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
export function getTypographyClassesAndStyles(attributes) {
|
|
25
|
+
var _attributes$style;
|
|
26
|
+
|
|
27
|
+
const typographyStyles = (attributes === null || attributes === void 0 ? void 0 : (_attributes$style = attributes.style) === null || _attributes$style === void 0 ? void 0 : _attributes$style.typography) || {};
|
|
28
|
+
const style = getInlineStyles({
|
|
29
|
+
typography: typographyStyles
|
|
30
|
+
});
|
|
31
|
+
const fontFamilyClassName = !!(attributes !== null && attributes !== void 0 && attributes.fontFamily) ? `has-${kebabCase(attributes.fontFamily)}-font-family` : '';
|
|
32
|
+
const className = classnames(fontFamilyClassName, getFontSizeClass(attributes === null || attributes === void 0 ? void 0 : attributes.fontSize));
|
|
33
|
+
return {
|
|
34
|
+
className,
|
|
35
|
+
style
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=use-typography-props.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/hooks/use-typography-props.js"],"names":["kebabCase","classnames","getInlineStyles","getFontSizeClass","getTypographyClassesAndStyles","attributes","typographyStyles","style","typography","fontFamilyClassName","fontFamily","className","fontSize"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,QAA1B;AACA,OAAOC,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,eAAT,QAAgC,SAAhC;AACA,SAASC,gBAAT,QAAiC,0BAAjC,C,CAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,6BAAT,CAAwCC,UAAxC,EAAqD;AAAA;;AAC3D,QAAMC,gBAAgB,GAAG,CAAAD,UAAU,SAAV,IAAAA,UAAU,WAAV,iCAAAA,UAAU,CAAEE,KAAZ,wEAAmBC,UAAnB,KAAiC,EAA1D;AACA,QAAMD,KAAK,GAAGL,eAAe,CAAE;AAAEM,IAAAA,UAAU,EAAEF;AAAd,GAAF,CAA7B;AACA,QAAMG,mBAAmB,GAAG,CAAC,EAAEJ,UAAF,aAAEA,UAAF,eAAEA,UAAU,CAAEK,UAAd,CAAD,GACxB,OAAOV,SAAS,CAAEK,UAAU,CAACK,UAAb,CAA2B,cADnB,GAEzB,EAFH;AAIA,QAAMC,SAAS,GAAGV,UAAU,CAC3BQ,mBAD2B,EAE3BN,gBAAgB,CAAEE,UAAF,aAAEA,UAAF,uBAAEA,UAAU,CAAEO,QAAd,CAFW,CAA5B;AAKA,SAAO;AACND,IAAAA,SADM;AAENJ,IAAAA;AAFM,GAAP;AAIA","sourcesContent":["/**\n * External dependencies\n */\nimport { kebabCase } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * Internal dependencies\n */\nimport { getInlineStyles } from './style';\nimport { getFontSizeClass } from '../components/font-sizes';\n\n// This utility is intended to assist where the serialization of the typography\n// block support is being skipped for a block but the typography related CSS\n// styles still need to be generated so they can be applied to inner elements.\n\n/**\n * Provides the CSS class names and inline styles for a block's typography support\n * attributes.\n *\n * @param {Object} attributes Block attributes.\n *\n * @return {Object} Typography block support derived CSS classes & styles.\n */\nexport function getTypographyClassesAndStyles( attributes ) {\n\tconst typographyStyles = attributes?.style?.typography || {};\n\tconst style = getInlineStyles( { typography: typographyStyles } );\n\tconst fontFamilyClassName = !! attributes?.fontFamily\n\t\t? `has-${ kebabCase( attributes.fontFamily ) }-font-family`\n\t\t: '';\n\n\tconst className = classnames(\n\t\tfontFamilyClassName,\n\t\tgetFontSizeClass( attributes?.fontSize )\n\t);\n\n\treturn {\n\t\tclassName,\n\t\tstyle,\n\t};\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { pickBy, isEmpty, mapValues,
|
|
4
|
+
import { pickBy, isEmpty, mapValues, get, setWith, clone, every } from 'lodash';
|
|
5
5
|
/**
|
|
6
6
|
* WordPress dependencies
|
|
7
7
|
*/
|
|
@@ -61,7 +61,9 @@ export function transformStyles(activeSupports, migrationPaths, result, source,
|
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
let returnBlock = result;
|
|
64
|
-
|
|
64
|
+
Object.entries(activeSupports).forEach(_ref => {
|
|
65
|
+
let [support, isActive] = _ref;
|
|
66
|
+
|
|
65
67
|
if (isActive) {
|
|
66
68
|
migrationPaths[support].forEach(path => {
|
|
67
69
|
const styleValue = get(referenceBlockAttributes, path);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/hooks/utils.js"],"names":["pickBy","isEmpty","mapValues","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/hooks/utils.js"],"names":["pickBy","isEmpty","mapValues","get","setWith","clone","every","getBlockSupport","identity","x","cleanEmptyObject","object","Array","isArray","cleanedNestedObjects","undefined","immutableSet","path","value","transformStyles","activeSupports","migrationPaths","result","source","index","results","isActive","length","innerBlocks","referenceBlockAttributes","attributes","returnBlock","Object","entries","forEach","support","styleValue","shouldSkipSerialization","blockType","featureSet","feature","skipSerialization","__experimentalSkipSerialization","includes"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { pickBy, isEmpty, mapValues, get, setWith, clone, every } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { getBlockSupport } from '@wordpress/blocks';\n\nconst identity = ( x ) => x;\n\n/**\n * Removed falsy values from nested object.\n *\n * @param {*} object\n * @return {*} Object cleaned from falsy values\n */\nexport const cleanEmptyObject = ( object ) => {\n\tif (\n\t\tobject === null ||\n\t\ttypeof object !== 'object' ||\n\t\tArray.isArray( object )\n\t) {\n\t\treturn object;\n\t}\n\tconst cleanedNestedObjects = pickBy(\n\t\tmapValues( object, cleanEmptyObject ),\n\t\tidentity\n\t);\n\treturn isEmpty( cleanedNestedObjects ) ? undefined : cleanedNestedObjects;\n};\n\nexport function immutableSet( object, path, value ) {\n\treturn setWith( object ? clone( object ) : {}, path, value, clone );\n}\n\nexport function transformStyles(\n\tactiveSupports,\n\tmigrationPaths,\n\tresult,\n\tsource,\n\tindex,\n\tresults\n) {\n\t// If there are no active supports return early.\n\tif ( every( activeSupports, ( isActive ) => ! isActive ) ) {\n\t\treturn result;\n\t}\n\t// If the condition verifies we are probably in the presence of a wrapping transform\n\t// e.g: nesting paragraphs in a group or columns and in that case the styles should not be transformed.\n\tif ( results.length === 1 && result.innerBlocks.length === source.length ) {\n\t\treturn result;\n\t}\n\t// For cases where we have a transform from one block to multiple blocks\n\t// or multiple blocks to one block we apply the styles of the first source block\n\t// to the result(s).\n\tlet referenceBlockAttributes = source[ 0 ]?.attributes;\n\t// If we are in presence of transform between more than one block in the source\n\t// that has more than one block in the result\n\t// we apply the styles on source N to the result N,\n\t// if source N does not exists we do nothing.\n\tif ( results.length > 1 && source.length > 1 ) {\n\t\tif ( source[ index ] ) {\n\t\t\treferenceBlockAttributes = source[ index ]?.attributes;\n\t\t} else {\n\t\t\treturn result;\n\t\t}\n\t}\n\tlet returnBlock = result;\n\tObject.entries( activeSupports ).forEach( ( [ support, isActive ] ) => {\n\t\tif ( isActive ) {\n\t\t\tmigrationPaths[ support ].forEach( ( path ) => {\n\t\t\t\tconst styleValue = get( referenceBlockAttributes, path );\n\t\t\t\tif ( styleValue ) {\n\t\t\t\t\treturnBlock = {\n\t\t\t\t\t\t...returnBlock,\n\t\t\t\t\t\tattributes: immutableSet(\n\t\t\t\t\t\t\treturnBlock.attributes,\n\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\tstyleValue\n\t\t\t\t\t\t),\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t} );\n\treturn returnBlock;\n}\n\n/**\n * Check whether serialization of specific block support feature or set should\n * be skipped.\n *\n * @param {string|Object} blockType Block name or block type object.\n * @param {string} featureSet Name of block support feature set.\n * @param {string} feature Name of the individual feature to check.\n *\n * @return {boolean} Whether serialization should occur.\n */\nexport function shouldSkipSerialization( blockType, featureSet, feature ) {\n\tconst support = getBlockSupport( blockType, featureSet );\n\tconst skipSerialization = support?.__experimentalSkipSerialization;\n\n\tif ( Array.isArray( skipSerialization ) ) {\n\t\treturn skipSerialization.includes( feature );\n\t}\n\n\treturn skipSerialization;\n}\n"]}
|
package/build-module/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Internal dependencies
|
|
3
3
|
*/
|
|
4
4
|
import './hooks';
|
|
5
|
-
export { getBorderClassesAndStyles as __experimentalGetBorderClassesAndStyles, useBorderProps as __experimentalUseBorderProps, getColorClassesAndStyles as __experimentalGetColorClassesAndStyles, useColorProps as __experimentalUseColorProps, useCustomSides as __experimentalUseCustomSides, getSpacingClassesAndStyles as __experimentalGetSpacingClassesAndStyles, getGapCSSValue as __experimentalGetGapCSSValue, useCachedTruthy } from './hooks';
|
|
5
|
+
export { getBorderClassesAndStyles as __experimentalGetBorderClassesAndStyles, useBorderProps as __experimentalUseBorderProps, getColorClassesAndStyles as __experimentalGetColorClassesAndStyles, getTypographyClassesAndStyles, useColorProps as __experimentalUseColorProps, useCustomSides as __experimentalUseCustomSides, getSpacingClassesAndStyles as __experimentalGetSpacingClassesAndStyles, getGapCSSValue as __experimentalGetGapCSSValue, useCachedTruthy } from './hooks';
|
|
6
6
|
export * from './components';
|
|
7
7
|
export * from './elements';
|
|
8
8
|
export * from './utils';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/index.js"],"names":["getBorderClassesAndStyles","__experimentalGetBorderClassesAndStyles","useBorderProps","__experimentalUseBorderProps","getColorClassesAndStyles","__experimentalGetColorClassesAndStyles","useColorProps","__experimentalUseColorProps","useCustomSides","__experimentalUseCustomSides","getSpacingClassesAndStyles","__experimentalGetSpacingClassesAndStyles","getGapCSSValue","__experimentalGetGapCSSValue","useCachedTruthy","storeConfig","store","SETTINGS_DEFAULTS"],"mappings":"AAAA;AACA;AACA;AACA,OAAO,SAAP;AACA,SACCA,yBAAyB,IAAIC,uCAD9B,EAECC,cAAc,IAAIC,4BAFnB,EAGCC,wBAAwB,IAAIC,sCAH7B,EAICC,aAAa,IAAIC,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/index.js"],"names":["getBorderClassesAndStyles","__experimentalGetBorderClassesAndStyles","useBorderProps","__experimentalUseBorderProps","getColorClassesAndStyles","__experimentalGetColorClassesAndStyles","getTypographyClassesAndStyles","useColorProps","__experimentalUseColorProps","useCustomSides","__experimentalUseCustomSides","getSpacingClassesAndStyles","__experimentalGetSpacingClassesAndStyles","getGapCSSValue","__experimentalGetGapCSSValue","useCachedTruthy","storeConfig","store","SETTINGS_DEFAULTS"],"mappings":"AAAA;AACA;AACA;AACA,OAAO,SAAP;AACA,SACCA,yBAAyB,IAAIC,uCAD9B,EAECC,cAAc,IAAIC,4BAFnB,EAGCC,wBAAwB,IAAIC,sCAH7B,EAICC,6BAJD,EAKCC,aAAa,IAAIC,2BALlB,EAMCC,cAAc,IAAIC,4BANnB,EAOCC,0BAA0B,IAAIC,wCAP/B,EAQCC,cAAc,IAAIC,4BARnB,EASCC,eATD,QAUO,SAVP;AAWA,cAAc,cAAd;AACA,cAAc,YAAd;AACA,cAAc,SAAd;AACA,SAASC,WAAT,EAAsBC,KAAtB,QAAmC,SAAnC;AACA,SAASC,iBAAT,QAAkC,kBAAlC","sourcesContent":["/**\n * Internal dependencies\n */\nimport './hooks';\nexport {\n\tgetBorderClassesAndStyles as __experimentalGetBorderClassesAndStyles,\n\tuseBorderProps as __experimentalUseBorderProps,\n\tgetColorClassesAndStyles as __experimentalGetColorClassesAndStyles,\n\tgetTypographyClassesAndStyles,\n\tuseColorProps as __experimentalUseColorProps,\n\tuseCustomSides as __experimentalUseCustomSides,\n\tgetSpacingClassesAndStyles as __experimentalGetSpacingClassesAndStyles,\n\tgetGapCSSValue as __experimentalGetGapCSSValue,\n\tuseCachedTruthy,\n} from './hooks';\nexport * from './components';\nexport * from './elements';\nexport * from './utils';\nexport { storeConfig, store } from './store';\nexport { SETTINGS_DEFAULTS } from './store/defaults';\n"]}
|