@wordpress/block-editor 13.2.0 → 13.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/README.md +0 -5
- package/build/components/alignment-control/ui.js +2 -2
- package/build/components/alignment-control/ui.js.map +1 -1
- package/build/components/block-alignment-control/ui.js +1 -1
- package/build/components/block-alignment-control/ui.js.map +1 -1
- package/build/components/block-alignment-control/ui.native.js +1 -1
- package/build/components/block-alignment-control/ui.native.js.map +1 -1
- package/build/components/block-breadcrumb/index.js +12 -1
- package/build/components/block-breadcrumb/index.js.map +1 -1
- package/build/components/block-inspector/index.js +6 -3
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +3 -1
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-refs.js +9 -2
- package/build/components/block-list/use-block-props/use-block-refs.js.map +1 -1
- package/build/components/block-list/use-block-props/use-is-hovered.js +25 -9
- 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 +3 -2
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-lock/modal.js +2 -0
- package/build/components/block-lock/modal.js.map +1 -1
- package/build/components/block-lock/toolbar.js +0 -1
- package/build/components/block-lock/toolbar.js.map +1 -1
- package/build/components/block-mover/button.js +1 -1
- package/build/components/block-mover/button.js.map +1 -1
- package/build/components/block-mover/index.js +1 -1
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-pattern-setup/setup-toolbar.js +2 -2
- package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build/components/block-patterns-paging/index.js +5 -7
- package/build/components/block-patterns-paging/index.js.map +1 -1
- package/build/components/block-quick-navigation/index.js +20 -17
- package/build/components/block-quick-navigation/index.js.map +1 -1
- package/build/components/block-removal-warning-modal/index.js +2 -0
- package/build/components/block-removal-warning-modal/index.js.map +1 -1
- package/build/components/block-rename/modal.js +4 -12
- package/build/components/block-rename/modal.js.map +1 -1
- package/build/components/block-switcher/index.js +1 -1
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-switcher/pattern-transformations-menu.js +11 -12
- package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build/components/block-switcher/preview-block-popover.js +20 -17
- package/build/components/block-switcher/preview-block-popover.js.map +1 -1
- package/build/components/block-toolbar/shuffle.js +6 -2
- package/build/components/block-toolbar/shuffle.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +7 -58
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/block-toolbar-breadcrumb.js +9 -2
- package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
- package/build/components/block-tools/index.js +14 -1
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/use-show-block-tools.js +9 -8
- package/build/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserter-button.js +45 -0
- package/build/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -0
- package/build/components/block-tools/zoom-out-mode-inserters.js +29 -28
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build/components/block-tools/zoom-out-popover.js +58 -0
- package/build/components/block-tools/zoom-out-popover.js.map +1 -0
- package/build/components/block-tools/zoom-out-toolbar.js +138 -0
- package/build/components/block-tools/zoom-out-toolbar.js.map +1 -0
- package/build/components/button-block-appender/index.js +3 -1
- package/build/components/button-block-appender/index.js.map +1 -1
- package/build/components/child-layout-control/index.js +26 -18
- package/build/components/child-layout-control/index.js.map +1 -1
- package/build/components/date-format-picker/index.js +1 -1
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/default-block-appender/index.js +7 -4
- package/build/components/default-block-appender/index.js.map +1 -1
- package/build/components/dimensions-tool/index.js +6 -4
- package/build/components/dimensions-tool/index.js.map +1 -1
- package/build/components/font-appearance-control/index.js +22 -62
- package/build/components/font-appearance-control/index.js.map +1 -1
- package/build/components/global-styles/background-panel.js +185 -116
- package/build/components/global-styles/background-panel.js.map +1 -1
- package/build/components/global-styles/border-panel.js +2 -1
- package/build/components/global-styles/border-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.js +2 -1
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +2 -1
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +2 -1
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/hooks.js +13 -1
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/image-settings-panel.js +2 -1
- package/build/components/global-styles/image-settings-panel.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +45 -24
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/typography-utils.js +121 -0
- package/build/components/global-styles/typography-utils.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +47 -13
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +17 -7
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/grid/grid-item-movers.js +90 -48
- package/build/components/grid/grid-item-movers.js.map +1 -1
- package/build/components/grid/grid-item-resizer.js +2 -2
- package/build/components/grid/grid-item-resizer.js.map +1 -1
- package/build/components/grid/grid-visualizer.js +117 -37
- package/build/components/grid/grid-visualizer.js.map +1 -1
- package/build/components/grid/use-grid-layout-sync.js +60 -41
- package/build/components/grid/use-grid-layout-sync.js.map +1 -1
- package/build/components/index.js +1 -9
- package/build/components/index.js.map +1 -1
- package/build/components/inner-blocks/index.js +2 -2
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -19
- package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/patterns-filter.js +20 -23
- package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- package/build/components/inserter/media-tab/media-panel.js +1 -0
- package/build/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build/components/inserter/menu.js +26 -4
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/preview-panel.js +20 -3
- package/build/components/inserter/preview-panel.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +2 -1
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter-draggable-blocks/index.js +10 -3
- package/build/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build/components/inspector-controls/block-support-tools-panel.js +2 -1
- package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build/components/inspector-controls-tabs/settings-tab.js +1 -2
- package/build/components/inspector-controls-tabs/settings-tab.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/list-view/block-select-button.js +2 -6
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +2 -2
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/utils.js +3 -1
- package/build/components/list-view/utils.js.map +1 -1
- package/build/components/media-placeholder/index.js +19 -23
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/navigable-toolbar/index.js +3 -1
- package/build/components/navigable-toolbar/index.js.map +1 -1
- package/build/components/rich-text/format-toolbar/index.js +1 -1
- package/build/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build/components/rich-text/index.js +1 -1
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -3
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build/components/tabbed-sidebar/index.js +66 -0
- package/build/components/tabbed-sidebar/index.js.map +1 -0
- package/build/components/url-popover/image-url-input-ui.js +3 -3
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/components/url-popover/index.js +3 -0
- package/build/components/url-popover/index.js.map +1 -1
- package/build/hooks/background.js +26 -4
- package/build/hooks/background.js.map +1 -1
- package/build/hooks/block-hooks.js +11 -17
- package/build/hooks/block-hooks.js.map +1 -1
- package/build/hooks/block-style-variation.js +169 -4
- package/build/hooks/block-style-variation.js.map +1 -1
- package/build/hooks/duotone.js +16 -11
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/grid-visualizer.js +62 -0
- package/build/hooks/grid-visualizer.js.map +1 -0
- package/build/hooks/index.js +15 -2
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/layout-child.js +47 -23
- package/build/hooks/layout-child.js.map +1 -1
- package/build/hooks/position.js +4 -15
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/use-bindings-attributes.js +96 -55
- package/build/hooks/use-bindings-attributes.js.map +1 -1
- package/build/hooks/utils.js +2 -0
- package/build/hooks/utils.js.map +1 -1
- package/build/layouts/constrained.js +50 -4
- package/build/layouts/constrained.js.map +1 -1
- package/build/layouts/grid.js +92 -51
- package/build/layouts/grid.js.map +1 -1
- package/build/private-apis.js +6 -4
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +18 -1
- package/build/store/actions.js.map +1 -1
- package/build/store/defaults.js +0 -2
- package/build/store/defaults.js.map +1 -1
- package/build/store/defaults.native.js +0 -3
- package/build/store/defaults.native.js.map +1 -1
- package/build/store/private-keys.js +2 -1
- package/build/store/private-keys.js.map +1 -1
- package/build/store/reducer.js +19 -1
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +13 -1
- package/build/store/selectors.js.map +1 -1
- package/build/utils/format-font-style.js +45 -0
- package/build/utils/format-font-style.js.map +1 -0
- package/build/utils/format-font-weight.js +68 -0
- package/build/utils/format-font-weight.js.map +1 -0
- package/build/utils/get-editor-region.js +34 -0
- package/build/utils/get-editor-region.js.map +1 -0
- package/build/utils/get-font-styles-and-weights.js +167 -0
- package/build/utils/get-font-styles-and-weights.js.map +1 -0
- package/build/utils/pasting.js +5 -13
- package/build/utils/pasting.js.map +1 -1
- package/build-module/components/alignment-control/ui.js +2 -2
- package/build-module/components/alignment-control/ui.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.js +1 -1
- package/build-module/components/block-alignment-control/ui.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.native.js +1 -1
- package/build-module/components/block-alignment-control/ui.native.js.map +1 -1
- package/build-module/components/block-breadcrumb/index.js +12 -1
- package/build-module/components/block-breadcrumb/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +6 -3
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +3 -1
- 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-refs.js +11 -4
- package/build-module/components/block-list/use-block-props/use-block-refs.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-is-hovered.js +26 -9
- 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 +3 -2
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-lock/modal.js +2 -0
- package/build-module/components/block-lock/modal.js.map +1 -1
- package/build-module/components/block-lock/toolbar.js +0 -1
- package/build-module/components/block-lock/toolbar.js.map +1 -1
- package/build-module/components/block-mover/button.js +1 -1
- package/build-module/components/block-mover/button.js.map +1 -1
- package/build-module/components/block-mover/index.js +1 -1
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/setup-toolbar.js +2 -2
- package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build-module/components/block-patterns-paging/index.js +5 -7
- package/build-module/components/block-patterns-paging/index.js.map +1 -1
- package/build-module/components/block-quick-navigation/index.js +20 -17
- package/build-module/components/block-quick-navigation/index.js.map +1 -1
- package/build-module/components/block-removal-warning-modal/index.js +2 -0
- package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
- package/build-module/components/block-rename/modal.js +5 -13
- package/build-module/components/block-rename/modal.js.map +1 -1
- package/build-module/components/block-switcher/index.js +1 -1
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-switcher/pattern-transformations-menu.js +12 -13
- package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build-module/components/block-switcher/preview-block-popover.js +20 -17
- package/build-module/components/block-switcher/preview-block-popover.js.map +1 -1
- package/build-module/components/block-toolbar/shuffle.js +6 -2
- package/build-module/components/block-toolbar/shuffle.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +10 -61
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js +9 -2
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
- package/build-module/components/block-tools/index.js +14 -1
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/use-show-block-tools.js +9 -8
- package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-mode-inserter-button.js +37 -0
- package/build-module/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -0
- package/build-module/components/block-tools/zoom-out-mode-inserters.js +30 -29
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-popover.js +49 -0
- package/build-module/components/block-tools/zoom-out-popover.js.map +1 -0
- package/build-module/components/block-tools/zoom-out-toolbar.js +131 -0
- package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -0
- package/build-module/components/button-block-appender/index.js +3 -1
- package/build-module/components/button-block-appender/index.js.map +1 -1
- package/build-module/components/child-layout-control/index.js +27 -19
- package/build-module/components/child-layout-control/index.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +2 -2
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/default-block-appender/index.js +7 -4
- package/build-module/components/default-block-appender/index.js.map +1 -1
- package/build-module/components/dimensions-tool/index.js +6 -4
- package/build-module/components/dimensions-tool/index.js.map +1 -1
- package/build-module/components/font-appearance-control/index.js +24 -62
- package/build-module/components/font-appearance-control/index.js.map +1 -1
- package/build-module/components/global-styles/background-panel.js +188 -119
- package/build-module/components/global-styles/background-panel.js.map +1 -1
- package/build-module/components/global-styles/border-panel.js +3 -2
- package/build-module/components/global-styles/border-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +3 -2
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +3 -2
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +3 -2
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +13 -1
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/image-settings-panel.js +3 -2
- package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +47 -26
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/typography-utils.js +117 -0
- package/build-module/components/global-styles/typography-utils.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +47 -13
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +15 -6
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/grid/grid-item-movers.js +93 -50
- package/build-module/components/grid/grid-item-movers.js.map +1 -1
- package/build-module/components/grid/grid-item-resizer.js +2 -2
- package/build-module/components/grid/grid-item-resizer.js.map +1 -1
- package/build-module/components/grid/grid-visualizer.js +118 -38
- package/build-module/components/grid/grid-visualizer.js.map +1 -1
- package/build-module/components/grid/use-grid-layout-sync.js +61 -42
- package/build-module/components/grid/use-grid-layout-sync.js.map +1 -1
- package/build-module/components/index.js +0 -5
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +2 -2
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -19
- package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +20 -23
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-panel.js +1 -0
- package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build-module/components/inserter/menu.js +26 -4
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/preview-panel.js +20 -3
- package/build-module/components/inserter/preview-panel.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +2 -1
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter-draggable-blocks/index.js +10 -3
- package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build-module/components/inspector-controls/block-support-tools-panel.js +3 -2
- package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/settings-tab.js +1 -2
- package/build-module/components/inspector-controls-tabs/settings-tab.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/list-view/block-select-button.js +3 -7
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +2 -2
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/utils.js +3 -1
- package/build-module/components/list-view/utils.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +19 -23
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/navigable-toolbar/index.js +3 -1
- package/build-module/components/navigable-toolbar/index.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar/index.js +1 -1
- package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +1 -1
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -3
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build-module/components/tabbed-sidebar/index.js +60 -0
- package/build-module/components/tabbed-sidebar/index.js.map +1 -0
- package/build-module/components/url-popover/image-url-input-ui.js +3 -3
- package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build-module/components/url-popover/index.js +3 -0
- package/build-module/components/url-popover/index.js.map +1 -1
- package/build-module/hooks/background.js +26 -4
- package/build-module/hooks/background.js.map +1 -1
- package/build-module/hooks/block-hooks.js +11 -17
- package/build-module/hooks/block-hooks.js.map +1 -1
- package/build-module/hooks/block-style-variation.js +168 -4
- package/build-module/hooks/block-style-variation.js.map +1 -1
- package/build-module/hooks/duotone.js +16 -11
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/grid-visualizer.js +61 -0
- package/build-module/hooks/grid-visualizer.js.map +1 -0
- package/build-module/hooks/index.js +3 -0
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/layout-child.js +47 -23
- package/build-module/hooks/layout-child.js.map +1 -1
- package/build-module/hooks/position.js +4 -15
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/use-bindings-attributes.js +96 -56
- package/build-module/hooks/use-bindings-attributes.js.map +1 -1
- package/build-module/hooks/utils.js +2 -0
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/layouts/constrained.js +50 -4
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/layouts/grid.js +92 -51
- package/build-module/layouts/grid.js.map +1 -1
- package/build-module/private-apis.js +8 -6
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +15 -0
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/defaults.js +0 -2
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/defaults.native.js +0 -3
- package/build-module/store/defaults.native.js.map +1 -1
- package/build-module/store/private-keys.js +1 -0
- package/build-module/store/private-keys.js.map +1 -1
- package/build-module/store/reducer.js +18 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +10 -0
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/format-font-style.js +39 -0
- package/build-module/utils/format-font-style.js.map +1 -0
- package/build-module/utils/format-font-weight.js +62 -0
- package/build-module/utils/format-font-weight.js.map +1 -0
- package/build-module/utils/get-editor-region.js +28 -0
- package/build-module/utils/get-editor-region.js.map +1 -0
- package/build-module/utils/get-font-styles-and-weights.js +160 -0
- package/build-module/utils/get-font-styles-and-weights.js.map +1 -0
- package/build-module/utils/pasting.js +5 -13
- package/build-module/utils/pasting.js.map +1 -1
- package/build-style/content-rtl.css +7 -6
- package/build-style/content.css +7 -6
- package/build-style/style-rtl.css +356 -181
- package/build-style/style.css +356 -181
- package/build-types/components/block-context/index.d.ts +2 -2
- package/build-types/components/block-context/index.d.ts.map +1 -1
- package/build-types/utils/dom.d.ts.map +1 -1
- package/package.json +32 -32
- package/src/components/alignment-control/ui.js +2 -2
- package/src/components/block-alignment-control/ui.js +1 -1
- package/src/components/block-alignment-control/ui.native.js +1 -1
- package/src/components/block-breadcrumb/index.js +16 -1
- package/src/components/block-context/README.md +4 -4
- package/src/components/block-inspector/index.js +8 -4
- package/src/components/block-list/content.scss +2 -16
- package/src/components/block-list/use-block-props/index.js +1 -1
- package/src/components/block-list/use-block-props/use-block-refs.js +19 -3
- package/src/components/block-list/use-block-props/use-is-hovered.js +26 -11
- package/src/components/block-list/use-in-between-inserter.js +5 -1
- package/src/components/block-lock/modal.js +10 -2
- package/src/components/block-lock/style.scss +4 -8
- package/src/components/block-lock/toolbar.js +0 -1
- package/src/components/block-mover/button.js +1 -1
- package/src/components/block-mover/index.js +1 -1
- package/src/components/block-pattern-setup/setup-toolbar.js +2 -2
- package/src/components/block-patterns-paging/index.js +8 -11
- package/src/components/block-patterns-paging/style.scss +0 -5
- package/src/components/block-quick-navigation/index.js +21 -28
- package/src/components/block-removal-warning-modal/index.js +10 -2
- package/src/components/block-rename/modal.js +2 -8
- package/src/components/block-switcher/index.js +1 -1
- package/src/components/block-switcher/pattern-transformations-menu.js +17 -15
- package/src/components/block-switcher/preview-block-popover.js +20 -14
- package/src/components/block-switcher/style.scss +8 -17
- package/src/components/block-switcher/test/index.js +6 -6
- package/src/components/block-toolbar/shuffle.js +9 -1
- package/src/components/block-toolbar/style.scss +1 -11
- package/src/components/block-tools/block-selection-button.js +11 -83
- package/src/components/block-tools/block-toolbar-breadcrumb.js +9 -4
- package/src/components/block-tools/index.js +21 -1
- package/src/components/block-tools/style.scss +23 -0
- package/src/components/block-tools/use-show-block-tools.js +21 -10
- package/src/components/block-tools/zoom-out-mode-inserter-button.js +47 -0
- package/src/components/block-tools/zoom-out-mode-inserters.js +44 -33
- package/src/components/block-tools/zoom-out-popover.js +50 -0
- package/src/components/block-tools/zoom-out-toolbar.js +140 -0
- package/src/components/button-block-appender/index.js +2 -1
- package/src/components/child-layout-control/index.js +41 -23
- package/src/components/date-format-picker/index.js +2 -2
- package/src/components/date-format-picker/style.scss +0 -9
- package/src/components/default-block-appender/index.js +11 -4
- package/src/components/dimensions-tool/index.js +97 -89
- package/src/components/font-appearance-control/index.js +24 -82
- package/src/components/font-appearance-control/style.scss +3 -5
- package/src/components/global-styles/background-panel.js +266 -167
- package/src/components/global-styles/border-panel.js +3 -2
- package/src/components/global-styles/color-panel.js +3 -2
- package/src/components/global-styles/dimensions-panel.js +3 -2
- package/src/components/global-styles/filters-panel.js +3 -2
- package/src/components/global-styles/hooks.js +14 -1
- package/src/components/global-styles/image-settings-panel.js +3 -2
- package/src/components/global-styles/style.scss +116 -19
- package/src/components/global-styles/test/typography-utils.js +594 -0
- package/src/components/global-styles/test/use-global-styles-output.js +3 -1
- package/src/components/global-styles/typography-panel.js +56 -27
- package/src/components/global-styles/typography-utils.js +159 -0
- package/src/components/global-styles/use-global-styles-output.js +45 -10
- package/src/components/global-styles/utils.js +17 -6
- package/src/components/grid/grid-item-movers.js +140 -86
- package/src/components/grid/grid-item-resizer.js +3 -2
- package/src/components/grid/grid-visualizer.js +172 -55
- package/src/components/grid/style.scss +157 -8
- package/src/components/grid/use-grid-layout-sync.js +88 -46
- package/src/components/iframe/content.scss +2 -1
- package/src/components/index.js +0 -5
- package/src/components/inner-blocks/index.js +6 -2
- package/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -16
- package/src/components/inserter/block-patterns-tab/patterns-filter.js +40 -44
- package/src/components/inserter/media-tab/media-panel.js +1 -0
- package/src/components/inserter/menu.js +47 -13
- package/src/components/inserter/preview-panel.js +27 -4
- package/src/components/inserter/quick-inserter.js +6 -1
- package/src/components/inserter/style.scss +58 -92
- package/src/components/inserter-draggable-blocks/index.js +11 -3
- package/src/components/inspector-controls/block-support-tools-panel.js +3 -3
- package/src/components/inspector-controls-tabs/settings-tab.js +0 -2
- package/src/components/inspector-controls-tabs/style.scss +0 -21
- package/src/components/link-control/link-preview.js +1 -1
- package/src/components/list-view/block-select-button.js +3 -13
- package/src/components/list-view/block.js +10 -3
- package/src/components/list-view/style.scss +2 -1
- package/src/components/list-view/utils.js +13 -2
- package/src/components/media-placeholder/index.js +22 -32
- package/src/components/navigable-toolbar/index.js +3 -1
- package/src/components/rich-text/format-toolbar/index.js +1 -1
- package/src/components/rich-text/index.js +1 -1
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -2
- package/src/components/tabbed-sidebar/README.md +76 -0
- package/src/components/tabbed-sidebar/index.js +70 -0
- package/src/components/tabbed-sidebar/style.scss +53 -0
- package/src/components/url-popover/image-url-input-ui.js +3 -3
- package/src/components/url-popover/index.js +3 -0
- package/src/components/url-popover/style.scss +1 -0
- package/src/hooks/background.js +25 -10
- package/src/hooks/block-hooks.js +9 -16
- package/src/hooks/block-style-variation.js +202 -3
- package/src/hooks/duotone.js +16 -12
- package/src/hooks/grid-visualizer.js +62 -0
- package/src/hooks/index.js +3 -0
- package/src/hooks/layout-child.js +64 -39
- package/src/hooks/position.js +3 -20
- package/src/hooks/test/get-variation-styles-with-ref-values.js +91 -0
- package/src/hooks/use-bindings-attributes.js +107 -63
- package/src/hooks/utils.js +2 -0
- package/src/layouts/constrained.js +53 -4
- package/src/layouts/grid.js +148 -51
- package/src/private-apis.js +12 -7
- package/src/store/actions.js +15 -0
- package/src/store/defaults.js +0 -2
- package/src/store/defaults.native.js +0 -3
- package/src/store/private-keys.js +1 -0
- package/src/store/reducer.js +18 -0
- package/src/store/selectors.js +10 -0
- package/src/style.scss +1 -1
- package/src/utils/format-font-style.js +40 -0
- package/src/utils/format-font-weight.js +63 -0
- package/src/utils/get-editor-region.js +31 -0
- package/src/utils/get-font-styles-and-weights.js +191 -0
- package/src/utils/pasting.js +5 -12
- package/src/utils/test/format-font-style.js +34 -0
- package/src/utils/test/format-font-weight.js +66 -0
- package/src/utils/test/get-font-styles-and-weights.js +513 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/inserter/reusable-block-rename-hint.js +0 -71
- package/build/components/inserter/reusable-block-rename-hint.js.map +0 -1
- package/build/components/inspector-controls-tabs/settings-tab-hint.js +0 -53
- package/build/components/inspector-controls-tabs/settings-tab-hint.js.map +0 -1
- package/build-module/components/inserter/reusable-block-rename-hint.js +0 -64
- package/build-module/components/inserter/reusable-block-rename-hint.js.map +0 -1
- package/build-module/components/inspector-controls-tabs/settings-tab-hint.js +0 -47
- package/build-module/components/inspector-controls-tabs/settings-tab-hint.js.map +0 -1
- package/src/components/inserter/reusable-block-rename-hint.js +0 -69
- package/src/components/inspector-controls-tabs/settings-tab-hint.js +0 -52
- package/src/hooks/position.scss +0 -18
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { FontSizePicker, __experimentalNumberControl as NumberControl, __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem } from '@wordpress/components';
|
|
5
5
|
import { __ } from '@wordpress/i18n';
|
|
6
|
-
import { useCallback, useMemo } from '@wordpress/element';
|
|
6
|
+
import { useCallback, useMemo, useEffect } from '@wordpress/element';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Internal dependencies
|
|
@@ -16,8 +16,9 @@ import TextAlignmentControl from '../text-alignment-control';
|
|
|
16
16
|
import TextTransformControl from '../text-transform-control';
|
|
17
17
|
import TextDecorationControl from '../text-decoration-control';
|
|
18
18
|
import WritingModeControl from '../writing-mode-control';
|
|
19
|
-
import { getValueFromVariable,
|
|
19
|
+
import { getValueFromVariable, useToolsPanelDropdownMenuProps } from './utils';
|
|
20
20
|
import { setImmutably } from '../../utils/object';
|
|
21
|
+
import { getMergedFontFamiliesAndFontFamilyFaces, findNearestStyleAndWeight } from './typography-utils';
|
|
21
22
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
22
23
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
23
24
|
const MIN_TEXT_COLUMNS = 1;
|
|
@@ -95,6 +96,7 @@ function TypographyToolsPanel({
|
|
|
95
96
|
panelId,
|
|
96
97
|
children
|
|
97
98
|
}) {
|
|
99
|
+
const dropdownMenuProps = useToolsPanelDropdownMenuProps();
|
|
98
100
|
const resetAll = () => {
|
|
99
101
|
const updatedValue = resetAllFilter(value);
|
|
100
102
|
onChange(updatedValue);
|
|
@@ -103,7 +105,7 @@ function TypographyToolsPanel({
|
|
|
103
105
|
label: __('Typography'),
|
|
104
106
|
resetAll: resetAll,
|
|
105
107
|
panelId: panelId,
|
|
106
|
-
dropdownMenuProps:
|
|
108
|
+
dropdownMenuProps: dropdownMenuProps,
|
|
107
109
|
children: children
|
|
108
110
|
});
|
|
109
111
|
}
|
|
@@ -134,16 +136,15 @@ export default function TypographyPanel({
|
|
|
134
136
|
|
|
135
137
|
// Font Family
|
|
136
138
|
const hasFontFamilyEnabled = useHasFontFamilyControl(settings);
|
|
137
|
-
const fontFamilies = settings?.typography?.fontFamilies;
|
|
138
|
-
const mergedFontFamilies = useMemo(() => {
|
|
139
|
-
return ['default', 'theme', 'custom'].flatMap(key => {
|
|
140
|
-
var _fontFamilies$key;
|
|
141
|
-
return (_fontFamilies$key = fontFamilies?.[key]) !== null && _fontFamilies$key !== void 0 ? _fontFamilies$key : [];
|
|
142
|
-
});
|
|
143
|
-
}, [fontFamilies]);
|
|
144
139
|
const fontFamily = decodeValue(inheritedValue?.typography?.fontFamily);
|
|
140
|
+
const {
|
|
141
|
+
fontFamilies,
|
|
142
|
+
fontFamilyFaces
|
|
143
|
+
} = useMemo(() => {
|
|
144
|
+
return getMergedFontFamiliesAndFontFamilyFaces(settings, fontFamily);
|
|
145
|
+
}, [settings, fontFamily]);
|
|
145
146
|
const setFontFamily = newValue => {
|
|
146
|
-
const slug =
|
|
147
|
+
const slug = fontFamilies?.find(({
|
|
147
148
|
fontFamily: f
|
|
148
149
|
}) => f === newValue)?.slug;
|
|
149
150
|
onChange(setImmutably(value, ['typography', 'fontFamily'], slug ? `var:preset|font-family|${slug}` : newValue || undefined));
|
|
@@ -170,23 +171,43 @@ export default function TypographyPanel({
|
|
|
170
171
|
const hasFontWeights = settings?.typography?.fontWeight;
|
|
171
172
|
const fontStyle = decodeValue(inheritedValue?.typography?.fontStyle);
|
|
172
173
|
const fontWeight = decodeValue(inheritedValue?.typography?.fontWeight);
|
|
173
|
-
const
|
|
174
|
+
const {
|
|
175
|
+
nearestFontStyle,
|
|
176
|
+
nearestFontWeight
|
|
177
|
+
} = findNearestStyleAndWeight(fontFamilyFaces, fontStyle, fontWeight);
|
|
178
|
+
const setFontAppearance = useCallback(({
|
|
174
179
|
fontStyle: newFontStyle,
|
|
175
180
|
fontWeight: newFontWeight
|
|
176
181
|
}) => {
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
...value
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
182
|
+
// Only update the font style and weight if they have changed.
|
|
183
|
+
if (newFontStyle !== fontStyle || newFontWeight !== fontWeight) {
|
|
184
|
+
onChange({
|
|
185
|
+
...value,
|
|
186
|
+
typography: {
|
|
187
|
+
...value?.typography,
|
|
188
|
+
fontStyle: newFontStyle || undefined,
|
|
189
|
+
fontWeight: newFontWeight || undefined
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
}, [fontStyle, fontWeight, onChange, value]);
|
|
186
194
|
const hasFontAppearance = () => !!value?.typography?.fontStyle || !!value?.typography?.fontWeight;
|
|
187
|
-
const resetFontAppearance = () => {
|
|
195
|
+
const resetFontAppearance = useCallback(() => {
|
|
188
196
|
setFontAppearance({});
|
|
189
|
-
};
|
|
197
|
+
}, [setFontAppearance]);
|
|
198
|
+
|
|
199
|
+
// Check if previous font style and weight values are available in the new font family.
|
|
200
|
+
useEffect(() => {
|
|
201
|
+
if (nearestFontStyle && nearestFontWeight) {
|
|
202
|
+
setFontAppearance({
|
|
203
|
+
fontStyle: nearestFontStyle,
|
|
204
|
+
fontWeight: nearestFontWeight
|
|
205
|
+
});
|
|
206
|
+
} else {
|
|
207
|
+
// Reset font appearance if there are no available styles or weights.
|
|
208
|
+
resetFontAppearance();
|
|
209
|
+
}
|
|
210
|
+
}, [nearestFontStyle, nearestFontWeight, resetFontAppearance, setFontAppearance]);
|
|
190
211
|
|
|
191
212
|
// Line Height
|
|
192
213
|
const hasLineHeightEnabled = useHasLineHeightControl(settings);
|
|
@@ -268,7 +289,7 @@ export default function TypographyPanel({
|
|
|
268
289
|
isShownByDefault: defaultControls.fontFamily,
|
|
269
290
|
panelId: panelId,
|
|
270
291
|
children: /*#__PURE__*/_jsx(FontFamilyControl, {
|
|
271
|
-
fontFamilies:
|
|
292
|
+
fontFamilies: fontFamilies,
|
|
272
293
|
value: fontFamily,
|
|
273
294
|
onChange: setFontFamily,
|
|
274
295
|
size: "__unstable-large",
|
|
@@ -304,8 +325,8 @@ export default function TypographyPanel({
|
|
|
304
325
|
onChange: setFontAppearance,
|
|
305
326
|
hasFontStyles: hasFontStyles,
|
|
306
327
|
hasFontWeights: hasFontWeights,
|
|
307
|
-
|
|
308
|
-
|
|
328
|
+
fontFamilyFaces: fontFamilyFaces,
|
|
329
|
+
size: "__unstable-large"
|
|
309
330
|
})
|
|
310
331
|
}), hasLineHeightEnabled && /*#__PURE__*/_jsx(ToolsPanelItem, {
|
|
311
332
|
className: "single-column",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["FontSizePicker","__experimentalNumberControl","NumberControl","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__","useCallback","useMemo","FontFamilyControl","FontAppearanceControl","LineHeightControl","LetterSpacingControl","TextAlignmentControl","TextTransformControl","TextDecorationControl","WritingModeControl","getValueFromVariable","TOOLSPANEL_DROPDOWNMENU_PROPS","setImmutably","jsx","_jsx","jsxs","_jsxs","MIN_TEXT_COLUMNS","MAX_TEXT_COLUMNS","useHasTypographyPanel","settings","hasFontFamily","useHasFontFamilyControl","hasLineHeight","useHasLineHeightControl","hasFontAppearance","useHasAppearanceControl","hasLetterSpacing","useHasLetterSpacingControl","hasTextAlign","useHasTextAlignmentControl","hasTextTransform","useHasTextTransformControl","hasTextDecoration","useHasTextDecorationControl","hasWritingMode","useHasWritingModeControl","hasTextColumns","useHasTextColumnsControl","hasFontSize","useHasFontSizeControl","typography","defaultFontSizes","fontSizes","default","length","theme","custom","customFontSize","some","key","fontFamilies","lineHeight","fontStyle","fontWeight","useAppearanceControlLabel","letterSpacing","textTransform","textAlign","textDecoration","writingMode","textColumns","getMergedFontSizes","_fontSizes$custom","_fontSizes$theme","_fontSizes$default","defaultFontSizesEnabled","TypographyToolsPanel","resetAllFilter","onChange","value","panelId","children","resetAll","updatedValue","label","dropdownMenuProps","DEFAULT_CONTROLS","fontFamily","fontSize","fontAppearance","TypographyPanel","as","Wrapper","inheritedValue","defaultControls","decodeValue","rawValue","hasFontFamilyEnabled","mergedFontFamilies","flatMap","_fontFamilies$key","setFontFamily","newValue","slug","find","f","undefined","resetFontFamily","hasFontSizeEnabled","disableCustomFontSizes","mergedFontSizes","setFontSize","metadata","actualValue","resetFontSize","hasAppearanceControl","appearanceControlLabel","hasFontStyles","hasFontWeights","setFontAppearance","newFontStyle","newFontWeight","resetFontAppearance","hasLineHeightEnabled","setLineHeight","resetLineHeight","hasLetterSpacingControl","setLetterSpacing","resetLetterSpacing","hasTextColumnsControl","setTextColumns","resetTextColumns","hasTextTransformControl","setTextTransform","resetTextTransform","hasTextDecorationControl","setTextDecoration","resetTextDecoration","hasWritingModeControl","setWritingMode","resetWritingMode","hasTextAlignmentControl","setTextAlign","resetTextAlign","previousValue","hasValue","onDeselect","isShownByDefault","size","__nextHasNoMarginBottom","withReset","withSlider","className","__unstableInputWidth","max","min","spinControls","initialPosition","showNone","isBlock"],"sources":["@wordpress/block-editor/src/components/global-styles/typography-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tFontSizePicker,\n\t__experimentalNumberControl as NumberControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useCallback, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport FontFamilyControl from '../font-family';\nimport FontAppearanceControl from '../font-appearance-control';\nimport LineHeightControl from '../line-height-control';\nimport LetterSpacingControl from '../letter-spacing-control';\nimport TextAlignmentControl from '../text-alignment-control';\nimport TextTransformControl from '../text-transform-control';\nimport TextDecorationControl from '../text-decoration-control';\nimport WritingModeControl from '../writing-mode-control';\nimport { getValueFromVariable, TOOLSPANEL_DROPDOWNMENU_PROPS } from './utils';\nimport { setImmutably } from '../../utils/object';\n\nconst MIN_TEXT_COLUMNS = 1;\nconst MAX_TEXT_COLUMNS = 6;\n\nexport function useHasTypographyPanel( settings ) {\n\tconst hasFontFamily = useHasFontFamilyControl( settings );\n\tconst hasLineHeight = useHasLineHeightControl( settings );\n\tconst hasFontAppearance = useHasAppearanceControl( settings );\n\tconst hasLetterSpacing = useHasLetterSpacingControl( settings );\n\tconst hasTextAlign = useHasTextAlignmentControl( settings );\n\tconst hasTextTransform = useHasTextTransformControl( settings );\n\tconst hasTextDecoration = useHasTextDecorationControl( settings );\n\tconst hasWritingMode = useHasWritingModeControl( settings );\n\tconst hasTextColumns = useHasTextColumnsControl( settings );\n\tconst hasFontSize = useHasFontSizeControl( settings );\n\n\treturn (\n\t\thasFontFamily ||\n\t\thasLineHeight ||\n\t\thasFontAppearance ||\n\t\thasLetterSpacing ||\n\t\thasTextAlign ||\n\t\thasTextTransform ||\n\t\thasFontSize ||\n\t\thasTextDecoration ||\n\t\thasWritingMode ||\n\t\thasTextColumns\n\t);\n}\n\nfunction useHasFontSizeControl( settings ) {\n\treturn (\n\t\t( settings?.typography?.defaultFontSizes !== false &&\n\t\t\tsettings?.typography?.fontSizes?.default?.length ) ||\n\t\tsettings?.typography?.fontSizes?.theme?.length ||\n\t\tsettings?.typography?.fontSizes?.custom?.length ||\n\t\tsettings?.typography?.customFontSize\n\t);\n}\n\nfunction useHasFontFamilyControl( settings ) {\n\treturn [ 'default', 'theme', 'custom' ].some(\n\t\t( key ) => settings?.typography?.fontFamilies?.[ key ]?.length\n\t);\n}\n\nfunction useHasLineHeightControl( settings ) {\n\treturn settings?.typography?.lineHeight;\n}\n\nfunction useHasAppearanceControl( settings ) {\n\treturn settings?.typography?.fontStyle || settings?.typography?.fontWeight;\n}\n\nfunction useAppearanceControlLabel( settings ) {\n\tif ( ! settings?.typography?.fontStyle ) {\n\t\treturn __( 'Font weight' );\n\t}\n\tif ( ! settings?.typography?.fontWeight ) {\n\t\treturn __( 'Font style' );\n\t}\n\treturn __( 'Appearance' );\n}\n\nfunction useHasLetterSpacingControl( settings ) {\n\treturn settings?.typography?.letterSpacing;\n}\n\nfunction useHasTextTransformControl( settings ) {\n\treturn settings?.typography?.textTransform;\n}\n\nfunction useHasTextAlignmentControl( settings ) {\n\treturn settings?.typography?.textAlign;\n}\n\nfunction useHasTextDecorationControl( settings ) {\n\treturn settings?.typography?.textDecoration;\n}\n\nfunction useHasWritingModeControl( settings ) {\n\treturn settings?.typography?.writingMode;\n}\n\nfunction useHasTextColumnsControl( settings ) {\n\treturn settings?.typography?.textColumns;\n}\n\n/**\n * Concatenate all the font sizes into a single list for the font size picker.\n *\n * @param {Object} settings The global styles settings.\n *\n * @return {Array} The merged font sizes.\n */\nfunction getMergedFontSizes( settings ) {\n\tconst fontSizes = settings?.typography?.fontSizes;\n\tconst defaultFontSizesEnabled = !! settings?.typography?.defaultFontSizes;\n\treturn [\n\t\t...( fontSizes?.custom ?? [] ),\n\t\t...( fontSizes?.theme ?? [] ),\n\t\t...( defaultFontSizesEnabled ? fontSizes?.default ?? [] : [] ),\n\t];\n}\n\nfunction TypographyToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Typography' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tfontFamily: true,\n\tfontSize: true,\n\tfontAppearance: true,\n\tlineHeight: true,\n\tletterSpacing: true,\n\ttextAlign: true,\n\ttextTransform: true,\n\ttextDecoration: true,\n\twritingMode: true,\n\ttextColumns: true,\n};\n\nexport default function TypographyPanel( {\n\tas: Wrapper = TypographyToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst decodeValue = ( rawValue ) =>\n\t\tgetValueFromVariable( { settings }, '', rawValue );\n\n\t// Font Family\n\tconst hasFontFamilyEnabled = useHasFontFamilyControl( settings );\n\tconst fontFamilies = settings?.typography?.fontFamilies;\n\tconst mergedFontFamilies = useMemo( () => {\n\t\treturn [ 'default', 'theme', 'custom' ].flatMap(\n\t\t\t( key ) => fontFamilies?.[ key ] ?? []\n\t\t);\n\t}, [ fontFamilies ] );\n\tconst fontFamily = decodeValue( inheritedValue?.typography?.fontFamily );\n\tconst setFontFamily = ( newValue ) => {\n\t\tconst slug = mergedFontFamilies?.find(\n\t\t\t( { fontFamily: f } ) => f === newValue\n\t\t)?.slug;\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'fontFamily' ],\n\t\t\t\tslug\n\t\t\t\t\t? `var:preset|font-family|${ slug }`\n\t\t\t\t\t: newValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasFontFamily = () => !! value?.typography?.fontFamily;\n\tconst resetFontFamily = () => setFontFamily( undefined );\n\n\t// Font Size\n\tconst hasFontSizeEnabled = useHasFontSizeControl( settings );\n\tconst disableCustomFontSizes = ! settings?.typography?.customFontSize;\n\tconst mergedFontSizes = getMergedFontSizes( settings );\n\n\tconst fontSize = decodeValue( inheritedValue?.typography?.fontSize );\n\tconst setFontSize = ( newValue, metadata ) => {\n\t\tconst actualValue = !! metadata?.slug\n\t\t\t? `var:preset|font-size|${ metadata?.slug }`\n\t\t\t: newValue;\n\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'fontSize' ],\n\t\t\t\tactualValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasFontSize = () => !! value?.typography?.fontSize;\n\tconst resetFontSize = () => setFontSize( undefined );\n\n\t// Appearance\n\tconst hasAppearanceControl = useHasAppearanceControl( settings );\n\tconst appearanceControlLabel = useAppearanceControlLabel( settings );\n\tconst hasFontStyles = settings?.typography?.fontStyle;\n\tconst hasFontWeights = settings?.typography?.fontWeight;\n\tconst fontStyle = decodeValue( inheritedValue?.typography?.fontStyle );\n\tconst fontWeight = decodeValue( inheritedValue?.typography?.fontWeight );\n\tconst setFontAppearance = ( {\n\t\tfontStyle: newFontStyle,\n\t\tfontWeight: newFontWeight,\n\t} ) => {\n\t\tonChange( {\n\t\t\t...value,\n\t\t\ttypography: {\n\t\t\t\t...value?.typography,\n\t\t\t\tfontStyle: newFontStyle || undefined,\n\t\t\t\tfontWeight: newFontWeight || undefined,\n\t\t\t},\n\t\t} );\n\t};\n\tconst hasFontAppearance = () =>\n\t\t!! value?.typography?.fontStyle || !! value?.typography?.fontWeight;\n\tconst resetFontAppearance = () => {\n\t\tsetFontAppearance( {} );\n\t};\n\n\t// Line Height\n\tconst hasLineHeightEnabled = useHasLineHeightControl( settings );\n\tconst lineHeight = decodeValue( inheritedValue?.typography?.lineHeight );\n\tconst setLineHeight = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'lineHeight' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasLineHeight = () => value?.typography?.lineHeight !== undefined;\n\tconst resetLineHeight = () => setLineHeight( undefined );\n\n\t// Letter Spacing\n\tconst hasLetterSpacingControl = useHasLetterSpacingControl( settings );\n\tconst letterSpacing = decodeValue(\n\t\tinheritedValue?.typography?.letterSpacing\n\t);\n\tconst setLetterSpacing = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'letterSpacing' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasLetterSpacing = () => !! value?.typography?.letterSpacing;\n\tconst resetLetterSpacing = () => setLetterSpacing( undefined );\n\n\t// Text Columns\n\tconst hasTextColumnsControl = useHasTextColumnsControl( settings );\n\tconst textColumns = decodeValue( inheritedValue?.typography?.textColumns );\n\tconst setTextColumns = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'textColumns' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasTextColumns = () => !! value?.typography?.textColumns;\n\tconst resetTextColumns = () => setTextColumns( undefined );\n\n\t// Text Transform\n\tconst hasTextTransformControl = useHasTextTransformControl( settings );\n\tconst textTransform = decodeValue(\n\t\tinheritedValue?.typography?.textTransform\n\t);\n\tconst setTextTransform = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'textTransform' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasTextTransform = () => !! value?.typography?.textTransform;\n\tconst resetTextTransform = () => setTextTransform( undefined );\n\n\t// Text Decoration\n\tconst hasTextDecorationControl = useHasTextDecorationControl( settings );\n\tconst textDecoration = decodeValue(\n\t\tinheritedValue?.typography?.textDecoration\n\t);\n\tconst setTextDecoration = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'textDecoration' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasTextDecoration = () => !! value?.typography?.textDecoration;\n\tconst resetTextDecoration = () => setTextDecoration( undefined );\n\n\t// Text Orientation\n\tconst hasWritingModeControl = useHasWritingModeControl( settings );\n\tconst writingMode = decodeValue( inheritedValue?.typography?.writingMode );\n\tconst setWritingMode = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'writingMode' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasWritingMode = () => !! value?.typography?.writingMode;\n\tconst resetWritingMode = () => setWritingMode( undefined );\n\n\t// Text Alignment\n\tconst hasTextAlignmentControl = useHasTextAlignmentControl( settings );\n\n\tconst textAlign = decodeValue( inheritedValue?.typography?.textAlign );\n\tconst setTextAlign = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'textAlign' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasTextAlign = () => !! value?.typography?.textAlign;\n\tconst resetTextAlign = () => setTextAlign( undefined );\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\ttypography: {},\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ hasFontFamilyEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Font' ) }\n\t\t\t\t\thasValue={ hasFontFamily }\n\t\t\t\t\tonDeselect={ resetFontFamily }\n\t\t\t\t\tisShownByDefault={ defaultControls.fontFamily }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<FontFamilyControl\n\t\t\t\t\t\tfontFamilies={ mergedFontFamilies }\n\t\t\t\t\t\tvalue={ fontFamily }\n\t\t\t\t\t\tonChange={ setFontFamily }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasFontSizeEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Size' ) }\n\t\t\t\t\thasValue={ hasFontSize }\n\t\t\t\t\tonDeselect={ resetFontSize }\n\t\t\t\t\tisShownByDefault={ defaultControls.fontSize }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<FontSizePicker\n\t\t\t\t\t\tvalue={ fontSize }\n\t\t\t\t\t\tonChange={ setFontSize }\n\t\t\t\t\t\tfontSizes={ mergedFontSizes }\n\t\t\t\t\t\tdisableCustomFontSizes={ disableCustomFontSizes }\n\t\t\t\t\t\twithReset={ false }\n\t\t\t\t\t\twithSlider\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasAppearanceControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ appearanceControlLabel }\n\t\t\t\t\thasValue={ hasFontAppearance }\n\t\t\t\t\tonDeselect={ resetFontAppearance }\n\t\t\t\t\tisShownByDefault={ defaultControls.fontAppearance }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<FontAppearanceControl\n\t\t\t\t\t\tvalue={ {\n\t\t\t\t\t\t\tfontStyle,\n\t\t\t\t\t\t\tfontWeight,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonChange={ setFontAppearance }\n\t\t\t\t\t\thasFontStyles={ hasFontStyles }\n\t\t\t\t\t\thasFontWeights={ hasFontWeights }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasLineHeightEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Line height' ) }\n\t\t\t\t\thasValue={ hasLineHeight }\n\t\t\t\t\tonDeselect={ resetLineHeight }\n\t\t\t\t\tisShownByDefault={ defaultControls.lineHeight }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<LineHeightControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__unstableInputWidth=\"auto\"\n\t\t\t\t\t\tvalue={ lineHeight }\n\t\t\t\t\t\tonChange={ setLineHeight }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasLetterSpacingControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Letter spacing' ) }\n\t\t\t\t\thasValue={ hasLetterSpacing }\n\t\t\t\t\tonDeselect={ resetLetterSpacing }\n\t\t\t\t\tisShownByDefault={ defaultControls.letterSpacing }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<LetterSpacingControl\n\t\t\t\t\t\tvalue={ letterSpacing }\n\t\t\t\t\t\tonChange={ setLetterSpacing }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__unstableInputWidth=\"auto\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasTextColumnsControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\thasValue={ hasTextColumns }\n\t\t\t\t\tonDeselect={ resetTextColumns }\n\t\t\t\t\tisShownByDefault={ defaultControls.textColumns }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<NumberControl\n\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\tmax={ MAX_TEXT_COLUMNS }\n\t\t\t\t\t\tmin={ MIN_TEXT_COLUMNS }\n\t\t\t\t\t\tonChange={ setTextColumns }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\tspinControls=\"custom\"\n\t\t\t\t\t\tvalue={ textColumns }\n\t\t\t\t\t\tinitialPosition={ 1 }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasTextDecorationControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Decoration' ) }\n\t\t\t\t\thasValue={ hasTextDecoration }\n\t\t\t\t\tonDeselect={ resetTextDecoration }\n\t\t\t\t\tisShownByDefault={ defaultControls.textDecoration }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<TextDecorationControl\n\t\t\t\t\t\tvalue={ textDecoration }\n\t\t\t\t\t\tonChange={ setTextDecoration }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__unstableInputWidth=\"auto\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasWritingModeControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Orientation' ) }\n\t\t\t\t\thasValue={ hasWritingMode }\n\t\t\t\t\tonDeselect={ resetWritingMode }\n\t\t\t\t\tisShownByDefault={ defaultControls.writingMode }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<WritingModeControl\n\t\t\t\t\t\tvalue={ writingMode }\n\t\t\t\t\t\tonChange={ setWritingMode }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasTextTransformControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Letter case' ) }\n\t\t\t\t\thasValue={ hasTextTransform }\n\t\t\t\t\tonDeselect={ resetTextTransform }\n\t\t\t\t\tisShownByDefault={ defaultControls.textTransform }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<TextTransformControl\n\t\t\t\t\t\tvalue={ textTransform }\n\t\t\t\t\t\tonChange={ setTextTransform }\n\t\t\t\t\t\tshowNone\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasTextAlignmentControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Text alignment' ) }\n\t\t\t\t\thasValue={ hasTextAlign }\n\t\t\t\t\tonDeselect={ resetTextAlign }\n\t\t\t\t\tisShownByDefault={ defaultControls.textAlign }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<TextAlignmentControl\n\t\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\t\tonChange={ setTextAlign }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["FontSizePicker","__experimentalNumberControl","NumberControl","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__","useCallback","useMemo","useEffect","FontFamilyControl","FontAppearanceControl","LineHeightControl","LetterSpacingControl","TextAlignmentControl","TextTransformControl","TextDecorationControl","WritingModeControl","getValueFromVariable","useToolsPanelDropdownMenuProps","setImmutably","getMergedFontFamiliesAndFontFamilyFaces","findNearestStyleAndWeight","jsx","_jsx","jsxs","_jsxs","MIN_TEXT_COLUMNS","MAX_TEXT_COLUMNS","useHasTypographyPanel","settings","hasFontFamily","useHasFontFamilyControl","hasLineHeight","useHasLineHeightControl","hasFontAppearance","useHasAppearanceControl","hasLetterSpacing","useHasLetterSpacingControl","hasTextAlign","useHasTextAlignmentControl","hasTextTransform","useHasTextTransformControl","hasTextDecoration","useHasTextDecorationControl","hasWritingMode","useHasWritingModeControl","hasTextColumns","useHasTextColumnsControl","hasFontSize","useHasFontSizeControl","typography","defaultFontSizes","fontSizes","default","length","theme","custom","customFontSize","some","key","fontFamilies","lineHeight","fontStyle","fontWeight","useAppearanceControlLabel","letterSpacing","textTransform","textAlign","textDecoration","writingMode","textColumns","getMergedFontSizes","_fontSizes$custom","_fontSizes$theme","_fontSizes$default","defaultFontSizesEnabled","TypographyToolsPanel","resetAllFilter","onChange","value","panelId","children","dropdownMenuProps","resetAll","updatedValue","label","DEFAULT_CONTROLS","fontFamily","fontSize","fontAppearance","TypographyPanel","as","Wrapper","inheritedValue","defaultControls","decodeValue","rawValue","hasFontFamilyEnabled","fontFamilyFaces","setFontFamily","newValue","slug","find","f","undefined","resetFontFamily","hasFontSizeEnabled","disableCustomFontSizes","mergedFontSizes","setFontSize","metadata","actualValue","resetFontSize","hasAppearanceControl","appearanceControlLabel","hasFontStyles","hasFontWeights","nearestFontStyle","nearestFontWeight","setFontAppearance","newFontStyle","newFontWeight","resetFontAppearance","hasLineHeightEnabled","setLineHeight","resetLineHeight","hasLetterSpacingControl","setLetterSpacing","resetLetterSpacing","hasTextColumnsControl","setTextColumns","resetTextColumns","hasTextTransformControl","setTextTransform","resetTextTransform","hasTextDecorationControl","setTextDecoration","resetTextDecoration","hasWritingModeControl","setWritingMode","resetWritingMode","hasTextAlignmentControl","setTextAlign","resetTextAlign","previousValue","hasValue","onDeselect","isShownByDefault","size","__nextHasNoMarginBottom","withReset","withSlider","className","__unstableInputWidth","max","min","spinControls","initialPosition","showNone","isBlock"],"sources":["@wordpress/block-editor/src/components/global-styles/typography-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tFontSizePicker,\n\t__experimentalNumberControl as NumberControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useCallback, useMemo, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport FontFamilyControl from '../font-family';\nimport FontAppearanceControl from '../font-appearance-control';\nimport LineHeightControl from '../line-height-control';\nimport LetterSpacingControl from '../letter-spacing-control';\nimport TextAlignmentControl from '../text-alignment-control';\nimport TextTransformControl from '../text-transform-control';\nimport TextDecorationControl from '../text-decoration-control';\nimport WritingModeControl from '../writing-mode-control';\nimport { getValueFromVariable, useToolsPanelDropdownMenuProps } from './utils';\nimport { setImmutably } from '../../utils/object';\nimport {\n\tgetMergedFontFamiliesAndFontFamilyFaces,\n\tfindNearestStyleAndWeight,\n} from './typography-utils';\n\nconst MIN_TEXT_COLUMNS = 1;\nconst MAX_TEXT_COLUMNS = 6;\n\nexport function useHasTypographyPanel( settings ) {\n\tconst hasFontFamily = useHasFontFamilyControl( settings );\n\tconst hasLineHeight = useHasLineHeightControl( settings );\n\tconst hasFontAppearance = useHasAppearanceControl( settings );\n\tconst hasLetterSpacing = useHasLetterSpacingControl( settings );\n\tconst hasTextAlign = useHasTextAlignmentControl( settings );\n\tconst hasTextTransform = useHasTextTransformControl( settings );\n\tconst hasTextDecoration = useHasTextDecorationControl( settings );\n\tconst hasWritingMode = useHasWritingModeControl( settings );\n\tconst hasTextColumns = useHasTextColumnsControl( settings );\n\tconst hasFontSize = useHasFontSizeControl( settings );\n\n\treturn (\n\t\thasFontFamily ||\n\t\thasLineHeight ||\n\t\thasFontAppearance ||\n\t\thasLetterSpacing ||\n\t\thasTextAlign ||\n\t\thasTextTransform ||\n\t\thasFontSize ||\n\t\thasTextDecoration ||\n\t\thasWritingMode ||\n\t\thasTextColumns\n\t);\n}\n\nfunction useHasFontSizeControl( settings ) {\n\treturn (\n\t\t( settings?.typography?.defaultFontSizes !== false &&\n\t\t\tsettings?.typography?.fontSizes?.default?.length ) ||\n\t\tsettings?.typography?.fontSizes?.theme?.length ||\n\t\tsettings?.typography?.fontSizes?.custom?.length ||\n\t\tsettings?.typography?.customFontSize\n\t);\n}\n\nfunction useHasFontFamilyControl( settings ) {\n\treturn [ 'default', 'theme', 'custom' ].some(\n\t\t( key ) => settings?.typography?.fontFamilies?.[ key ]?.length\n\t);\n}\n\nfunction useHasLineHeightControl( settings ) {\n\treturn settings?.typography?.lineHeight;\n}\n\nfunction useHasAppearanceControl( settings ) {\n\treturn settings?.typography?.fontStyle || settings?.typography?.fontWeight;\n}\n\nfunction useAppearanceControlLabel( settings ) {\n\tif ( ! settings?.typography?.fontStyle ) {\n\t\treturn __( 'Font weight' );\n\t}\n\tif ( ! settings?.typography?.fontWeight ) {\n\t\treturn __( 'Font style' );\n\t}\n\treturn __( 'Appearance' );\n}\n\nfunction useHasLetterSpacingControl( settings ) {\n\treturn settings?.typography?.letterSpacing;\n}\n\nfunction useHasTextTransformControl( settings ) {\n\treturn settings?.typography?.textTransform;\n}\n\nfunction useHasTextAlignmentControl( settings ) {\n\treturn settings?.typography?.textAlign;\n}\n\nfunction useHasTextDecorationControl( settings ) {\n\treturn settings?.typography?.textDecoration;\n}\n\nfunction useHasWritingModeControl( settings ) {\n\treturn settings?.typography?.writingMode;\n}\n\nfunction useHasTextColumnsControl( settings ) {\n\treturn settings?.typography?.textColumns;\n}\n\n/**\n * Concatenate all the font sizes into a single list for the font size picker.\n *\n * @param {Object} settings The global styles settings.\n *\n * @return {Array} The merged font sizes.\n */\nfunction getMergedFontSizes( settings ) {\n\tconst fontSizes = settings?.typography?.fontSizes;\n\tconst defaultFontSizesEnabled = !! settings?.typography?.defaultFontSizes;\n\treturn [\n\t\t...( fontSizes?.custom ?? [] ),\n\t\t...( fontSizes?.theme ?? [] ),\n\t\t...( defaultFontSizesEnabled ? fontSizes?.default ?? [] : [] ),\n\t];\n}\n\nfunction TypographyToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Typography' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tfontFamily: true,\n\tfontSize: true,\n\tfontAppearance: true,\n\tlineHeight: true,\n\tletterSpacing: true,\n\ttextAlign: true,\n\ttextTransform: true,\n\ttextDecoration: true,\n\twritingMode: true,\n\ttextColumns: true,\n};\n\nexport default function TypographyPanel( {\n\tas: Wrapper = TypographyToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst decodeValue = ( rawValue ) =>\n\t\tgetValueFromVariable( { settings }, '', rawValue );\n\n\t// Font Family\n\tconst hasFontFamilyEnabled = useHasFontFamilyControl( settings );\n\tconst fontFamily = decodeValue( inheritedValue?.typography?.fontFamily );\n\tconst { fontFamilies, fontFamilyFaces } = useMemo( () => {\n\t\treturn getMergedFontFamiliesAndFontFamilyFaces( settings, fontFamily );\n\t}, [ settings, fontFamily ] );\n\n\tconst setFontFamily = ( newValue ) => {\n\t\tconst slug = fontFamilies?.find(\n\t\t\t( { fontFamily: f } ) => f === newValue\n\t\t)?.slug;\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'fontFamily' ],\n\t\t\t\tslug\n\t\t\t\t\t? `var:preset|font-family|${ slug }`\n\t\t\t\t\t: newValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasFontFamily = () => !! value?.typography?.fontFamily;\n\tconst resetFontFamily = () => setFontFamily( undefined );\n\n\t// Font Size\n\tconst hasFontSizeEnabled = useHasFontSizeControl( settings );\n\tconst disableCustomFontSizes = ! settings?.typography?.customFontSize;\n\tconst mergedFontSizes = getMergedFontSizes( settings );\n\n\tconst fontSize = decodeValue( inheritedValue?.typography?.fontSize );\n\tconst setFontSize = ( newValue, metadata ) => {\n\t\tconst actualValue = !! metadata?.slug\n\t\t\t? `var:preset|font-size|${ metadata?.slug }`\n\t\t\t: newValue;\n\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'fontSize' ],\n\t\t\t\tactualValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasFontSize = () => !! value?.typography?.fontSize;\n\tconst resetFontSize = () => setFontSize( undefined );\n\n\t// Appearance\n\tconst hasAppearanceControl = useHasAppearanceControl( settings );\n\tconst appearanceControlLabel = useAppearanceControlLabel( settings );\n\tconst hasFontStyles = settings?.typography?.fontStyle;\n\tconst hasFontWeights = settings?.typography?.fontWeight;\n\tconst fontStyle = decodeValue( inheritedValue?.typography?.fontStyle );\n\tconst fontWeight = decodeValue( inheritedValue?.typography?.fontWeight );\n\tconst { nearestFontStyle, nearestFontWeight } = findNearestStyleAndWeight(\n\t\tfontFamilyFaces,\n\t\tfontStyle,\n\t\tfontWeight\n\t);\n\tconst setFontAppearance = useCallback(\n\t\t( { fontStyle: newFontStyle, fontWeight: newFontWeight } ) => {\n\t\t\t// Only update the font style and weight if they have changed.\n\t\t\tif ( newFontStyle !== fontStyle || newFontWeight !== fontWeight ) {\n\t\t\t\tonChange( {\n\t\t\t\t\t...value,\n\t\t\t\t\ttypography: {\n\t\t\t\t\t\t...value?.typography,\n\t\t\t\t\t\tfontStyle: newFontStyle || undefined,\n\t\t\t\t\t\tfontWeight: newFontWeight || undefined,\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[ fontStyle, fontWeight, onChange, value ]\n\t);\n\tconst hasFontAppearance = () =>\n\t\t!! value?.typography?.fontStyle || !! value?.typography?.fontWeight;\n\tconst resetFontAppearance = useCallback( () => {\n\t\tsetFontAppearance( {} );\n\t}, [ setFontAppearance ] );\n\n\t// Check if previous font style and weight values are available in the new font family.\n\tuseEffect( () => {\n\t\tif ( nearestFontStyle && nearestFontWeight ) {\n\t\t\tsetFontAppearance( {\n\t\t\t\tfontStyle: nearestFontStyle,\n\t\t\t\tfontWeight: nearestFontWeight,\n\t\t\t} );\n\t\t} else {\n\t\t\t// Reset font appearance if there are no available styles or weights.\n\t\t\tresetFontAppearance();\n\t\t}\n\t}, [\n\t\tnearestFontStyle,\n\t\tnearestFontWeight,\n\t\tresetFontAppearance,\n\t\tsetFontAppearance,\n\t] );\n\n\t// Line Height\n\tconst hasLineHeightEnabled = useHasLineHeightControl( settings );\n\tconst lineHeight = decodeValue( inheritedValue?.typography?.lineHeight );\n\tconst setLineHeight = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'lineHeight' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasLineHeight = () => value?.typography?.lineHeight !== undefined;\n\tconst resetLineHeight = () => setLineHeight( undefined );\n\n\t// Letter Spacing\n\tconst hasLetterSpacingControl = useHasLetterSpacingControl( settings );\n\tconst letterSpacing = decodeValue(\n\t\tinheritedValue?.typography?.letterSpacing\n\t);\n\tconst setLetterSpacing = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'letterSpacing' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasLetterSpacing = () => !! value?.typography?.letterSpacing;\n\tconst resetLetterSpacing = () => setLetterSpacing( undefined );\n\n\t// Text Columns\n\tconst hasTextColumnsControl = useHasTextColumnsControl( settings );\n\tconst textColumns = decodeValue( inheritedValue?.typography?.textColumns );\n\tconst setTextColumns = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'textColumns' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasTextColumns = () => !! value?.typography?.textColumns;\n\tconst resetTextColumns = () => setTextColumns( undefined );\n\n\t// Text Transform\n\tconst hasTextTransformControl = useHasTextTransformControl( settings );\n\tconst textTransform = decodeValue(\n\t\tinheritedValue?.typography?.textTransform\n\t);\n\tconst setTextTransform = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'textTransform' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasTextTransform = () => !! value?.typography?.textTransform;\n\tconst resetTextTransform = () => setTextTransform( undefined );\n\n\t// Text Decoration\n\tconst hasTextDecorationControl = useHasTextDecorationControl( settings );\n\tconst textDecoration = decodeValue(\n\t\tinheritedValue?.typography?.textDecoration\n\t);\n\tconst setTextDecoration = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'textDecoration' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasTextDecoration = () => !! value?.typography?.textDecoration;\n\tconst resetTextDecoration = () => setTextDecoration( undefined );\n\n\t// Text Orientation\n\tconst hasWritingModeControl = useHasWritingModeControl( settings );\n\tconst writingMode = decodeValue( inheritedValue?.typography?.writingMode );\n\tconst setWritingMode = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'writingMode' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasWritingMode = () => !! value?.typography?.writingMode;\n\tconst resetWritingMode = () => setWritingMode( undefined );\n\n\t// Text Alignment\n\tconst hasTextAlignmentControl = useHasTextAlignmentControl( settings );\n\n\tconst textAlign = decodeValue( inheritedValue?.typography?.textAlign );\n\tconst setTextAlign = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'textAlign' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasTextAlign = () => !! value?.typography?.textAlign;\n\tconst resetTextAlign = () => setTextAlign( undefined );\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\ttypography: {},\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ hasFontFamilyEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Font' ) }\n\t\t\t\t\thasValue={ hasFontFamily }\n\t\t\t\t\tonDeselect={ resetFontFamily }\n\t\t\t\t\tisShownByDefault={ defaultControls.fontFamily }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<FontFamilyControl\n\t\t\t\t\t\tfontFamilies={ fontFamilies }\n\t\t\t\t\t\tvalue={ fontFamily }\n\t\t\t\t\t\tonChange={ setFontFamily }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasFontSizeEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Size' ) }\n\t\t\t\t\thasValue={ hasFontSize }\n\t\t\t\t\tonDeselect={ resetFontSize }\n\t\t\t\t\tisShownByDefault={ defaultControls.fontSize }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<FontSizePicker\n\t\t\t\t\t\tvalue={ fontSize }\n\t\t\t\t\t\tonChange={ setFontSize }\n\t\t\t\t\t\tfontSizes={ mergedFontSizes }\n\t\t\t\t\t\tdisableCustomFontSizes={ disableCustomFontSizes }\n\t\t\t\t\t\twithReset={ false }\n\t\t\t\t\t\twithSlider\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasAppearanceControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ appearanceControlLabel }\n\t\t\t\t\thasValue={ hasFontAppearance }\n\t\t\t\t\tonDeselect={ resetFontAppearance }\n\t\t\t\t\tisShownByDefault={ defaultControls.fontAppearance }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<FontAppearanceControl\n\t\t\t\t\t\tvalue={ {\n\t\t\t\t\t\t\tfontStyle,\n\t\t\t\t\t\t\tfontWeight,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonChange={ setFontAppearance }\n\t\t\t\t\t\thasFontStyles={ hasFontStyles }\n\t\t\t\t\t\thasFontWeights={ hasFontWeights }\n\t\t\t\t\t\tfontFamilyFaces={ fontFamilyFaces }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasLineHeightEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Line height' ) }\n\t\t\t\t\thasValue={ hasLineHeight }\n\t\t\t\t\tonDeselect={ resetLineHeight }\n\t\t\t\t\tisShownByDefault={ defaultControls.lineHeight }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<LineHeightControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__unstableInputWidth=\"auto\"\n\t\t\t\t\t\tvalue={ lineHeight }\n\t\t\t\t\t\tonChange={ setLineHeight }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasLetterSpacingControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Letter spacing' ) }\n\t\t\t\t\thasValue={ hasLetterSpacing }\n\t\t\t\t\tonDeselect={ resetLetterSpacing }\n\t\t\t\t\tisShownByDefault={ defaultControls.letterSpacing }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<LetterSpacingControl\n\t\t\t\t\t\tvalue={ letterSpacing }\n\t\t\t\t\t\tonChange={ setLetterSpacing }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__unstableInputWidth=\"auto\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasTextColumnsControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\thasValue={ hasTextColumns }\n\t\t\t\t\tonDeselect={ resetTextColumns }\n\t\t\t\t\tisShownByDefault={ defaultControls.textColumns }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<NumberControl\n\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\tmax={ MAX_TEXT_COLUMNS }\n\t\t\t\t\t\tmin={ MIN_TEXT_COLUMNS }\n\t\t\t\t\t\tonChange={ setTextColumns }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\tspinControls=\"custom\"\n\t\t\t\t\t\tvalue={ textColumns }\n\t\t\t\t\t\tinitialPosition={ 1 }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasTextDecorationControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Decoration' ) }\n\t\t\t\t\thasValue={ hasTextDecoration }\n\t\t\t\t\tonDeselect={ resetTextDecoration }\n\t\t\t\t\tisShownByDefault={ defaultControls.textDecoration }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<TextDecorationControl\n\t\t\t\t\t\tvalue={ textDecoration }\n\t\t\t\t\t\tonChange={ setTextDecoration }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__unstableInputWidth=\"auto\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasWritingModeControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Orientation' ) }\n\t\t\t\t\thasValue={ hasWritingMode }\n\t\t\t\t\tonDeselect={ resetWritingMode }\n\t\t\t\t\tisShownByDefault={ defaultControls.writingMode }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<WritingModeControl\n\t\t\t\t\t\tvalue={ writingMode }\n\t\t\t\t\t\tonChange={ setWritingMode }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasTextTransformControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Letter case' ) }\n\t\t\t\t\thasValue={ hasTextTransform }\n\t\t\t\t\tonDeselect={ resetTextTransform }\n\t\t\t\t\tisShownByDefault={ defaultControls.textTransform }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<TextTransformControl\n\t\t\t\t\t\tvalue={ textTransform }\n\t\t\t\t\t\tonChange={ setTextTransform }\n\t\t\t\t\t\tshowNone\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasTextAlignmentControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Text alignment' ) }\n\t\t\t\t\thasValue={ hasTextAlign }\n\t\t\t\t\tonDeselect={ resetTextAlign }\n\t\t\t\t\tisShownByDefault={ defaultControls.textAlign }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<TextAlignmentControl\n\t\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\t\tonChange={ setTextAlign }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* Internal dependencies
|
|
9
9
|
*/
|
|
10
10
|
import { getComputedFluidTypographyValue, getTypographyValueAndUnit } from '../font-sizes/fluid-utils';
|
|
11
|
+
import { getFontStylesAndWeights } from '../../utils/get-font-styles-and-weights';
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* @typedef {Object} FluidPreset
|
|
@@ -99,4 +100,120 @@ export function getFluidTypographyOptionsFromSettings(settings) {
|
|
|
99
100
|
fluid: typographySettings?.fluid
|
|
100
101
|
};
|
|
101
102
|
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Returns an object of merged font families and the font faces from the selected font family
|
|
106
|
+
* based on the theme.json settings object and the currently selected font family.
|
|
107
|
+
*
|
|
108
|
+
* @param {Object} settings Theme.json settings.
|
|
109
|
+
* @param {string} selectedFontFamily Decoded font family string.
|
|
110
|
+
* @return {Object} Merged font families and font faces from the selected font family.
|
|
111
|
+
*/
|
|
112
|
+
export function getMergedFontFamiliesAndFontFamilyFaces(settings, selectedFontFamily) {
|
|
113
|
+
var _fontFamilies$find$fo;
|
|
114
|
+
const fontFamiliesFromSettings = settings?.typography?.fontFamilies;
|
|
115
|
+
const fontFamilies = ['default', 'theme', 'custom'].flatMap(key => {
|
|
116
|
+
var _fontFamiliesFromSett;
|
|
117
|
+
return (_fontFamiliesFromSett = fontFamiliesFromSettings?.[key]) !== null && _fontFamiliesFromSett !== void 0 ? _fontFamiliesFromSett : [];
|
|
118
|
+
});
|
|
119
|
+
const fontFamilyFaces = (_fontFamilies$find$fo = fontFamilies.find(family => family.fontFamily === selectedFontFamily)?.fontFace) !== null && _fontFamilies$find$fo !== void 0 ? _fontFamilies$find$fo : [];
|
|
120
|
+
return {
|
|
121
|
+
fontFamilies,
|
|
122
|
+
fontFamilyFaces
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Returns the nearest font weight value from the available font weight list based on the new font weight.
|
|
128
|
+
* The nearest font weight is the one with the smallest difference from the new font weight.
|
|
129
|
+
*
|
|
130
|
+
* @param {Array} availableFontWeights Array of available font weights.
|
|
131
|
+
* @param {string} newFontWeightValue New font weight value.
|
|
132
|
+
* @return {string} Nearest font weight.
|
|
133
|
+
*/
|
|
134
|
+
export function findNearestFontWeight(availableFontWeights, newFontWeightValue) {
|
|
135
|
+
if (!newFontWeightValue || typeof newFontWeightValue !== 'string') {
|
|
136
|
+
return '';
|
|
137
|
+
}
|
|
138
|
+
if (!availableFontWeights || availableFontWeights.length === 0) {
|
|
139
|
+
return newFontWeightValue;
|
|
140
|
+
}
|
|
141
|
+
const nearestFontWeight = availableFontWeights?.reduce((nearest, {
|
|
142
|
+
value: fw
|
|
143
|
+
}) => {
|
|
144
|
+
const currentDiff = Math.abs(parseInt(fw) - parseInt(newFontWeightValue));
|
|
145
|
+
const nearestDiff = Math.abs(parseInt(nearest) - parseInt(newFontWeightValue));
|
|
146
|
+
return currentDiff < nearestDiff ? fw : nearest;
|
|
147
|
+
}, availableFontWeights[0]?.value);
|
|
148
|
+
return nearestFontWeight;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Returns the nearest font style based on the new font style.
|
|
153
|
+
* Defaults to an empty string if the new font style is not valid or available.
|
|
154
|
+
*
|
|
155
|
+
* @param {Array} availableFontStyles Array of available font weights.
|
|
156
|
+
* @param {string} newFontStyleValue New font style value.
|
|
157
|
+
* @return {string} Nearest font style or an empty string.
|
|
158
|
+
*/
|
|
159
|
+
export function findNearestFontStyle(availableFontStyles, newFontStyleValue) {
|
|
160
|
+
if (typeof newFontStyleValue !== 'string' || !newFontStyleValue) {
|
|
161
|
+
return '';
|
|
162
|
+
}
|
|
163
|
+
const validStyles = ['normal', 'italic', 'oblique'];
|
|
164
|
+
if (!validStyles.includes(newFontStyleValue)) {
|
|
165
|
+
return '';
|
|
166
|
+
}
|
|
167
|
+
if (!availableFontStyles || availableFontStyles.length === 0 || availableFontStyles.find(style => style.value === newFontStyleValue)) {
|
|
168
|
+
return newFontStyleValue;
|
|
169
|
+
}
|
|
170
|
+
if (newFontStyleValue === 'oblique' && !availableFontStyles.find(style => style.value === 'oblique')) {
|
|
171
|
+
return 'italic';
|
|
172
|
+
}
|
|
173
|
+
return '';
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Returns the nearest font style and weight based on the available font family faces and the new font style and weight.
|
|
178
|
+
*
|
|
179
|
+
* @param {Array} fontFamilyFaces Array of available font family faces.
|
|
180
|
+
* @param {string} fontStyle New font style. Defaults to previous value.
|
|
181
|
+
* @param {string} fontWeight New font weight. Defaults to previous value.
|
|
182
|
+
* @return {Object} Nearest font style and font weight.
|
|
183
|
+
*/
|
|
184
|
+
export function findNearestStyleAndWeight(fontFamilyFaces, fontStyle, fontWeight) {
|
|
185
|
+
let nearestFontStyle = fontStyle;
|
|
186
|
+
let nearestFontWeight = fontWeight;
|
|
187
|
+
const {
|
|
188
|
+
fontStyles,
|
|
189
|
+
fontWeights,
|
|
190
|
+
combinedStyleAndWeightOptions
|
|
191
|
+
} = getFontStylesAndWeights(fontFamilyFaces);
|
|
192
|
+
|
|
193
|
+
// Check if the new font style and weight are available in the font family faces.
|
|
194
|
+
const hasFontStyle = fontStyles?.some(({
|
|
195
|
+
value: fs
|
|
196
|
+
}) => fs === fontStyle);
|
|
197
|
+
const hasFontWeight = fontWeights?.some(({
|
|
198
|
+
value: fw
|
|
199
|
+
}) => fw === fontWeight);
|
|
200
|
+
if (!hasFontStyle) {
|
|
201
|
+
/*
|
|
202
|
+
* Default to italic if oblique is not available.
|
|
203
|
+
* Or find the nearest font style based on the nearest font weight.
|
|
204
|
+
*/
|
|
205
|
+
nearestFontStyle = fontStyle ? findNearestFontStyle(fontStyles, fontStyle) : combinedStyleAndWeightOptions?.find(option => option.style.fontWeight === findNearestFontWeight(fontWeights, fontWeight))?.style?.fontStyle;
|
|
206
|
+
}
|
|
207
|
+
if (!hasFontWeight) {
|
|
208
|
+
/*
|
|
209
|
+
* Find the nearest font weight based on available weights.
|
|
210
|
+
* Or find the nearest font weight based on the nearest font style.
|
|
211
|
+
*/
|
|
212
|
+
nearestFontWeight = fontWeight ? findNearestFontWeight(fontWeights, fontWeight) : combinedStyleAndWeightOptions?.find(option => option.style.fontStyle === (nearestFontStyle || fontStyle))?.style?.fontWeight;
|
|
213
|
+
}
|
|
214
|
+
return {
|
|
215
|
+
nearestFontStyle,
|
|
216
|
+
nearestFontWeight
|
|
217
|
+
};
|
|
218
|
+
}
|
|
102
219
|
//# sourceMappingURL=typography-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getComputedFluidTypographyValue","getTypographyValueAndUnit","getTypographyFontSizeValue","preset","settings","size","defaultSize","isFluidTypographyEnabled","typography","fluid","fluidTypographySettings","getFluidTypographyOptionsFromSettings","fluidFontSizeValue","minimumFontSize","min","maximumFontSize","max","fontSize","minimumFontSizeLimit","minFontSize","maximumViewportWidth","maxViewportWidth","minimumViewportWidth","minViewportWidth","typographySettings","fluidSettings","Object","keys","length","layoutSettings","layout","defaultMaxViewportWidth","wideSize"],"sources":["@wordpress/block-editor/src/components/global-styles/typography-utils.js"],"sourcesContent":["/**\n * The fluid utilities must match the backend equivalent.\n * See: gutenberg_get_typography_font_size_value() in lib/block-supports/typography.php\n * ---------------------------------------------------------------\n */\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetComputedFluidTypographyValue,\n\tgetTypographyValueAndUnit,\n} from '../font-sizes/fluid-utils';\n\n/**\n * @typedef {Object} FluidPreset\n * @property {string|undefined} max A maximum font size value.\n * @property {?string|undefined} min A minimum font size value.\n */\n\n/**\n * @typedef {Object} Preset\n * @property {?string|?number} size A default font size.\n * @property {string} name A font size name, displayed in the UI.\n * @property {string} slug A font size slug\n * @property {boolean|FluidPreset|undefined} fluid Specifies the minimum and maximum font size value of a fluid font size.\n */\n\n/**\n * @typedef {Object} TypographySettings\n * @property {?string} minViewportWidth Minimum viewport size from which type will have fluidity. Optional if size is specified.\n * @property {?string} maxViewportWidth Maximum size up to which type will have fluidity. Optional if size is specified.\n * @property {?number} scaleFactor A scale factor to determine how fast a font scales within boundaries. Optional.\n * @property {?number} minFontSizeFactor How much to scale defaultFontSize by to derive minimumFontSize. Optional.\n * @property {?string} minFontSize The smallest a calculated font size may be. Optional.\n */\n\n/**\n * Returns a font-size value based on a given font-size preset.\n * Takes into account fluid typography parameters and attempts to return a css formula depending on available, valid values.\n *\n * @param {Preset} preset\n * @param {Object} settings\n * @param {boolean|TypographySettings} settings.typography.fluid Whether fluid typography is enabled, and, optionally, fluid font size options.\n * @param {Object?} settings.typography.layout Layout options.\n *\n * @return {string|*} A font-size value or the value of preset.size.\n */\nexport function getTypographyFontSizeValue( preset, settings ) {\n\tconst { size: defaultSize } = preset;\n\n\tif ( ! isFluidTypographyEnabled( settings?.typography ) ) {\n\t\treturn defaultSize;\n\t}\n\t/*\n\t * Checks whether a font size has explicitly bypassed fluid calculations.\n\t * Also catches falsy values and 0/'0'.\n\t * Fluid calculations cannot be performed on `0`.\n\t */\n\tif ( ! defaultSize || '0' === defaultSize || false === preset?.fluid ) {\n\t\treturn defaultSize;\n\t}\n\n\tlet fluidTypographySettings =\n\t\tgetFluidTypographyOptionsFromSettings( settings );\n\tfluidTypographySettings =\n\t\ttypeof fluidTypographySettings?.fluid === 'object'\n\t\t\t? fluidTypographySettings?.fluid\n\t\t\t: {};\n\n\tconst fluidFontSizeValue = getComputedFluidTypographyValue( {\n\t\tminimumFontSize: preset?.fluid?.min,\n\t\tmaximumFontSize: preset?.fluid?.max,\n\t\tfontSize: defaultSize,\n\t\tminimumFontSizeLimit: fluidTypographySettings?.minFontSize,\n\t\tmaximumViewportWidth: fluidTypographySettings?.maxViewportWidth,\n\t\tminimumViewportWidth: fluidTypographySettings?.minViewportWidth,\n\t} );\n\n\tif ( !! fluidFontSizeValue ) {\n\t\treturn fluidFontSizeValue;\n\t}\n\n\treturn defaultSize;\n}\n\nfunction isFluidTypographyEnabled( typographySettings ) {\n\tconst fluidSettings = typographySettings?.fluid;\n\treturn (\n\t\ttrue === fluidSettings ||\n\t\t( fluidSettings &&\n\t\t\ttypeof fluidSettings === 'object' &&\n\t\t\tObject.keys( fluidSettings ).length > 0 )\n\t);\n}\n\n/**\n * Returns fluid typography settings from theme.json setting object.\n *\n * @param {Object} settings Theme.json settings\n * @param {Object} settings.typography Theme.json typography settings\n * @param {Object} settings.layout Theme.json layout settings\n * @return {TypographySettings} Fluid typography settings\n */\nexport function getFluidTypographyOptionsFromSettings( settings ) {\n\tconst typographySettings = settings?.typography;\n\tconst layoutSettings = settings?.layout;\n\tconst defaultMaxViewportWidth = getTypographyValueAndUnit(\n\t\tlayoutSettings?.wideSize\n\t)\n\t\t? layoutSettings?.wideSize\n\t\t: null;\n\treturn isFluidTypographyEnabled( typographySettings ) &&\n\t\tdefaultMaxViewportWidth\n\t\t? {\n\t\t\t\tfluid: {\n\t\t\t\t\tmaxViewportWidth: defaultMaxViewportWidth,\n\t\t\t\t\t...typographySettings.fluid,\n\t\t\t\t},\n\t\t }\n\t\t: {\n\t\t\t\tfluid: typographySettings?.fluid,\n\t\t };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SACCA,+BAA+B,EAC/BC,yBAAyB,QACnB,2BAA2B;;AAElC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,0BAA0BA,CAAEC,MAAM,EAAEC,QAAQ,EAAG;EAC9D,MAAM;IAAEC,IAAI,EAAEC;EAAY,CAAC,GAAGH,MAAM;EAEpC,IAAK,CAAEI,wBAAwB,CAAEH,QAAQ,EAAEI,UAAW,CAAC,EAAG;IACzD,OAAOF,WAAW;EACnB;EACA;AACD;AACA;AACA;AACA;EACC,IAAK,CAAEA,WAAW,IAAI,GAAG,KAAKA,WAAW,IAAI,KAAK,KAAKH,MAAM,EAAEM,KAAK,EAAG;IACtE,OAAOH,WAAW;EACnB;EAEA,IAAII,uBAAuB,GAC1BC,qCAAqC,CAAEP,QAAS,CAAC;EAClDM,uBAAuB,GACtB,OAAOA,uBAAuB,EAAED,KAAK,KAAK,QAAQ,GAC/CC,uBAAuB,EAAED,KAAK,GAC9B,CAAC,CAAC;EAEN,MAAMG,kBAAkB,GAAGZ,+BAA+B,CAAE;IAC3Da,eAAe,EAAEV,MAAM,EAAEM,KAAK,EAAEK,GAAG;IACnCC,eAAe,EAAEZ,MAAM,EAAEM,KAAK,EAAEO,GAAG;IACnCC,QAAQ,EAAEX,WAAW;IACrBY,oBAAoB,EAAER,uBAAuB,EAAES,WAAW;IAC1DC,oBAAoB,EAAEV,uBAAuB,EAAEW,gBAAgB;IAC/DC,oBAAoB,EAAEZ,uBAAuB,EAAEa;EAChD,CAAE,CAAC;EAEH,IAAK,CAAC,CAAEX,kBAAkB,EAAG;IAC5B,OAAOA,kBAAkB;EAC1B;EAEA,OAAON,WAAW;AACnB;AAEA,SAASC,wBAAwBA,CAAEiB,kBAAkB,EAAG;EACvD,MAAMC,aAAa,GAAGD,kBAAkB,EAAEf,KAAK;EAC/C,OACC,IAAI,KAAKgB,aAAa,IACpBA,aAAa,IACd,OAAOA,aAAa,KAAK,QAAQ,IACjCC,MAAM,CAACC,IAAI,CAAEF,aAAc,CAAC,CAACG,MAAM,GAAG,CAAG;AAE5C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASjB,qCAAqCA,CAAEP,QAAQ,EAAG;EACjE,MAAMoB,kBAAkB,GAAGpB,QAAQ,EAAEI,UAAU;EAC/C,MAAMqB,cAAc,GAAGzB,QAAQ,EAAE0B,MAAM;EACvC,MAAMC,uBAAuB,GAAG9B,yBAAyB,CACxD4B,cAAc,EAAEG,QACjB,CAAC,GACEH,cAAc,EAAEG,QAAQ,GACxB,IAAI;EACP,OAAOzB,wBAAwB,CAAEiB,kBAAmB,CAAC,IACpDO,uBAAuB,GACrB;IACAtB,KAAK,EAAE;MACNY,gBAAgB,EAAEU,uBAAuB;MACzC,GAAGP,kBAAkB,CAACf;IACvB;EACA,CAAC,GACD;IACAA,KAAK,EAAEe,kBAAkB,EAAEf;EAC3B,CAAC;AACL","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["getComputedFluidTypographyValue","getTypographyValueAndUnit","getFontStylesAndWeights","getTypographyFontSizeValue","preset","settings","size","defaultSize","isFluidTypographyEnabled","typography","fluid","fluidTypographySettings","getFluidTypographyOptionsFromSettings","fluidFontSizeValue","minimumFontSize","min","maximumFontSize","max","fontSize","minimumFontSizeLimit","minFontSize","maximumViewportWidth","maxViewportWidth","minimumViewportWidth","minViewportWidth","typographySettings","fluidSettings","Object","keys","length","layoutSettings","layout","defaultMaxViewportWidth","wideSize","getMergedFontFamiliesAndFontFamilyFaces","selectedFontFamily","_fontFamilies$find$fo","fontFamiliesFromSettings","fontFamilies","flatMap","key","_fontFamiliesFromSett","fontFamilyFaces","find","family","fontFamily","fontFace","findNearestFontWeight","availableFontWeights","newFontWeightValue","nearestFontWeight","reduce","nearest","value","fw","currentDiff","Math","abs","parseInt","nearestDiff","findNearestFontStyle","availableFontStyles","newFontStyleValue","validStyles","includes","style","findNearestStyleAndWeight","fontStyle","fontWeight","nearestFontStyle","fontStyles","fontWeights","combinedStyleAndWeightOptions","hasFontStyle","some","fs","hasFontWeight","option"],"sources":["@wordpress/block-editor/src/components/global-styles/typography-utils.js"],"sourcesContent":["/**\n * The fluid utilities must match the backend equivalent.\n * See: gutenberg_get_typography_font_size_value() in lib/block-supports/typography.php\n * ---------------------------------------------------------------\n */\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetComputedFluidTypographyValue,\n\tgetTypographyValueAndUnit,\n} from '../font-sizes/fluid-utils';\nimport { getFontStylesAndWeights } from '../../utils/get-font-styles-and-weights';\n\n/**\n * @typedef {Object} FluidPreset\n * @property {string|undefined} max A maximum font size value.\n * @property {?string|undefined} min A minimum font size value.\n */\n\n/**\n * @typedef {Object} Preset\n * @property {?string|?number} size A default font size.\n * @property {string} name A font size name, displayed in the UI.\n * @property {string} slug A font size slug\n * @property {boolean|FluidPreset|undefined} fluid Specifies the minimum and maximum font size value of a fluid font size.\n */\n\n/**\n * @typedef {Object} TypographySettings\n * @property {?string} minViewportWidth Minimum viewport size from which type will have fluidity. Optional if size is specified.\n * @property {?string} maxViewportWidth Maximum size up to which type will have fluidity. Optional if size is specified.\n * @property {?number} scaleFactor A scale factor to determine how fast a font scales within boundaries. Optional.\n * @property {?number} minFontSizeFactor How much to scale defaultFontSize by to derive minimumFontSize. Optional.\n * @property {?string} minFontSize The smallest a calculated font size may be. Optional.\n */\n\n/**\n * Returns a font-size value based on a given font-size preset.\n * Takes into account fluid typography parameters and attempts to return a css formula depending on available, valid values.\n *\n * @param {Preset} preset\n * @param {Object} settings\n * @param {boolean|TypographySettings} settings.typography.fluid Whether fluid typography is enabled, and, optionally, fluid font size options.\n * @param {Object?} settings.typography.layout Layout options.\n *\n * @return {string|*} A font-size value or the value of preset.size.\n */\nexport function getTypographyFontSizeValue( preset, settings ) {\n\tconst { size: defaultSize } = preset;\n\n\tif ( ! isFluidTypographyEnabled( settings?.typography ) ) {\n\t\treturn defaultSize;\n\t}\n\t/*\n\t * Checks whether a font size has explicitly bypassed fluid calculations.\n\t * Also catches falsy values and 0/'0'.\n\t * Fluid calculations cannot be performed on `0`.\n\t */\n\tif ( ! defaultSize || '0' === defaultSize || false === preset?.fluid ) {\n\t\treturn defaultSize;\n\t}\n\n\tlet fluidTypographySettings =\n\t\tgetFluidTypographyOptionsFromSettings( settings );\n\tfluidTypographySettings =\n\t\ttypeof fluidTypographySettings?.fluid === 'object'\n\t\t\t? fluidTypographySettings?.fluid\n\t\t\t: {};\n\n\tconst fluidFontSizeValue = getComputedFluidTypographyValue( {\n\t\tminimumFontSize: preset?.fluid?.min,\n\t\tmaximumFontSize: preset?.fluid?.max,\n\t\tfontSize: defaultSize,\n\t\tminimumFontSizeLimit: fluidTypographySettings?.minFontSize,\n\t\tmaximumViewportWidth: fluidTypographySettings?.maxViewportWidth,\n\t\tminimumViewportWidth: fluidTypographySettings?.minViewportWidth,\n\t} );\n\n\tif ( !! fluidFontSizeValue ) {\n\t\treturn fluidFontSizeValue;\n\t}\n\n\treturn defaultSize;\n}\n\nfunction isFluidTypographyEnabled( typographySettings ) {\n\tconst fluidSettings = typographySettings?.fluid;\n\treturn (\n\t\ttrue === fluidSettings ||\n\t\t( fluidSettings &&\n\t\t\ttypeof fluidSettings === 'object' &&\n\t\t\tObject.keys( fluidSettings ).length > 0 )\n\t);\n}\n\n/**\n * Returns fluid typography settings from theme.json setting object.\n *\n * @param {Object} settings Theme.json settings\n * @param {Object} settings.typography Theme.json typography settings\n * @param {Object} settings.layout Theme.json layout settings\n * @return {TypographySettings} Fluid typography settings\n */\nexport function getFluidTypographyOptionsFromSettings( settings ) {\n\tconst typographySettings = settings?.typography;\n\tconst layoutSettings = settings?.layout;\n\tconst defaultMaxViewportWidth = getTypographyValueAndUnit(\n\t\tlayoutSettings?.wideSize\n\t)\n\t\t? layoutSettings?.wideSize\n\t\t: null;\n\treturn isFluidTypographyEnabled( typographySettings ) &&\n\t\tdefaultMaxViewportWidth\n\t\t? {\n\t\t\t\tfluid: {\n\t\t\t\t\tmaxViewportWidth: defaultMaxViewportWidth,\n\t\t\t\t\t...typographySettings.fluid,\n\t\t\t\t},\n\t\t }\n\t\t: {\n\t\t\t\tfluid: typographySettings?.fluid,\n\t\t };\n}\n\n/**\n * Returns an object of merged font families and the font faces from the selected font family\n * based on the theme.json settings object and the currently selected font family.\n *\n * @param {Object} settings Theme.json settings.\n * @param {string} selectedFontFamily Decoded font family string.\n * @return {Object} Merged font families and font faces from the selected font family.\n */\nexport function getMergedFontFamiliesAndFontFamilyFaces(\n\tsettings,\n\tselectedFontFamily\n) {\n\tconst fontFamiliesFromSettings = settings?.typography?.fontFamilies;\n\n\tconst fontFamilies = [ 'default', 'theme', 'custom' ].flatMap(\n\t\t( key ) => fontFamiliesFromSettings?.[ key ] ?? []\n\t);\n\n\tconst fontFamilyFaces =\n\t\tfontFamilies.find(\n\t\t\t( family ) => family.fontFamily === selectedFontFamily\n\t\t)?.fontFace ?? [];\n\n\treturn { fontFamilies, fontFamilyFaces };\n}\n\n/**\n * Returns the nearest font weight value from the available font weight list based on the new font weight.\n * The nearest font weight is the one with the smallest difference from the new font weight.\n *\n * @param {Array} availableFontWeights Array of available font weights.\n * @param {string} newFontWeightValue New font weight value.\n * @return {string} Nearest font weight.\n */\nexport function findNearestFontWeight(\n\tavailableFontWeights,\n\tnewFontWeightValue\n) {\n\tif ( ! newFontWeightValue || typeof newFontWeightValue !== 'string' ) {\n\t\treturn '';\n\t}\n\n\tif ( ! availableFontWeights || availableFontWeights.length === 0 ) {\n\t\treturn newFontWeightValue;\n\t}\n\n\tconst nearestFontWeight = availableFontWeights?.reduce(\n\t\t( nearest, { value: fw } ) => {\n\t\t\tconst currentDiff = Math.abs(\n\t\t\t\tparseInt( fw ) - parseInt( newFontWeightValue )\n\t\t\t);\n\t\t\tconst nearestDiff = Math.abs(\n\t\t\t\tparseInt( nearest ) - parseInt( newFontWeightValue )\n\t\t\t);\n\t\t\treturn currentDiff < nearestDiff ? fw : nearest;\n\t\t},\n\t\tavailableFontWeights[ 0 ]?.value\n\t);\n\n\treturn nearestFontWeight;\n}\n\n/**\n * Returns the nearest font style based on the new font style.\n * Defaults to an empty string if the new font style is not valid or available.\n *\n * @param {Array} availableFontStyles Array of available font weights.\n * @param {string} newFontStyleValue New font style value.\n * @return {string} Nearest font style or an empty string.\n */\nexport function findNearestFontStyle( availableFontStyles, newFontStyleValue ) {\n\tif ( typeof newFontStyleValue !== 'string' || ! newFontStyleValue ) {\n\t\treturn '';\n\t}\n\n\tconst validStyles = [ 'normal', 'italic', 'oblique' ];\n\tif ( ! validStyles.includes( newFontStyleValue ) ) {\n\t\treturn '';\n\t}\n\n\tif (\n\t\t! availableFontStyles ||\n\t\tavailableFontStyles.length === 0 ||\n\t\tavailableFontStyles.find(\n\t\t\t( style ) => style.value === newFontStyleValue\n\t\t)\n\t) {\n\t\treturn newFontStyleValue;\n\t}\n\n\tif (\n\t\tnewFontStyleValue === 'oblique' &&\n\t\t! availableFontStyles.find( ( style ) => style.value === 'oblique' )\n\t) {\n\t\treturn 'italic';\n\t}\n\n\treturn '';\n}\n\n/**\n * Returns the nearest font style and weight based on the available font family faces and the new font style and weight.\n *\n * @param {Array} fontFamilyFaces Array of available font family faces.\n * @param {string} fontStyle New font style. Defaults to previous value.\n * @param {string} fontWeight New font weight. Defaults to previous value.\n * @return {Object} Nearest font style and font weight.\n */\nexport function findNearestStyleAndWeight(\n\tfontFamilyFaces,\n\tfontStyle,\n\tfontWeight\n) {\n\tlet nearestFontStyle = fontStyle;\n\tlet nearestFontWeight = fontWeight;\n\n\tconst { fontStyles, fontWeights, combinedStyleAndWeightOptions } =\n\t\tgetFontStylesAndWeights( fontFamilyFaces );\n\n\t// Check if the new font style and weight are available in the font family faces.\n\tconst hasFontStyle = fontStyles?.some(\n\t\t( { value: fs } ) => fs === fontStyle\n\t);\n\tconst hasFontWeight = fontWeights?.some(\n\t\t( { value: fw } ) => fw === fontWeight\n\t);\n\n\tif ( ! hasFontStyle ) {\n\t\t/*\n\t\t * Default to italic if oblique is not available.\n\t\t * Or find the nearest font style based on the nearest font weight.\n\t\t */\n\t\tnearestFontStyle = fontStyle\n\t\t\t? findNearestFontStyle( fontStyles, fontStyle )\n\t\t\t: combinedStyleAndWeightOptions?.find(\n\t\t\t\t\t( option ) =>\n\t\t\t\t\t\toption.style.fontWeight ===\n\t\t\t\t\t\tfindNearestFontWeight( fontWeights, fontWeight )\n\t\t\t )?.style?.fontStyle;\n\t}\n\n\tif ( ! hasFontWeight ) {\n\t\t/*\n\t\t * Find the nearest font weight based on available weights.\n\t\t * Or find the nearest font weight based on the nearest font style.\n\t\t */\n\t\tnearestFontWeight = fontWeight\n\t\t\t? findNearestFontWeight( fontWeights, fontWeight )\n\t\t\t: combinedStyleAndWeightOptions?.find(\n\t\t\t\t\t( option ) =>\n\t\t\t\t\t\toption.style.fontStyle ===\n\t\t\t\t\t\t( nearestFontStyle || fontStyle )\n\t\t\t )?.style?.fontWeight;\n\t}\n\n\treturn { nearestFontStyle, nearestFontWeight };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -17,12 +17,19 @@ import { GlobalStylesContext } from './context';
|
|
|
17
17
|
import { useGlobalSetting } from './hooks';
|
|
18
18
|
import { getDuotoneFilter } from '../duotone/utils';
|
|
19
19
|
import { getGapCSSValue } from '../../hooks/gap';
|
|
20
|
+
import { setBackgroundStyleDefaults } from '../../hooks/background';
|
|
20
21
|
import { store as blockEditorStore } from '../../store';
|
|
21
22
|
import { LAYOUT_DEFINITIONS } from '../../layouts/definitions';
|
|
22
23
|
import { getValueFromObjectPath, setImmutably } from '../../utils/object';
|
|
23
24
|
import { unlock } from '../../lock-unlock';
|
|
24
25
|
import { setThemeFileUris } from './theme-file-uri-utils';
|
|
25
26
|
|
|
27
|
+
// Elements that rely on class names in their selectors.
|
|
28
|
+
const ELEMENT_CLASS_NAMES = {
|
|
29
|
+
button: 'wp-element-button',
|
|
30
|
+
caption: 'wp-element-caption'
|
|
31
|
+
};
|
|
32
|
+
|
|
26
33
|
// List of block support features that can have their related styles
|
|
27
34
|
// generated under their own feature level selector rather than the block's.
|
|
28
35
|
const BLOCK_SUPPORT_FEATURE_LEVEL_SELECTORS = {
|
|
@@ -278,6 +285,20 @@ export function getStylesDeclarations(blockStyles = {}, selector = '', useRootPa
|
|
|
278
285
|
return declarations;
|
|
279
286
|
}, []);
|
|
280
287
|
|
|
288
|
+
/*
|
|
289
|
+
* Set background defaults.
|
|
290
|
+
* Applies to all background styles except the top-level site background.
|
|
291
|
+
*/
|
|
292
|
+
if (!isRoot && !!blockStyles.background) {
|
|
293
|
+
blockStyles = {
|
|
294
|
+
...blockStyles,
|
|
295
|
+
background: {
|
|
296
|
+
...blockStyles.background,
|
|
297
|
+
...setBackgroundStyleDefaults(blockStyles.background)
|
|
298
|
+
}
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
|
|
281
302
|
// The goal is to move everything to server side generated engine styles
|
|
282
303
|
// This is temporary as we absorb more and more styles into the engine.
|
|
283
304
|
const extraRules = getCSSRules(blockStyles);
|
|
@@ -444,14 +465,20 @@ export const getNodesWithStyles = (tree, blockSelectors) => {
|
|
|
444
465
|
if (styles) {
|
|
445
466
|
nodes.push({
|
|
446
467
|
styles,
|
|
447
|
-
selector: ROOT_BLOCK_SELECTOR
|
|
468
|
+
selector: ROOT_BLOCK_SELECTOR,
|
|
469
|
+
// Root selector (body) styles should not be wrapped in `:root where()` to keep
|
|
470
|
+
// specificity at (0,0,1) and maintain backwards compatibility.
|
|
471
|
+
skipSelectorWrapper: true
|
|
448
472
|
});
|
|
449
473
|
}
|
|
450
474
|
Object.entries(ELEMENTS).forEach(([name, selector]) => {
|
|
451
475
|
if (tree.styles?.elements?.[name]) {
|
|
452
476
|
nodes.push({
|
|
453
477
|
styles: tree.styles?.elements?.[name],
|
|
454
|
-
selector
|
|
478
|
+
selector,
|
|
479
|
+
// Top level elements that don't use a class name should not receive the
|
|
480
|
+
// `:root :where()` wrapper to maintain backwards compatibility.
|
|
481
|
+
skipSelectorWrapper: !ELEMENT_CLASS_NAMES[name]
|
|
455
482
|
});
|
|
456
483
|
}
|
|
457
484
|
});
|
|
@@ -468,7 +495,7 @@ export const getNodesWithStyles = (tree, blockSelectors) => {
|
|
|
468
495
|
if (variation?.css) {
|
|
469
496
|
variations[variationName].css = variation.css;
|
|
470
497
|
}
|
|
471
|
-
const variationSelector = blockSelectors[blockName]
|
|
498
|
+
const variationSelector = blockSelectors[blockName]?.styleVariationSelectors?.[variationName];
|
|
472
499
|
|
|
473
500
|
// Process the variation's inner element styles.
|
|
474
501
|
// This comes before the inner block styles so the
|
|
@@ -486,9 +513,9 @@ export const getNodesWithStyles = (tree, blockSelectors) => {
|
|
|
486
513
|
// Process the variations inner block type styles.
|
|
487
514
|
Object.entries((_variation$blocks = variation?.blocks) !== null && _variation$blocks !== void 0 ? _variation$blocks : {}).forEach(([variationBlockName, variationBlockStyles]) => {
|
|
488
515
|
var _variationBlockStyles;
|
|
489
|
-
const variationBlockSelector = scopeSelector(variationSelector, blockSelectors[variationBlockName]
|
|
490
|
-
const variationDuotoneSelector = scopeSelector(variationSelector, blockSelectors[variationBlockName]
|
|
491
|
-
const variationFeatureSelectors = scopeFeatureSelectors(variationSelector, blockSelectors[variationBlockName]
|
|
516
|
+
const variationBlockSelector = scopeSelector(variationSelector, blockSelectors[variationBlockName]?.selector);
|
|
517
|
+
const variationDuotoneSelector = scopeSelector(variationSelector, blockSelectors[variationBlockName]?.duotoneSelector);
|
|
518
|
+
const variationFeatureSelectors = scopeFeatureSelectors(variationSelector, blockSelectors[variationBlockName]?.featureSelectors);
|
|
492
519
|
const variationBlockStyleNodes = pickStyleKeys(variationBlockStyles);
|
|
493
520
|
if (variationBlockStyles?.css) {
|
|
494
521
|
variationBlockStyleNodes.css = variationBlockStyles.css;
|
|
@@ -497,8 +524,8 @@ export const getNodesWithStyles = (tree, blockSelectors) => {
|
|
|
497
524
|
selector: variationBlockSelector,
|
|
498
525
|
duotoneSelector: variationDuotoneSelector,
|
|
499
526
|
featureSelectors: variationFeatureSelectors,
|
|
500
|
-
fallbackGapValue: blockSelectors[variationBlockName]
|
|
501
|
-
hasLayoutSupport: blockSelectors[variationBlockName]
|
|
527
|
+
fallbackGapValue: blockSelectors[variationBlockName]?.fallbackGapValue,
|
|
528
|
+
hasLayoutSupport: blockSelectors[variationBlockName]?.hasLayoutSupport,
|
|
502
529
|
styles: variationBlockStyleNodes
|
|
503
530
|
});
|
|
504
531
|
|
|
@@ -651,8 +678,8 @@ export const toStyles = (tree, blockSelectors, hasBlockGapSupport, hasFallbackGa
|
|
|
651
678
|
ruleset += `padding-right: 0; padding-left: 0; padding-top: var(--wp--style--root--padding-top); padding-bottom: var(--wp--style--root--padding-bottom) }
|
|
652
679
|
.has-global-padding { padding-right: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); }
|
|
653
680
|
.has-global-padding > .alignfull { margin-right: calc(var(--wp--style--root--padding-right) * -1); margin-left: calc(var(--wp--style--root--padding-left) * -1); }
|
|
654
|
-
.has-global-padding :where(:not(.alignfull.is-layout-flow) > .has-global-padding:not(.wp-block-block, .alignfull
|
|
655
|
-
.has-global-padding :where(:not(.alignfull.is-layout-flow) > .has-global-padding:not(.wp-block-block, .alignfull
|
|
681
|
+
.has-global-padding :where(:not(.alignfull.is-layout-flow) > .has-global-padding:not(.wp-block-block, .alignfull)) { padding-right: 0; padding-left: 0; }
|
|
682
|
+
.has-global-padding :where(:not(.alignfull.is-layout-flow) > .has-global-padding:not(.wp-block-block, .alignfull)) > .alignfull { margin-left: 0; margin-right: 0;
|
|
656
683
|
`;
|
|
657
684
|
}
|
|
658
685
|
ruleset += '}';
|
|
@@ -665,7 +692,8 @@ export const toStyles = (tree, blockSelectors, hasBlockGapSupport, hasFallbackGa
|
|
|
665
692
|
fallbackGapValue,
|
|
666
693
|
hasLayoutSupport,
|
|
667
694
|
featureSelectors,
|
|
668
|
-
styleVariationSelectors
|
|
695
|
+
styleVariationSelectors,
|
|
696
|
+
skipSelectorWrapper
|
|
669
697
|
}) => {
|
|
670
698
|
// Process styles for block support features with custom feature level
|
|
671
699
|
// CSS selectors set.
|
|
@@ -706,7 +734,8 @@ export const toStyles = (tree, blockSelectors, hasBlockGapSupport, hasFallbackGa
|
|
|
706
734
|
// Process the remaining block styles (they use either normal block class or __experimentalSelector).
|
|
707
735
|
const styleDeclarations = getStylesDeclarations(styles, selector, useRootPaddingAlign, tree, disableRootPadding);
|
|
708
736
|
if (styleDeclarations?.length) {
|
|
709
|
-
|
|
737
|
+
const generalSelector = skipSelectorWrapper ? selector : `:root :where(${selector})`;
|
|
738
|
+
ruleset += `${generalSelector}{${styleDeclarations.join(';')};}`;
|
|
710
739
|
}
|
|
711
740
|
if (styles?.css) {
|
|
712
741
|
ruleset += processCSSNesting(styles.css, `:root :where(${selector})`);
|
|
@@ -756,7 +785,12 @@ export const toStyles = (tree, blockSelectors, hasBlockGapSupport, hasFallbackGa
|
|
|
756
785
|
// Split and append pseudo selector to create
|
|
757
786
|
// the proper rules to target the elements.
|
|
758
787
|
const _selector = selector.split(',').map(sel => sel + pseudoKey).join(',');
|
|
759
|
-
|
|
788
|
+
|
|
789
|
+
// As pseudo classes such as :hover, :focus etc. have class-level
|
|
790
|
+
// specificity, they must use the `:root :where()` wrapper. This.
|
|
791
|
+
// caps the specificity at `0-1-0` to allow proper nesting of variations
|
|
792
|
+
// and block type element styles.
|
|
793
|
+
const pseudoRule = `:root :where(${_selector}){${pseudoDeclarations.join(';')};}`;
|
|
760
794
|
ruleset += pseudoRule;
|
|
761
795
|
});
|
|
762
796
|
}
|