@wordpress/block-editor 13.3.0 → 14.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/README.md +11 -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 +3 -1
- package/build/components/block-breadcrumb/index.js.map +1 -1
- package/build/components/block-draggable/index.js +2 -2
- package/build/components/block-draggable/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 +26 -27
- 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-mover/index.js +1 -2
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-popover/cover.js +1 -1
- package/build/components/block-popover/cover.js.map +1 -1
- package/build/components/block-popover/inbetween.js +2 -2
- package/build/components/block-popover/inbetween.js.map +1 -1
- package/build/components/block-popover/index.js +2 -2
- package/build/components/block-popover/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-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 +5 -2
- package/build/components/block-toolbar/shuffle.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +1 -2
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/index.js +1 -1
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/use-block-toolbar-popover-props.js +1 -1
- package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
- package/build/components/block-tools/use-show-block-tools.js +7 -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 +35 -36
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build/components/block-tools/zoom-out-popover.js +2 -1
- package/build/components/block-tools/zoom-out-popover.js.map +1 -1
- package/build/components/block-tools/zoom-out-toolbar.js +1 -2
- package/build/components/block-tools/zoom-out-toolbar.js.map +1 -1
- package/build/components/child-layout-control/index.js +3 -1
- package/build/components/child-layout-control/index.js.map +1 -1
- package/build/components/date-format-picker/index.js +2 -11
- 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/scale-tool.js +1 -0
- package/build/components/dimensions-tool/scale-tool.js.map +1 -1
- package/build/components/font-appearance-control/index.js +2 -7
- package/build/components/font-appearance-control/index.js.map +1 -1
- package/build/components/font-family/index.js +12 -0
- package/build/components/font-family/index.js.map +1 -1
- package/build/components/global-styles/background-panel.js +63 -52
- package/build/components/global-styles/background-panel.js.map +1 -1
- package/build/components/global-styles/hooks.js +5 -1
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/image-settings-panel.js +1 -0
- package/build/components/global-styles/image-settings-panel.js.map +1 -1
- package/build/components/global-styles/theme-file-uri-utils.js +0 -59
- package/build/components/global-styles/theme-file-uri-utils.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +26 -44
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/typography-utils.js +78 -7
- package/build/components/global-styles/typography-utils.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +82 -44
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +96 -0
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/grid/grid-item-movers.js +93 -44
- package/build/components/grid/grid-item-movers.js.map +1 -1
- package/build/components/grid/grid-item-resizer.js +14 -15
- package/build/components/grid/grid-item-resizer.js.map +1 -1
- package/build/components/grid/grid-visualizer.js +2 -2
- package/build/components/grid/grid-visualizer.js.map +1 -1
- package/build/components/grid/use-grid-layout-sync.js +93 -45
- package/build/components/grid/use-grid-layout-sync.js.map +1 -1
- package/build/components/iframe/index.js +4 -8
- package/build/components/iframe/index.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 +1 -1
- package/build/components/inner-blocks/index.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/category-tabs/index.js +29 -2
- package/build/components/inserter/category-tabs/index.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 +3 -3
- 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-draggable-blocks/index.js +10 -3
- package/build/components/inserter-draggable-blocks/index.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/line-height-control/index.js +0 -15
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/link-control/search-input.js +0 -1
- package/build/components/link-control/search-input.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-replace-flow/index.js +3 -1
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/resolution-tool/index.js +1 -0
- package/build/components/resolution-tool/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/skip-to-selected-block/index.js +4 -2
- package/build/components/skip-to-selected-block/index.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +8 -8
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build/components/url-input/button.js +0 -1
- package/build/components/url-input/button.js.map +1 -1
- package/build/components/url-input/index.js +1 -11
- package/build/components/url-input/index.js.map +1 -1
- 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/link-editor.js +0 -1
- package/build/components/url-popover/link-editor.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +30 -4
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-on-block-drop/index.js +3 -6
- package/build/components/use-on-block-drop/index.js.map +1 -1
- package/build/components/use-resize-canvas/index.js +1 -3
- package/build/components/use-resize-canvas/index.js.map +1 -1
- package/build/components/use-settings/index.js +2 -1
- package/build/components/use-settings/index.js.map +1 -1
- package/build/hooks/block-bindings.js +248 -36
- package/build/hooks/block-bindings.js.map +1 -1
- package/build/hooks/block-hooks.js +1 -0
- package/build/hooks/block-hooks.js.map +1 -1
- package/build/hooks/block-style-variation.js +2 -2
- package/build/hooks/block-style-variation.js.map +1 -1
- package/build/hooks/contrast-checker.js +6 -6
- package/build/hooks/contrast-checker.js.map +1 -1
- package/build/hooks/duotone.js +3 -3
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/grid-visualizer.js +5 -8
- package/build/hooks/grid-visualizer.js.map +1 -1
- package/build/hooks/index.js +7 -1
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/layout-child.js +9 -2
- package/build/hooks/layout-child.js.map +1 -1
- package/build/hooks/line-height.js +0 -1
- package/build/hooks/line-height.js.map +1 -1
- package/build/hooks/position.js +3 -7
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/spacing-visualizer.js +1 -1
- package/build/hooks/spacing-visualizer.js.map +1 -1
- package/build/hooks/use-bindings-attributes.js +85 -50
- package/build/hooks/use-bindings-attributes.js.map +1 -1
- package/build/hooks/use-zoom-out.js +1 -1
- package/build/hooks/use-zoom-out.js.map +1 -1
- package/build/hooks/utils.js +20 -0
- package/build/hooks/utils.js.map +1 -1
- package/build/index.js +7 -0
- package/build/index.js.map +1 -1
- package/build/layouts/constrained.js +6 -2
- package/build/layouts/constrained.js.map +1 -1
- package/build/layouts/grid.js +2 -0
- package/build/layouts/grid.js.map +1 -1
- package/build/private-apis.js +0 -4
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +27 -2
- package/build/store/actions.js.map +1 -1
- package/build/store/reducer.js +19 -1
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +17 -5
- package/build/store/selectors.js.map +1 -1
- package/build/utils/get-editor-region.js +1 -1
- package/build/utils/get-editor-region.js.map +1 -1
- package/build/utils/get-px-from-css-unit.js +1 -1
- package/build/utils/get-px-from-css-unit.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 +4 -2
- package/build-module/components/block-breadcrumb/index.js.map +1 -1
- package/build-module/components/block-draggable/index.js +3 -3
- package/build-module/components/block-draggable/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 +27 -30
- 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-mover/index.js +1 -2
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-popover/cover.js +1 -1
- package/build-module/components/block-popover/cover.js.map +1 -1
- package/build-module/components/block-popover/inbetween.js +1 -1
- package/build-module/components/block-popover/inbetween.js.map +1 -1
- package/build-module/components/block-popover/index.js +1 -1
- package/build-module/components/block-popover/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-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 +5 -2
- package/build-module/components/block-toolbar/shuffle.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +1 -2
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/index.js +1 -1
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/use-block-toolbar-popover-props.js +1 -1
- package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
- package/build-module/components/block-tools/use-show-block-tools.js +7 -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 +37 -38
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-popover.js +2 -1
- package/build-module/components/block-tools/zoom-out-popover.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-toolbar.js +1 -2
- package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -1
- package/build-module/components/child-layout-control/index.js +3 -1
- package/build-module/components/child-layout-control/index.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +4 -12
- 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/scale-tool.js +1 -0
- package/build-module/components/dimensions-tool/scale-tool.js.map +1 -1
- package/build-module/components/font-appearance-control/index.js +3 -6
- package/build-module/components/font-appearance-control/index.js.map +1 -1
- package/build-module/components/font-family/index.js +11 -0
- package/build-module/components/font-family/index.js.map +1 -1
- package/build-module/components/global-styles/background-panel.js +63 -52
- package/build-module/components/global-styles/background-panel.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +5 -1
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/image-settings-panel.js +1 -0
- package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
- package/build-module/components/global-styles/theme-file-uri-utils.js +0 -58
- package/build-module/components/global-styles/theme-file-uri-utils.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +27 -45
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/typography-utils.js +76 -7
- package/build-module/components/global-styles/typography-utils.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +81 -43
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +92 -0
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/grid/grid-item-movers.js +96 -46
- package/build-module/components/grid/grid-item-movers.js.map +1 -1
- package/build-module/components/grid/grid-item-resizer.js +14 -15
- package/build-module/components/grid/grid-item-resizer.js.map +1 -1
- package/build-module/components/grid/grid-visualizer.js +2 -2
- package/build-module/components/grid/grid-visualizer.js.map +1 -1
- package/build-module/components/grid/use-grid-layout-sync.js +94 -46
- package/build-module/components/grid/use-grid-layout-sync.js.map +1 -1
- package/build-module/components/iframe/index.js +4 -8
- package/build-module/components/iframe/index.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 +1 -1
- package/build-module/components/inner-blocks/index.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/category-tabs/index.js +30 -3
- package/build-module/components/inserter/category-tabs/index.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 +3 -3
- 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-draggable-blocks/index.js +10 -3
- package/build-module/components/inserter-draggable-blocks/index.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/line-height-control/index.js +0 -14
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/link-control/search-input.js +0 -1
- package/build-module/components/link-control/search-input.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-replace-flow/index.js +3 -1
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/resolution-tool/index.js +1 -0
- package/build-module/components/resolution-tool/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/skip-to-selected-block/index.js +5 -3
- package/build-module/components/skip-to-selected-block/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +8 -8
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build-module/components/url-input/button.js +0 -1
- package/build-module/components/url-input/button.js.map +1 -1
- package/build-module/components/url-input/index.js +1 -11
- package/build-module/components/url-input/index.js.map +1 -1
- 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/link-editor.js +0 -1
- package/build-module/components/url-popover/link-editor.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +30 -4
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-on-block-drop/index.js +3 -6
- package/build-module/components/use-on-block-drop/index.js.map +1 -1
- package/build-module/components/use-resize-canvas/index.js +1 -3
- package/build-module/components/use-resize-canvas/index.js.map +1 -1
- package/build-module/components/use-settings/index.js +2 -1
- package/build-module/components/use-settings/index.js.map +1 -1
- package/build-module/hooks/block-bindings.js +253 -40
- package/build-module/hooks/block-bindings.js.map +1 -1
- package/build-module/hooks/block-hooks.js +1 -0
- package/build-module/hooks/block-hooks.js.map +1 -1
- package/build-module/hooks/block-style-variation.js +3 -3
- package/build-module/hooks/block-style-variation.js.map +1 -1
- package/build-module/hooks/contrast-checker.js +7 -7
- package/build-module/hooks/contrast-checker.js.map +1 -1
- package/build-module/hooks/duotone.js +4 -4
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/grid-visualizer.js +5 -8
- package/build-module/hooks/grid-visualizer.js.map +1 -1
- package/build-module/hooks/index.js +2 -1
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/layout-child.js +9 -2
- package/build-module/hooks/layout-child.js.map +1 -1
- package/build-module/hooks/line-height.js +0 -1
- package/build-module/hooks/line-height.js.map +1 -1
- package/build-module/hooks/position.js +3 -7
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/spacing-visualizer.js +1 -1
- package/build-module/hooks/spacing-visualizer.js.map +1 -1
- package/build-module/hooks/use-bindings-attributes.js +84 -51
- package/build-module/hooks/use-bindings-attributes.js.map +1 -1
- package/build-module/hooks/use-zoom-out.js +1 -1
- package/build-module/hooks/use-zoom-out.js.map +1 -1
- package/build-module/hooks/utils.js +19 -0
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/index.js +1 -1
- package/build-module/index.js.map +1 -1
- package/build-module/layouts/constrained.js +6 -2
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/layouts/grid.js +2 -0
- package/build-module/layouts/grid.js.map +1 -1
- package/build-module/private-apis.js +1 -5
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +24 -1
- package/build-module/store/actions.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 +14 -4
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/get-editor-region.js +1 -1
- package/build-module/utils/get-editor-region.js.map +1 -1
- package/build-module/utils/get-px-from-css-unit.js +1 -1
- package/build-module/utils/get-px-from-css-unit.js.map +1 -1
- package/build-style/content-rtl.css +11 -18
- package/build-style/content.css +11 -18
- package/build-style/default-editor-styles-rtl.css +3 -0
- package/build-style/default-editor-styles.css +3 -0
- package/build-style/style-rtl.css +242 -136
- package/build-style/style.css +242 -136
- 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 +31 -31
- package/src/autocompleters/style.scss +4 -0
- 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 +4 -2
- package/src/components/block-canvas/style.scss +1 -0
- package/src/components/block-context/README.md +4 -4
- package/src/components/block-draggable/index.js +3 -3
- 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 +30 -30
- 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-mover/index.js +5 -2
- package/src/components/block-patterns-paging/style.scss +0 -23
- package/src/components/block-popover/cover.js +1 -1
- package/src/components/block-popover/inbetween.js +1 -1
- package/src/components/block-popover/index.js +1 -1
- package/src/components/block-removal-warning-modal/index.js +10 -2
- 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-toolbar/shuffle.js +8 -1
- package/src/components/block-tools/block-selection-button.js +1 -2
- package/src/components/block-tools/index.js +5 -6
- package/src/components/block-tools/style.scss +8 -0
- package/src/components/block-tools/use-block-toolbar-popover-props.js +1 -1
- package/src/components/block-tools/use-show-block-tools.js +12 -9
- package/src/components/block-tools/zoom-out-mode-inserter-button.js +47 -0
- package/src/components/block-tools/zoom-out-mode-inserters.js +48 -42
- package/src/components/block-tools/zoom-out-popover.js +1 -0
- package/src/components/block-tools/zoom-out-toolbar.js +1 -2
- package/src/components/button-block-appender/content.scss +1 -1
- package/src/components/child-layout-control/index.js +2 -0
- package/src/components/color-palette/test/__snapshots__/control.js.snap +2 -2
- package/src/components/colors-gradients/test/control.js +3 -2
- package/src/components/date-format-picker/index.js +2 -11
- package/src/components/default-block-appender/index.js +11 -4
- package/src/components/dimensions-tool/scale-tool.js +1 -0
- package/src/components/font-appearance-control/index.js +1 -5
- package/src/components/font-family/README.md +8 -0
- package/src/components/font-family/index.js +16 -0
- package/src/components/font-family/stories/index.story.js +54 -0
- package/src/components/global-styles/background-panel.js +90 -62
- package/src/components/global-styles/hooks.js +5 -1
- package/src/components/global-styles/image-settings-panel.js +1 -0
- package/src/components/global-styles/style.scss +11 -9
- package/src/components/global-styles/test/theme-file-uri-utils.js +1 -26
- package/src/components/global-styles/test/typography-utils.js +325 -0
- package/src/components/global-styles/test/use-global-styles-output.js +52 -5
- package/src/components/global-styles/test/utils.js +120 -0
- package/src/components/global-styles/theme-file-uri-utils.js +0 -59
- package/src/components/global-styles/typography-panel.js +36 -45
- package/src/components/global-styles/typography-utils.js +103 -7
- package/src/components/global-styles/use-global-styles-output.js +89 -50
- package/src/components/global-styles/utils.js +112 -0
- package/src/components/grid/grid-item-movers.js +141 -69
- package/src/components/grid/grid-item-resizer.js +11 -17
- package/src/components/grid/grid-visualizer.js +2 -2
- package/src/components/grid/style.scss +164 -0
- package/src/components/grid/use-grid-layout-sync.js +133 -40
- package/src/components/iframe/content.scss +3 -3
- package/src/components/iframe/index.js +3 -7
- package/src/components/index.js +0 -5
- package/src/components/inner-blocks/index.js +4 -1
- package/src/components/inserter/block-patterns-tab/patterns-filter.js +40 -44
- package/src/components/inserter/category-tabs/index.js +35 -2
- package/src/components/inserter/media-tab/media-panel.js +1 -0
- package/src/components/inserter/menu.js +3 -3
- package/src/components/inserter/preview-panel.js +27 -4
- package/src/components/inserter/style.scss +66 -47
- package/src/components/inserter-draggable-blocks/index.js +11 -3
- package/src/components/inspector-controls/README.md +5 -0
- package/src/components/inspector-controls-tabs/settings-tab.js +0 -2
- package/src/components/inspector-controls-tabs/style.scss +0 -21
- package/src/components/line-height-control/README.md +0 -8
- package/src/components/line-height-control/index.js +1 -21
- package/src/components/line-height-control/stories/index.story.js +0 -1
- package/src/components/line-height-control/test/index.js +1 -7
- package/src/components/link-control/search-input.js +0 -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-replace-flow/README.md +7 -0
- package/src/components/media-replace-flow/index.js +3 -1
- package/src/components/resolution-tool/index.js +1 -0
- package/src/components/responsive-block-control/test/index.js +5 -1
- package/src/components/rich-text/format-toolbar/index.js +1 -1
- package/src/components/rich-text/index.js +1 -1
- package/src/components/skip-to-selected-block/index.js +5 -3
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +6 -7
- package/src/components/tabbed-sidebar/style.scss +1 -19
- package/src/components/url-input/README.md +0 -5
- package/src/components/url-input/button.js +0 -1
- package/src/components/url-input/index.js +1 -15
- package/src/components/url-popover/image-url-input-ui.js +3 -3
- package/src/components/url-popover/link-editor.js +0 -1
- package/src/components/url-popover/style.scss +1 -0
- package/src/components/use-block-drop-zone/index.js +66 -14
- package/src/components/use-on-block-drop/index.js +1 -9
- package/src/components/use-resize-canvas/index.js +1 -3
- package/src/components/use-settings/index.js +2 -1
- package/src/hooks/block-bindings.js +303 -52
- package/src/hooks/block-bindings.scss +13 -2
- package/src/hooks/block-hooks.js +1 -0
- package/src/hooks/block-hooks.scss +1 -0
- package/src/hooks/block-style-variation.js +3 -3
- package/src/hooks/contrast-checker.js +7 -7
- package/src/hooks/duotone.js +4 -4
- package/src/hooks/grid-visualizer.js +5 -7
- package/src/hooks/index.js +2 -1
- package/src/hooks/layout-child.js +12 -3
- package/src/hooks/line-height.js +0 -1
- package/src/hooks/position.js +3 -13
- package/src/hooks/spacing-visualizer.js +1 -1
- package/src/hooks/use-bindings-attributes.js +93 -59
- package/src/hooks/use-editor-wrapper-styles.native.scss +1 -0
- package/src/hooks/use-zoom-out.js +1 -1
- package/src/hooks/utils.js +14 -1
- package/src/index.js +1 -0
- package/src/layouts/constrained.js +10 -2
- package/src/layouts/grid.js +2 -0
- package/src/private-apis.js +1 -8
- package/src/store/actions.js +28 -5
- package/src/store/reducer.js +18 -0
- package/src/store/selectors.js +14 -4
- package/src/style.scss +1 -1
- package/src/utils/get-editor-region.js +1 -1
- package/src/utils/get-px-from-css-unit.js +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +0 -30
- package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +0 -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/block-patterns-tab/pattern-category-preview-panel.js +0 -23
- package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.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/block-patterns-tab/pattern-category-preview-panel.js +0 -25
- package/src/components/inserter/reusable-block-rename-hint.js +0 -69
- package/src/components/inspector-controls-tabs/settings-tab-hint.js +0 -52
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Internal dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { getValueFromObjectPath } from '../../utils/object';
|
|
5
|
-
|
|
6
1
|
/**
|
|
7
2
|
* Looks up a theme file URI based on a relative path.
|
|
8
3
|
*
|
|
@@ -17,57 +12,4 @@ export function getResolvedThemeFilePath(file, themeFileURIs = []) {
|
|
|
17
12
|
}
|
|
18
13
|
return uri?.href;
|
|
19
14
|
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Mutates an object by settings a value at the provided path.
|
|
23
|
-
*
|
|
24
|
-
* @param {Object} object Object to set a value in.
|
|
25
|
-
* @param {number|string|Array} path Path in the object to modify.
|
|
26
|
-
* @param {*} value New value to set.
|
|
27
|
-
* @return {Object} Object with the new value set.
|
|
28
|
-
*/
|
|
29
|
-
function setMutably(object, path, value) {
|
|
30
|
-
path = path.split('.');
|
|
31
|
-
const finalValueKey = path.pop();
|
|
32
|
-
let prev = object;
|
|
33
|
-
for (const key of path) {
|
|
34
|
-
const current = prev[key];
|
|
35
|
-
prev = current;
|
|
36
|
-
}
|
|
37
|
-
prev[finalValueKey] = value;
|
|
38
|
-
return object;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Resolves any relative paths if a corresponding theme file URI is available.
|
|
43
|
-
* Note: this function mutates the object and is specifically to be used in
|
|
44
|
-
* an async styles build context in useGlobalStylesOutput
|
|
45
|
-
*
|
|
46
|
-
* @param {Object} themeJson Theme.json/Global styles tree.
|
|
47
|
-
* @param {Array<Object>} themeFileURIs A collection of absolute theme file URIs and their corresponding file paths.
|
|
48
|
-
* @return {Object} Returns mutated object.
|
|
49
|
-
*/
|
|
50
|
-
export function setThemeFileUris(themeJson, themeFileURIs) {
|
|
51
|
-
if (!themeJson?.styles || !themeFileURIs) {
|
|
52
|
-
return themeJson;
|
|
53
|
-
}
|
|
54
|
-
themeFileURIs.forEach(({
|
|
55
|
-
name,
|
|
56
|
-
href,
|
|
57
|
-
target
|
|
58
|
-
}) => {
|
|
59
|
-
const value = getValueFromObjectPath(themeJson, target);
|
|
60
|
-
if (value === name) {
|
|
61
|
-
/*
|
|
62
|
-
* The object must not be updated immutably here because the
|
|
63
|
-
* themeJson is a reference to the global styles tree used as a dependency in the
|
|
64
|
-
* useGlobalStylesOutputWithConfig() hook. If we don't mutate the object,
|
|
65
|
-
* the hook will detect the change and re-render the component, resulting
|
|
66
|
-
* in a maximum depth exceeded error.
|
|
67
|
-
*/
|
|
68
|
-
themeJson = setMutably(themeJson, target, href);
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
return themeJson;
|
|
72
|
-
}
|
|
73
15
|
//# sourceMappingURL=theme-file-uri-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["getResolvedThemeFilePath","file","themeFileURIs","uri","find","themeFileUri","name","href"],"sources":["@wordpress/block-editor/src/components/global-styles/theme-file-uri-utils.js"],"sourcesContent":["/**\n * Looks up a theme file URI based on a relative path.\n *\n * @param {string} file A relative path.\n * @param {Array<Object>} themeFileURIs A collection of absolute theme file URIs and their corresponding file paths.\n * @return {string?} A resolved theme file URI, if one is found in the themeFileURIs collection.\n */\nexport function getResolvedThemeFilePath( file, themeFileURIs = [] ) {\n\tconst uri = themeFileURIs.find(\n\t\t( themeFileUri ) => themeFileUri.name === file\n\t);\n\n\tif ( ! uri?.href ) {\n\t\treturn file;\n\t}\n\n\treturn uri?.href;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,wBAAwBA,CAAEC,IAAI,EAAEC,aAAa,GAAG,EAAE,EAAG;EACpE,MAAMC,GAAG,GAAGD,aAAa,CAACE,IAAI,CAC3BC,YAAY,IAAMA,YAAY,CAACC,IAAI,KAAKL,IAC3C,CAAC;EAED,IAAK,CAAEE,GAAG,EAAEI,IAAI,EAAG;IAClB,OAAON,IAAI;EACZ;EAEA,OAAOE,GAAG,EAAEI,IAAI;AACjB","ignoreList":[]}
|
|
@@ -18,8 +18,7 @@ import TextDecorationControl from '../text-decoration-control';
|
|
|
18
18
|
import WritingModeControl from '../writing-mode-control';
|
|
19
19
|
import { getValueFromVariable, useToolsPanelDropdownMenuProps } from './utils';
|
|
20
20
|
import { setImmutably } from '../../utils/object';
|
|
21
|
-
import { getMergedFontFamiliesAndFontFamilyFaces,
|
|
22
|
-
import { getFontStylesAndWeights } from '../../utils/get-font-styles-and-weights';
|
|
21
|
+
import { getMergedFontFamiliesAndFontFamilyFaces, findNearestStyleAndWeight } from './typography-utils';
|
|
23
22
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
24
23
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
25
24
|
const MIN_TEXT_COLUMNS = 1;
|
|
@@ -172,59 +171,43 @@ export default function TypographyPanel({
|
|
|
172
171
|
const hasFontWeights = settings?.typography?.fontWeight;
|
|
173
172
|
const fontStyle = decodeValue(inheritedValue?.typography?.fontStyle);
|
|
174
173
|
const fontWeight = decodeValue(inheritedValue?.typography?.fontWeight);
|
|
175
|
-
const
|
|
174
|
+
const {
|
|
175
|
+
nearestFontStyle,
|
|
176
|
+
nearestFontWeight
|
|
177
|
+
} = findNearestStyleAndWeight(fontFamilyFaces, fontStyle, fontWeight);
|
|
178
|
+
const setFontAppearance = useCallback(({
|
|
176
179
|
fontStyle: newFontStyle,
|
|
177
180
|
fontWeight: newFontWeight
|
|
178
181
|
}) => {
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
...value
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
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]);
|
|
188
194
|
const hasFontAppearance = () => !!value?.typography?.fontStyle || !!value?.typography?.fontWeight;
|
|
189
|
-
const resetFontAppearance = () => {
|
|
195
|
+
const resetFontAppearance = useCallback(() => {
|
|
190
196
|
setFontAppearance({});
|
|
191
|
-
};
|
|
197
|
+
}, [setFontAppearance]);
|
|
192
198
|
|
|
193
|
-
// Check if previous font style and weight values are available in the new font family
|
|
199
|
+
// Check if previous font style and weight values are available in the new font family.
|
|
194
200
|
useEffect(() => {
|
|
195
|
-
|
|
196
|
-
fontStyles,
|
|
197
|
-
fontWeights,
|
|
198
|
-
isSystemFont
|
|
199
|
-
} = getFontStylesAndWeights(fontFamilyFaces);
|
|
200
|
-
const hasFontStyle = fontStyles?.some(({
|
|
201
|
-
value: fs
|
|
202
|
-
}) => fs === fontStyle);
|
|
203
|
-
const hasFontWeight = fontWeights?.some(({
|
|
204
|
-
value: fw
|
|
205
|
-
}) => fw === fontWeight);
|
|
206
|
-
|
|
207
|
-
// Try to set nearest available font weight
|
|
208
|
-
if (!hasFontWeight && fontWeight) {
|
|
201
|
+
if (nearestFontStyle && nearestFontWeight) {
|
|
209
202
|
setFontAppearance({
|
|
210
|
-
fontStyle,
|
|
211
|
-
fontWeight:
|
|
203
|
+
fontStyle: nearestFontStyle,
|
|
204
|
+
fontWeight: nearestFontWeight
|
|
212
205
|
});
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
// Set the same weight and style values if the font family is a system font or if both are the same
|
|
216
|
-
if (isSystemFont || hasFontStyle && hasFontWeight) {
|
|
217
|
-
setFontAppearance({
|
|
218
|
-
fontStyle,
|
|
219
|
-
fontWeight
|
|
220
|
-
});
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
// Reset font appearance if the font family does not have the selected font style
|
|
224
|
-
if (!hasFontStyle) {
|
|
206
|
+
} else {
|
|
207
|
+
// Reset font appearance if there are no available styles or weights.
|
|
225
208
|
resetFontAppearance();
|
|
226
209
|
}
|
|
227
|
-
}, [
|
|
210
|
+
}, [nearestFontStyle, nearestFontWeight, resetFontAppearance, setFontAppearance]);
|
|
228
211
|
|
|
229
212
|
// Line Height
|
|
230
213
|
const hasLineHeightEnabled = useHasLineHeightControl(settings);
|
|
@@ -353,7 +336,6 @@ export default function TypographyPanel({
|
|
|
353
336
|
isShownByDefault: defaultControls.lineHeight,
|
|
354
337
|
panelId: panelId,
|
|
355
338
|
children: /*#__PURE__*/_jsx(LineHeightControl, {
|
|
356
|
-
__nextHasNoMarginBottom: true,
|
|
357
339
|
__unstableInputWidth: "auto",
|
|
358
340
|
value: lineHeight,
|
|
359
341
|
onChange: setLineHeight,
|
|
@@ -1 +1 @@
|
|
|
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","findNearestFontWeight","getFontStylesAndWeights","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","setFontAppearance","newFontStyle","newFontWeight","resetFontAppearance","fontStyles","fontWeights","isSystemFont","hasFontStyle","fs","hasFontWeight","fw","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\tfindNearestFontWeight,\n} from './typography-utils';\nimport { getFontStylesAndWeights } from '../../utils/get-font-styles-and-weights';\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 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// Check if previous font style and weight values are available in the new font family\n\tuseEffect( () => {\n\t\tconst { fontStyles, fontWeights, isSystemFont } =\n\t\t\tgetFontStylesAndWeights( fontFamilyFaces );\n\t\tconst hasFontStyle = fontStyles?.some(\n\t\t\t( { value: fs } ) => fs === fontStyle\n\t\t);\n\t\tconst hasFontWeight = fontWeights?.some(\n\t\t\t( { value: fw } ) => fw === fontWeight\n\t\t);\n\n\t\t// Try to set nearest available font weight\n\t\tif ( ! hasFontWeight && fontWeight ) {\n\t\t\tsetFontAppearance( {\n\t\t\t\tfontStyle,\n\t\t\t\tfontWeight: findNearestFontWeight( fontWeights, fontWeight ),\n\t\t\t} );\n\t\t}\n\n\t\t// Set the same weight and style values if the font family is a system font or if both are the same\n\t\tif ( isSystemFont || ( hasFontStyle && hasFontWeight ) ) {\n\t\t\tsetFontAppearance( {\n\t\t\t\tfontStyle,\n\t\t\t\tfontWeight,\n\t\t\t} );\n\t\t}\n\n\t\t// Reset font appearance if the font family does not have the selected font style\n\t\tif ( ! hasFontStyle ) {\n\t\t\tresetFontAppearance();\n\t\t}\n\t}, [ fontFamily ] );\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":[]}
|
|
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__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
|
|
@@ -104,9 +105,9 @@ export function getFluidTypographyOptionsFromSettings(settings) {
|
|
|
104
105
|
* Returns an object of merged font families and the font faces from the selected font family
|
|
105
106
|
* based on the theme.json settings object and the currently selected font family.
|
|
106
107
|
*
|
|
107
|
-
* @param {Object} settings Theme.json settings
|
|
108
|
-
* @param {string} selectedFontFamily Decoded font family string
|
|
109
|
-
* @return {Object} Merged font families and font faces from the selected font family
|
|
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.
|
|
110
111
|
*/
|
|
111
112
|
export function getMergedFontFamiliesAndFontFamilyFaces(settings, selectedFontFamily) {
|
|
112
113
|
var _fontFamilies$find$fo;
|
|
@@ -126,11 +127,10 @@ export function getMergedFontFamiliesAndFontFamilyFaces(settings, selectedFontFa
|
|
|
126
127
|
* Returns the nearest font weight value from the available font weight list based on the new font weight.
|
|
127
128
|
* The nearest font weight is the one with the smallest difference from the new font weight.
|
|
128
129
|
*
|
|
129
|
-
* @param {Array} availableFontWeights Array of available font weights
|
|
130
|
-
* @param {string} newFontWeightValue New font weight value
|
|
131
|
-
* @return {string} Nearest font weight
|
|
130
|
+
* @param {Array} availableFontWeights Array of available font weights.
|
|
131
|
+
* @param {string} newFontWeightValue New font weight value.
|
|
132
|
+
* @return {string} Nearest font weight.
|
|
132
133
|
*/
|
|
133
|
-
|
|
134
134
|
export function findNearestFontWeight(availableFontWeights, newFontWeightValue) {
|
|
135
135
|
if (!newFontWeightValue || typeof newFontWeightValue !== 'string') {
|
|
136
136
|
return '';
|
|
@@ -147,4 +147,73 @@ export function findNearestFontWeight(availableFontWeights, newFontWeightValue)
|
|
|
147
147
|
}, availableFontWeights[0]?.value);
|
|
148
148
|
return nearestFontWeight;
|
|
149
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
|
+
}
|
|
150
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","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"],"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\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 */\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"],"mappings":"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","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":[]}
|