@wordpress/block-editor 13.3.0 → 13.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/README.md +0 -4
- 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-inspector/index.js +6 -3
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +3 -1
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-refs.js +9 -2
- package/build/components/block-list/use-block-props/use-block-refs.js.map +1 -1
- package/build/components/block-list/use-block-props/use-is-hovered.js +25 -9
- package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +3 -2
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-lock/modal.js +2 -0
- package/build/components/block-lock/modal.js.map +1 -1
- package/build/components/block-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/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 +27 -27
- 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 -1
- package/build/components/block-tools/zoom-out-toolbar.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/font-appearance-control/index.js +2 -7
- package/build/components/font-appearance-control/index.js.map +1 -1
- package/build/components/global-styles/background-panel.js +8 -1
- 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/typography-panel.js +26 -43
- 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 +24 -5
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/grid/grid-item-movers.js +89 -44
- package/build/components/grid/grid-item-movers.js.map +1 -1
- package/build/components/grid/grid-visualizer.js +1 -1
- package/build/components/grid/grid-visualizer.js.map +1 -1
- package/build/components/grid/use-grid-layout-sync.js +40 -28
- package/build/components/grid/use-grid-layout-sync.js.map +1 -1
- package/build/components/index.js +1 -9
- package/build/components/index.js.map +1 -1
- package/build/components/inner-blocks/index.js +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/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 +1 -1
- 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/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/rich-text/format-toolbar/index.js +1 -1
- package/build/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build/components/rich-text/index.js +1 -1
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -2
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.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/hooks/grid-visualizer.js +5 -8
- package/build/hooks/grid-visualizer.js.map +1 -1
- package/build/hooks/layout-child.js +9 -2
- package/build/hooks/layout-child.js.map +1 -1
- package/build/hooks/position.js +3 -7
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/use-bindings-attributes.js +81 -50
- package/build/hooks/use-bindings-attributes.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 -3
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +18 -1
- package/build/store/actions.js.map +1 -1
- package/build/store/reducer.js +19 -1
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +13 -1
- package/build/store/selectors.js.map +1 -1
- package/build-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-inspector/index.js +6 -3
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +3 -1
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-block-refs.js +11 -4
- package/build-module/components/block-list/use-block-props/use-block-refs.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-is-hovered.js +26 -9
- package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +3 -2
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-lock/modal.js +2 -0
- package/build-module/components/block-lock/modal.js.map +1 -1
- package/build-module/components/block-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/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 +28 -28
- 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 -1
- package/build-module/components/block-tools/zoom-out-toolbar.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/font-appearance-control/index.js +3 -6
- package/build-module/components/font-appearance-control/index.js.map +1 -1
- package/build-module/components/global-styles/background-panel.js +8 -1
- 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/typography-panel.js +27 -44
- 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 +24 -5
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/grid/grid-item-movers.js +92 -46
- package/build-module/components/grid/grid-item-movers.js.map +1 -1
- package/build-module/components/grid/grid-visualizer.js +1 -1
- package/build-module/components/grid/grid-visualizer.js.map +1 -1
- package/build-module/components/grid/use-grid-layout-sync.js +41 -29
- package/build-module/components/grid/use-grid-layout-sync.js.map +1 -1
- package/build-module/components/index.js +0 -5
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +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/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 +1 -1
- 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/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/rich-text/format-toolbar/index.js +1 -1
- package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +1 -1
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -2
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.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/hooks/grid-visualizer.js +5 -8
- package/build-module/hooks/grid-visualizer.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/position.js +3 -7
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/use-bindings-attributes.js +81 -51
- package/build-module/hooks/use-bindings-attributes.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 +0 -3
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +15 -0
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/reducer.js +18 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +10 -0
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/content-rtl.css +6 -6
- package/build-style/content.css +6 -6
- package/build-style/style-rtl.css +167 -103
- package/build-style/style.css +167 -103
- 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/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-context/README.md +4 -4
- package/src/components/block-inspector/index.js +8 -4
- package/src/components/block-list/content.scss +2 -16
- package/src/components/block-list/use-block-props/index.js +1 -1
- package/src/components/block-list/use-block-props/use-block-refs.js +19 -3
- package/src/components/block-list/use-block-props/use-is-hovered.js +26 -11
- package/src/components/block-list/use-in-between-inserter.js +5 -1
- package/src/components/block-lock/modal.js +10 -2
- package/src/components/block-lock/style.scss +4 -8
- package/src/components/block-patterns-paging/style.scss +0 -23
- 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/style.scss +8 -0
- 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 +43 -33
- package/src/components/block-tools/zoom-out-popover.js +1 -0
- package/src/components/block-tools/zoom-out-toolbar.js +1 -1
- package/src/components/date-format-picker/index.js +2 -11
- package/src/components/default-block-appender/index.js +11 -4
- package/src/components/font-appearance-control/index.js +1 -5
- package/src/components/global-styles/background-panel.js +21 -1
- package/src/components/global-styles/hooks.js +5 -1
- package/src/components/global-styles/style.scss +12 -0
- package/src/components/global-styles/test/typography-utils.js +325 -0
- package/src/components/global-styles/test/use-global-styles-output.js +3 -1
- package/src/components/global-styles/typography-panel.js +36 -44
- package/src/components/global-styles/typography-utils.js +103 -7
- package/src/components/global-styles/use-global-styles-output.js +22 -2
- package/src/components/grid/grid-item-movers.js +139 -69
- package/src/components/grid/grid-visualizer.js +1 -1
- package/src/components/grid/style.scss +114 -0
- package/src/components/grid/use-grid-layout-sync.js +66 -27
- package/src/components/iframe/content.scss +1 -1
- 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/media-tab/media-panel.js +1 -0
- package/src/components/inserter/menu.js +1 -1
- package/src/components/inserter/preview-panel.js +27 -4
- package/src/components/inserter/style.scss +57 -43
- package/src/components/inserter-draggable-blocks/index.js +11 -3
- package/src/components/inspector-controls-tabs/settings-tab.js +0 -2
- package/src/components/inspector-controls-tabs/style.scss +0 -21
- package/src/components/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/rich-text/format-toolbar/index.js +1 -1
- package/src/components/rich-text/index.js +1 -1
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +3 -1
- package/src/components/url-popover/image-url-input-ui.js +3 -3
- package/src/components/url-popover/style.scss +1 -0
- package/src/hooks/grid-visualizer.js +5 -7
- package/src/hooks/layout-child.js +12 -3
- package/src/hooks/position.js +3 -13
- package/src/hooks/use-bindings-attributes.js +89 -59
- package/src/layouts/constrained.js +10 -2
- package/src/layouts/grid.js +2 -0
- package/src/private-apis.js +0 -6
- package/src/store/actions.js +15 -0
- package/src/store/reducer.js +18 -0
- package/src/store/selectors.js +10 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/inserter/reusable-block-rename-hint.js +0 -71
- package/build/components/inserter/reusable-block-rename-hint.js.map +0 -1
- package/build/components/inspector-controls-tabs/settings-tab-hint.js +0 -53
- package/build/components/inspector-controls-tabs/settings-tab-hint.js.map +0 -1
- package/build-module/components/inserter/reusable-block-rename-hint.js +0 -64
- package/build-module/components/inserter/reusable-block-rename-hint.js.map +0 -1
- package/build-module/components/inspector-controls-tabs/settings-tab-hint.js +0 -47
- package/build-module/components/inspector-controls-tabs/settings-tab-hint.js.map +0 -1
- package/src/components/inserter/reusable-block-rename-hint.js +0 -69
- package/src/components/inspector-controls-tabs/settings-tab-hint.js +0 -52
|
@@ -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":"AAAA;AACA;AACA;AACA,SACCA,cAAc,EACdC,2BAA2B,IAAIC,aAAa,EAC5CC,wBAAwB,IAAIC,UAAU,EACtCC,4BAA4B,IAAIC,cAAc,QACxC,uBAAuB;AAC9B,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,WAAW,EAAEC,OAAO,EAAEC,SAAS,QAAQ,oBAAoB;;AAEpE;AACA;AACA;AACA,OAAOC,iBAAiB,MAAM,gBAAgB;AAC9C,OAAOC,qBAAqB,MAAM,4BAA4B;AAC9D,OAAOC,iBAAiB,MAAM,wBAAwB;AACtD,OAAOC,oBAAoB,MAAM,2BAA2B;AAC5D,OAAOC,oBAAoB,MAAM,2BAA2B;AAC5D,OAAOC,oBAAoB,MAAM,2BAA2B;AAC5D,OAAOC,qBAAqB,MAAM,4BAA4B;AAC9D,OAAOC,kBAAkB,MAAM,yBAAyB;AACxD,SAASC,oBAAoB,EAAEC,8BAA8B,QAAQ,SAAS;AAC9E,SAASC,YAAY,QAAQ,oBAAoB;AACjD,SACCC,uCAAuC,EACvCC,qBAAqB,QACf,oBAAoB;AAC3B,SAASC,uBAAuB,QAAQ,yCAAyC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAElF,MAAMC,gBAAgB,GAAG,CAAC;AAC1B,MAAMC,gBAAgB,GAAG,CAAC;AAE1B,OAAO,SAASC,qBAAqBA,CAAEC,QAAQ,EAAG;EACjD,MAAMC,aAAa,GAAGC,uBAAuB,CAAEF,QAAS,CAAC;EACzD,MAAMG,aAAa,GAAGC,uBAAuB,CAAEJ,QAAS,CAAC;EACzD,MAAMK,iBAAiB,GAAGC,uBAAuB,CAAEN,QAAS,CAAC;EAC7D,MAAMO,gBAAgB,GAAGC,0BAA0B,CAAER,QAAS,CAAC;EAC/D,MAAMS,YAAY,GAAGC,0BAA0B,CAAEV,QAAS,CAAC;EAC3D,MAAMW,gBAAgB,GAAGC,0BAA0B,CAAEZ,QAAS,CAAC;EAC/D,MAAMa,iBAAiB,GAAGC,2BAA2B,CAAEd,QAAS,CAAC;EACjE,MAAMe,cAAc,GAAGC,wBAAwB,CAAEhB,QAAS,CAAC;EAC3D,MAAMiB,cAAc,GAAGC,wBAAwB,CAAElB,QAAS,CAAC;EAC3D,MAAMmB,WAAW,GAAGC,qBAAqB,CAAEpB,QAAS,CAAC;EAErD,OACCC,aAAa,IACbE,aAAa,IACbE,iBAAiB,IACjBE,gBAAgB,IAChBE,YAAY,IACZE,gBAAgB,IAChBQ,WAAW,IACXN,iBAAiB,IACjBE,cAAc,IACdE,cAAc;AAEhB;AAEA,SAASG,qBAAqBA,CAAEpB,QAAQ,EAAG;EAC1C,OACGA,QAAQ,EAAEqB,UAAU,EAAEC,gBAAgB,KAAK,KAAK,IACjDtB,QAAQ,EAAEqB,UAAU,EAAEE,SAAS,EAAEC,OAAO,EAAEC,MAAM,IACjDzB,QAAQ,EAAEqB,UAAU,EAAEE,SAAS,EAAEG,KAAK,EAAED,MAAM,IAC9CzB,QAAQ,EAAEqB,UAAU,EAAEE,SAAS,EAAEI,MAAM,EAAEF,MAAM,IAC/CzB,QAAQ,EAAEqB,UAAU,EAAEO,cAAc;AAEtC;AAEA,SAAS1B,uBAAuBA,CAAEF,QAAQ,EAAG;EAC5C,OAAO,CAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAE,CAAC6B,IAAI,CACzCC,GAAG,IAAM9B,QAAQ,EAAEqB,UAAU,EAAEU,YAAY,GAAID,GAAG,CAAE,EAAEL,MACzD,CAAC;AACF;AAEA,SAASrB,uBAAuBA,CAAEJ,QAAQ,EAAG;EAC5C,OAAOA,QAAQ,EAAEqB,UAAU,EAAEW,UAAU;AACxC;AAEA,SAAS1B,uBAAuBA,CAAEN,QAAQ,EAAG;EAC5C,OAAOA,QAAQ,EAAEqB,UAAU,EAAEY,SAAS,IAAIjC,QAAQ,EAAEqB,UAAU,EAAEa,UAAU;AAC3E;AAEA,SAASC,yBAAyBA,CAAEnC,QAAQ,EAAG;EAC9C,IAAK,CAAEA,QAAQ,EAAEqB,UAAU,EAAEY,SAAS,EAAG;IACxC,OAAO1D,EAAE,CAAE,aAAc,CAAC;EAC3B;EACA,IAAK,CAAEyB,QAAQ,EAAEqB,UAAU,EAAEa,UAAU,EAAG;IACzC,OAAO3D,EAAE,CAAE,YAAa,CAAC;EAC1B;EACA,OAAOA,EAAE,CAAE,YAAa,CAAC;AAC1B;AAEA,SAASiC,0BAA0BA,CAAER,QAAQ,EAAG;EAC/C,OAAOA,QAAQ,EAAEqB,UAAU,EAAEe,aAAa;AAC3C;AAEA,SAASxB,0BAA0BA,CAAEZ,QAAQ,EAAG;EAC/C,OAAOA,QAAQ,EAAEqB,UAAU,EAAEgB,aAAa;AAC3C;AAEA,SAAS3B,0BAA0BA,CAAEV,QAAQ,EAAG;EAC/C,OAAOA,QAAQ,EAAEqB,UAAU,EAAEiB,SAAS;AACvC;AAEA,SAASxB,2BAA2BA,CAAEd,QAAQ,EAAG;EAChD,OAAOA,QAAQ,EAAEqB,UAAU,EAAEkB,cAAc;AAC5C;AAEA,SAASvB,wBAAwBA,CAAEhB,QAAQ,EAAG;EAC7C,OAAOA,QAAQ,EAAEqB,UAAU,EAAEmB,WAAW;AACzC;AAEA,SAAStB,wBAAwBA,CAAElB,QAAQ,EAAG;EAC7C,OAAOA,QAAQ,EAAEqB,UAAU,EAAEoB,WAAW;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,kBAAkBA,CAAE1C,QAAQ,EAAG;EAAA,IAAA2C,iBAAA,EAAAC,gBAAA,EAAAC,kBAAA;EACvC,MAAMtB,SAAS,GAAGvB,QAAQ,EAAEqB,UAAU,EAAEE,SAAS;EACjD,MAAMuB,uBAAuB,GAAG,CAAC,CAAE9C,QAAQ,EAAEqB,UAAU,EAAEC,gBAAgB;EACzE,OAAO,CACN,KAAAqB,iBAAA,GAAKpB,SAAS,EAAEI,MAAM,cAAAgB,iBAAA,cAAAA,iBAAA,GAAI,EAAE,CAAE,EAC9B,KAAAC,gBAAA,GAAKrB,SAAS,EAAEG,KAAK,cAAAkB,gBAAA,cAAAA,gBAAA,GAAI,EAAE,CAAE,EAC7B,IAAKE,uBAAuB,IAAAD,kBAAA,GAAGtB,SAAS,EAAEC,OAAO,cAAAqB,kBAAA,cAAAA,kBAAA,GAAI,EAAE,GAAG,EAAE,CAAE,CAC9D;AACF;AAEA,SAASE,oBAAoBA,CAAE;EAC9BC,cAAc;EACdC,QAAQ;EACRC,KAAK;EACLC,OAAO;EACPC;AACD,CAAC,EAAG;EACH,MAAMC,iBAAiB,GAAGjE,8BAA8B,CAAC,CAAC;EAC1D,MAAMkE,QAAQ,GAAGA,CAAA,KAAM;IACtB,MAAMC,YAAY,GAAGP,cAAc,CAAEE,KAAM,CAAC;IAC5CD,QAAQ,CAAEM,YAAa,CAAC;EACzB,CAAC;EAED,oBACC7D,IAAA,CAACtB,UAAU;IACVoF,KAAK,EAAGjF,EAAE,CAAE,YAAa,CAAG;IAC5B+E,QAAQ,EAAGA,QAAU;IACrBH,OAAO,EAAGA,OAAS;IACnBE,iBAAiB,EAAGA,iBAAmB;IAAAD,QAAA,EAErCA;EAAQ,CACC,CAAC;AAEf;AAEA,MAAMK,gBAAgB,GAAG;EACxBC,UAAU,EAAE,IAAI;EAChBC,QAAQ,EAAE,IAAI;EACdC,cAAc,EAAE,IAAI;EACpB5B,UAAU,EAAE,IAAI;EAChBI,aAAa,EAAE,IAAI;EACnBE,SAAS,EAAE,IAAI;EACfD,aAAa,EAAE,IAAI;EACnBE,cAAc,EAAE,IAAI;EACpBC,WAAW,EAAE,IAAI;EACjBC,WAAW,EAAE;AACd,CAAC;AAED,eAAe,SAASoB,eAAeA,CAAE;EACxCC,EAAE,EAAEC,OAAO,GAAGhB,oBAAoB;EAClCG,KAAK;EACLD,QAAQ;EACRe,cAAc,GAAGd,KAAK;EACtBlD,QAAQ;EACRmD,OAAO;EACPc,eAAe,GAAGR;AACnB,CAAC,EAAG;EACH,MAAMS,WAAW,GAAKC,QAAQ,IAC7BhF,oBAAoB,CAAE;IAAEa;EAAS,CAAC,EAAE,EAAE,EAAEmE,QAAS,CAAC;;EAEnD;EACA,MAAMC,oBAAoB,GAAGlE,uBAAuB,CAAEF,QAAS,CAAC;EAChE,MAAM0D,UAAU,GAAGQ,WAAW,CAAEF,cAAc,EAAE3C,UAAU,EAAEqC,UAAW,CAAC;EACxE,MAAM;IAAE3B,YAAY;IAAEsC;EAAgB,CAAC,GAAG5F,OAAO,CAAE,MAAM;IACxD,OAAOa,uCAAuC,CAAEU,QAAQ,EAAE0D,UAAW,CAAC;EACvE,CAAC,EAAE,CAAE1D,QAAQ,EAAE0D,UAAU,CAAG,CAAC;EAE7B,MAAMY,aAAa,GAAKC,QAAQ,IAAM;IACrC,MAAMC,IAAI,GAAGzC,YAAY,EAAE0C,IAAI,CAC9B,CAAE;MAAEf,UAAU,EAAEgB;IAAE,CAAC,KAAMA,CAAC,KAAKH,QAChC,CAAC,EAAEC,IAAI;IACPvB,QAAQ,CACP5D,YAAY,CACX6D,KAAK,EACL,CAAE,YAAY,EAAE,YAAY,CAAE,EAC9BsB,IAAI,GACA,0BAA0BA,IAAM,EAAC,GAClCD,QAAQ,IAAII,SAChB,CACD,CAAC;EACF,CAAC;EACD,MAAM1E,aAAa,GAAGA,CAAA,KAAM,CAAC,CAAEiD,KAAK,EAAE7B,UAAU,EAAEqC,UAAU;EAC5D,MAAMkB,eAAe,GAAGA,CAAA,KAAMN,aAAa,CAAEK,SAAU,CAAC;;EAExD;EACA,MAAME,kBAAkB,GAAGzD,qBAAqB,CAAEpB,QAAS,CAAC;EAC5D,MAAM8E,sBAAsB,GAAG,CAAE9E,QAAQ,EAAEqB,UAAU,EAAEO,cAAc;EACrE,MAAMmD,eAAe,GAAGrC,kBAAkB,CAAE1C,QAAS,CAAC;EAEtD,MAAM2D,QAAQ,GAAGO,WAAW,CAAEF,cAAc,EAAE3C,UAAU,EAAEsC,QAAS,CAAC;EACpE,MAAMqB,WAAW,GAAGA,CAAET,QAAQ,EAAEU,QAAQ,KAAM;IAC7C,MAAMC,WAAW,GAAG,CAAC,CAAED,QAAQ,EAAET,IAAI,GACjC,wBAAwBS,QAAQ,EAAET,IAAM,EAAC,GAC1CD,QAAQ;IAEXtB,QAAQ,CACP5D,YAAY,CACX6D,KAAK,EACL,CAAE,YAAY,EAAE,UAAU,CAAE,EAC5BgC,WAAW,IAAIP,SAChB,CACD,CAAC;EACF,CAAC;EACD,MAAMxD,WAAW,GAAGA,CAAA,KAAM,CAAC,CAAE+B,KAAK,EAAE7B,UAAU,EAAEsC,QAAQ;EACxD,MAAMwB,aAAa,GAAGA,CAAA,KAAMH,WAAW,CAAEL,SAAU,CAAC;;EAEpD;EACA,MAAMS,oBAAoB,GAAG9E,uBAAuB,CAAEN,QAAS,CAAC;EAChE,MAAMqF,sBAAsB,GAAGlD,yBAAyB,CAAEnC,QAAS,CAAC;EACpE,MAAMsF,aAAa,GAAGtF,QAAQ,EAAEqB,UAAU,EAAEY,SAAS;EACrD,MAAMsD,cAAc,GAAGvF,QAAQ,EAAEqB,UAAU,EAAEa,UAAU;EACvD,MAAMD,SAAS,GAAGiC,WAAW,CAAEF,cAAc,EAAE3C,UAAU,EAAEY,SAAU,CAAC;EACtE,MAAMC,UAAU,GAAGgC,WAAW,CAAEF,cAAc,EAAE3C,UAAU,EAAEa,UAAW,CAAC;EACxE,MAAMsD,iBAAiB,GAAGA,CAAE;IAC3BvD,SAAS,EAAEwD,YAAY;IACvBvD,UAAU,EAAEwD;EACb,CAAC,KAAM;IACNzC,QAAQ,CAAE;MACT,GAAGC,KAAK;MACR7B,UAAU,EAAE;QACX,GAAG6B,KAAK,EAAE7B,UAAU;QACpBY,SAAS,EAAEwD,YAAY,IAAId,SAAS;QACpCzC,UAAU,EAAEwD,aAAa,IAAIf;MAC9B;IACD,CAAE,CAAC;EACJ,CAAC;EACD,MAAMtE,iBAAiB,GAAGA,CAAA,KACzB,CAAC,CAAE6C,KAAK,EAAE7B,UAAU,EAAEY,SAAS,IAAI,CAAC,CAAEiB,KAAK,EAAE7B,UAAU,EAAEa,UAAU;EACpE,MAAMyD,mBAAmB,GAAGA,CAAA,KAAM;IACjCH,iBAAiB,CAAE,CAAC,CAAE,CAAC;EACxB,CAAC;;EAED;EACA9G,SAAS,CAAE,MAAM;IAChB,MAAM;MAAEkH,UAAU;MAAEC,WAAW;MAAEC;IAAa,CAAC,GAC9CtG,uBAAuB,CAAE6E,eAAgB,CAAC;IAC3C,MAAM0B,YAAY,GAAGH,UAAU,EAAE/D,IAAI,CACpC,CAAE;MAAEqB,KAAK,EAAE8C;IAAG,CAAC,KAAMA,EAAE,KAAK/D,SAC7B,CAAC;IACD,MAAMgE,aAAa,GAAGJ,WAAW,EAAEhE,IAAI,CACtC,CAAE;MAAEqB,KAAK,EAAEgD;IAAG,CAAC,KAAMA,EAAE,KAAKhE,UAC7B,CAAC;;IAED;IACA,IAAK,CAAE+D,aAAa,IAAI/D,UAAU,EAAG;MACpCsD,iBAAiB,CAAE;QAClBvD,SAAS;QACTC,UAAU,EAAE3C,qBAAqB,CAAEsG,WAAW,EAAE3D,UAAW;MAC5D,CAAE,CAAC;IACJ;;IAEA;IACA,IAAK4D,YAAY,IAAMC,YAAY,IAAIE,aAAe,EAAG;MACxDT,iBAAiB,CAAE;QAClBvD,SAAS;QACTC;MACD,CAAE,CAAC;IACJ;;IAEA;IACA,IAAK,CAAE6D,YAAY,EAAG;MACrBJ,mBAAmB,CAAC,CAAC;IACtB;EACD,CAAC,EAAE,CAAEjC,UAAU,CAAG,CAAC;;EAEnB;EACA,MAAMyC,oBAAoB,GAAG/F,uBAAuB,CAAEJ,QAAS,CAAC;EAChE,MAAMgC,UAAU,GAAGkC,WAAW,CAAEF,cAAc,EAAE3C,UAAU,EAAEW,UAAW,CAAC;EACxE,MAAMoE,aAAa,GAAK7B,QAAQ,IAAM;IACrCtB,QAAQ,CACP5D,YAAY,CACX6D,KAAK,EACL,CAAE,YAAY,EAAE,YAAY,CAAE,EAC9BqB,QAAQ,IAAII,SACb,CACD,CAAC;EACF,CAAC;EACD,MAAMxE,aAAa,GAAGA,CAAA,KAAM+C,KAAK,EAAE7B,UAAU,EAAEW,UAAU,KAAK2C,SAAS;EACvE,MAAM0B,eAAe,GAAGA,CAAA,KAAMD,aAAa,CAAEzB,SAAU,CAAC;;EAExD;EACA,MAAM2B,uBAAuB,GAAG9F,0BAA0B,CAAER,QAAS,CAAC;EACtE,MAAMoC,aAAa,GAAG8B,WAAW,CAChCF,cAAc,EAAE3C,UAAU,EAAEe,aAC7B,CAAC;EACD,MAAMmE,gBAAgB,GAAKhC,QAAQ,IAAM;IACxCtB,QAAQ,CACP5D,YAAY,CACX6D,KAAK,EACL,CAAE,YAAY,EAAE,eAAe,CAAE,EACjCqB,QAAQ,IAAII,SACb,CACD,CAAC;EACF,CAAC;EACD,MAAMpE,gBAAgB,GAAGA,CAAA,KAAM,CAAC,CAAE2C,KAAK,EAAE7B,UAAU,EAAEe,aAAa;EAClE,MAAMoE,kBAAkB,GAAGA,CAAA,KAAMD,gBAAgB,CAAE5B,SAAU,CAAC;;EAE9D;EACA,MAAM8B,qBAAqB,GAAGvF,wBAAwB,CAAElB,QAAS,CAAC;EAClE,MAAMyC,WAAW,GAAGyB,WAAW,CAAEF,cAAc,EAAE3C,UAAU,EAAEoB,WAAY,CAAC;EAC1E,MAAMiE,cAAc,GAAKnC,QAAQ,IAAM;IACtCtB,QAAQ,CACP5D,YAAY,CACX6D,KAAK,EACL,CAAE,YAAY,EAAE,aAAa,CAAE,EAC/BqB,QAAQ,IAAII,SACb,CACD,CAAC;EACF,CAAC;EACD,MAAM1D,cAAc,GAAGA,CAAA,KAAM,CAAC,CAAEiC,KAAK,EAAE7B,UAAU,EAAEoB,WAAW;EAC9D,MAAMkE,gBAAgB,GAAGA,CAAA,KAAMD,cAAc,CAAE/B,SAAU,CAAC;;EAE1D;EACA,MAAMiC,uBAAuB,GAAGhG,0BAA0B,CAAEZ,QAAS,CAAC;EACtE,MAAMqC,aAAa,GAAG6B,WAAW,CAChCF,cAAc,EAAE3C,UAAU,EAAEgB,aAC7B,CAAC;EACD,MAAMwE,gBAAgB,GAAKtC,QAAQ,IAAM;IACxCtB,QAAQ,CACP5D,YAAY,CACX6D,KAAK,EACL,CAAE,YAAY,EAAE,eAAe,CAAE,EACjCqB,QAAQ,IAAII,SACb,CACD,CAAC;EACF,CAAC;EACD,MAAMhE,gBAAgB,GAAGA,CAAA,KAAM,CAAC,CAAEuC,KAAK,EAAE7B,UAAU,EAAEgB,aAAa;EAClE,MAAMyE,kBAAkB,GAAGA,CAAA,KAAMD,gBAAgB,CAAElC,SAAU,CAAC;;EAE9D;EACA,MAAMoC,wBAAwB,GAAGjG,2BAA2B,CAAEd,QAAS,CAAC;EACxE,MAAMuC,cAAc,GAAG2B,WAAW,CACjCF,cAAc,EAAE3C,UAAU,EAAEkB,cAC7B,CAAC;EACD,MAAMyE,iBAAiB,GAAKzC,QAAQ,IAAM;IACzCtB,QAAQ,CACP5D,YAAY,CACX6D,KAAK,EACL,CAAE,YAAY,EAAE,gBAAgB,CAAE,EAClCqB,QAAQ,IAAII,SACb,CACD,CAAC;EACF,CAAC;EACD,MAAM9D,iBAAiB,GAAGA,CAAA,KAAM,CAAC,CAAEqC,KAAK,EAAE7B,UAAU,EAAEkB,cAAc;EACpE,MAAM0E,mBAAmB,GAAGA,CAAA,KAAMD,iBAAiB,CAAErC,SAAU,CAAC;;EAEhE;EACA,MAAMuC,qBAAqB,GAAGlG,wBAAwB,CAAEhB,QAAS,CAAC;EAClE,MAAMwC,WAAW,GAAG0B,WAAW,CAAEF,cAAc,EAAE3C,UAAU,EAAEmB,WAAY,CAAC;EAC1E,MAAM2E,cAAc,GAAK5C,QAAQ,IAAM;IACtCtB,QAAQ,CACP5D,YAAY,CACX6D,KAAK,EACL,CAAE,YAAY,EAAE,aAAa,CAAE,EAC/BqB,QAAQ,IAAII,SACb,CACD,CAAC;EACF,CAAC;EACD,MAAM5D,cAAc,GAAGA,CAAA,KAAM,CAAC,CAAEmC,KAAK,EAAE7B,UAAU,EAAEmB,WAAW;EAC9D,MAAM4E,gBAAgB,GAAGA,CAAA,KAAMD,cAAc,CAAExC,SAAU,CAAC;;EAE1D;EACA,MAAM0C,uBAAuB,GAAG3G,0BAA0B,CAAEV,QAAS,CAAC;EAEtE,MAAMsC,SAAS,GAAG4B,WAAW,CAAEF,cAAc,EAAE3C,UAAU,EAAEiB,SAAU,CAAC;EACtE,MAAMgF,YAAY,GAAK/C,QAAQ,IAAM;IACpCtB,QAAQ,CACP5D,YAAY,CACX6D,KAAK,EACL,CAAE,YAAY,EAAE,WAAW,CAAE,EAC7BqB,QAAQ,IAAII,SACb,CACD,CAAC;EACF,CAAC;EACD,MAAMlE,YAAY,GAAGA,CAAA,KAAM,CAAC,CAAEyC,KAAK,EAAE7B,UAAU,EAAEiB,SAAS;EAC1D,MAAMiF,cAAc,GAAGA,CAAA,KAAMD,YAAY,CAAE3C,SAAU,CAAC;EAEtD,MAAM3B,cAAc,GAAGxE,WAAW,CAAIgJ,aAAa,IAAM;IACxD,OAAO;MACN,GAAGA,aAAa;MAChBnG,UAAU,EAAE,CAAC;IACd,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,oBACCzB,KAAA,CAACmE,OAAO;IACPf,cAAc,EAAGA,cAAgB;IACjCE,KAAK,EAAGA,KAAO;IACfD,QAAQ,EAAGA,QAAU;IACrBE,OAAO,EAAGA,OAAS;IAAAC,QAAA,GAEjBgB,oBAAoB,iBACrB1E,IAAA,CAACpB,cAAc;MACdkF,KAAK,EAAGjF,EAAE,CAAE,MAAO,CAAG;MACtBkJ,QAAQ,EAAGxH,aAAe;MAC1ByH,UAAU,EAAG9C,eAAiB;MAC9B+C,gBAAgB,EAAG1D,eAAe,CAACP,UAAY;MAC/CP,OAAO,EAAGA,OAAS;MAAAC,QAAA,eAEnB1D,IAAA,CAACf,iBAAiB;QACjBoD,YAAY,EAAGA,YAAc;QAC7BmB,KAAK,EAAGQ,UAAY;QACpBT,QAAQ,EAAGqB,aAAe;QAC1BsD,IAAI,EAAC,kBAAkB;QACvBC,uBAAuB;MAAA,CACvB;IAAC,CACa,CAChB,EACChD,kBAAkB,iBACnBnF,IAAA,CAACpB,cAAc;MACdkF,KAAK,EAAGjF,EAAE,CAAE,MAAO,CAAG;MACtBkJ,QAAQ,EAAGtG,WAAa;MACxBuG,UAAU,EAAGvC,aAAe;MAC5BwC,gBAAgB,EAAG1D,eAAe,CAACN,QAAU;MAC7CR,OAAO,EAAGA,OAAS;MAAAC,QAAA,eAEnB1D,IAAA,CAAC1B,cAAc;QACdkF,KAAK,EAAGS,QAAU;QAClBV,QAAQ,EAAG+B,WAAa;QACxBzD,SAAS,EAAGwD,eAAiB;QAC7BD,sBAAsB,EAAGA,sBAAwB;QACjDgD,SAAS,EAAG,KAAO;QACnBC,UAAU;QACVH,IAAI,EAAC;MAAkB,CACvB;IAAC,CACa,CAChB,EACCxC,oBAAoB,iBACrB1F,IAAA,CAACpB,cAAc;MACd0J,SAAS,EAAC,eAAe;MACzBxE,KAAK,EAAG6B,sBAAwB;MAChCoC,QAAQ,EAAGpH,iBAAmB;MAC9BqH,UAAU,EAAG/B,mBAAqB;MAClCgC,gBAAgB,EAAG1D,eAAe,CAACL,cAAgB;MACnDT,OAAO,EAAGA,OAAS;MAAAC,QAAA,eAEnB1D,IAAA,CAACd,qBAAqB;QACrBsE,KAAK,EAAG;UACPjB,SAAS;UACTC;QACD,CAAG;QACHe,QAAQ,EAAGuC,iBAAmB;QAC9BF,aAAa,EAAGA,aAAe;QAC/BC,cAAc,EAAGA,cAAgB;QACjClB,eAAe,EAAGA,eAAiB;QACnCuD,IAAI,EAAC;MAAkB,CACvB;IAAC,CACa,CAChB,EACCzB,oBAAoB,iBACrBzG,IAAA,CAACpB,cAAc;MACd0J,SAAS,EAAC,eAAe;MACzBxE,KAAK,EAAGjF,EAAE,CAAE,aAAc,CAAG;MAC7BkJ,QAAQ,EAAGtH,aAAe;MAC1BuH,UAAU,EAAGrB,eAAiB;MAC9BsB,gBAAgB,EAAG1D,eAAe,CAACjC,UAAY;MAC/CmB,OAAO,EAAGA,OAAS;MAAAC,QAAA,eAEnB1D,IAAA,CAACb,iBAAiB;QACjBgJ,uBAAuB;QACvBI,oBAAoB,EAAC,MAAM;QAC3B/E,KAAK,EAAGlB,UAAY;QACpBiB,QAAQ,EAAGmD,aAAe;QAC1BwB,IAAI,EAAC;MAAkB,CACvB;IAAC,CACa,CAChB,EACCtB,uBAAuB,iBACxB5G,IAAA,CAACpB,cAAc;MACd0J,SAAS,EAAC,eAAe;MACzBxE,KAAK,EAAGjF,EAAE,CAAE,gBAAiB,CAAG;MAChCkJ,QAAQ,EAAGlH,gBAAkB;MAC7BmH,UAAU,EAAGlB,kBAAoB;MACjCmB,gBAAgB,EAAG1D,eAAe,CAAC7B,aAAe;MAClDe,OAAO,EAAGA,OAAS;MAAAC,QAAA,eAEnB1D,IAAA,CAACZ,oBAAoB;QACpBoE,KAAK,EAAGd,aAAe;QACvBa,QAAQ,EAAGsD,gBAAkB;QAC7BqB,IAAI,EAAC,kBAAkB;QACvBK,oBAAoB,EAAC;MAAM,CAC3B;IAAC,CACa,CAChB,EACCxB,qBAAqB,iBACtB/G,IAAA,CAACpB,cAAc;MACd0J,SAAS,EAAC,eAAe;MACzBxE,KAAK,EAAGjF,EAAE,CAAE,SAAU,CAAG;MACzBkJ,QAAQ,EAAGxG,cAAgB;MAC3ByG,UAAU,EAAGf,gBAAkB;MAC/BgB,gBAAgB,EAAG1D,eAAe,CAACxB,WAAa;MAChDU,OAAO,EAAGA,OAAS;MAAAC,QAAA,eAEnB1D,IAAA,CAACxB,aAAa;QACbsF,KAAK,EAAGjF,EAAE,CAAE,SAAU,CAAG;QACzB2J,GAAG,EAAGpI,gBAAkB;QACxBqI,GAAG,EAAGtI,gBAAkB;QACxBoD,QAAQ,EAAGyD,cAAgB;QAC3BkB,IAAI,EAAC,kBAAkB;QACvBQ,YAAY,EAAC,QAAQ;QACrBlF,KAAK,EAAGT,WAAa;QACrB4F,eAAe,EAAG;MAAG,CACrB;IAAC,CACa,CAChB,EACCtB,wBAAwB,iBACzBrH,IAAA,CAACpB,cAAc;MACd0J,SAAS,EAAC,eAAe;MACzBxE,KAAK,EAAGjF,EAAE,CAAE,YAAa,CAAG;MAC5BkJ,QAAQ,EAAG5G,iBAAmB;MAC9B6G,UAAU,EAAGT,mBAAqB;MAClCU,gBAAgB,EAAG1D,eAAe,CAAC1B,cAAgB;MACnDY,OAAO,EAAGA,OAAS;MAAAC,QAAA,eAEnB1D,IAAA,CAACT,qBAAqB;QACrBiE,KAAK,EAAGX,cAAgB;QACxBU,QAAQ,EAAG+D,iBAAmB;QAC9BY,IAAI,EAAC,kBAAkB;QACvBK,oBAAoB,EAAC;MAAM,CAC3B;IAAC,CACa,CAChB,EACCf,qBAAqB,iBACtBxH,IAAA,CAACpB,cAAc;MACd0J,SAAS,EAAC,eAAe;MACzBxE,KAAK,EAAGjF,EAAE,CAAE,aAAc,CAAG;MAC7BkJ,QAAQ,EAAG1G,cAAgB;MAC3B2G,UAAU,EAAGN,gBAAkB;MAC/BO,gBAAgB,EAAG1D,eAAe,CAACzB,WAAa;MAChDW,OAAO,EAAGA,OAAS;MAAAC,QAAA,eAEnB1D,IAAA,CAACR,kBAAkB;QAClBgE,KAAK,EAAGV,WAAa;QACrBS,QAAQ,EAAGkE,cAAgB;QAC3BS,IAAI,EAAC,kBAAkB;QACvBC,uBAAuB;MAAA,CACvB;IAAC,CACa,CAChB,EACCjB,uBAAuB,iBACxBlH,IAAA,CAACpB,cAAc;MACdkF,KAAK,EAAGjF,EAAE,CAAE,aAAc,CAAG;MAC7BkJ,QAAQ,EAAG9G,gBAAkB;MAC7B+G,UAAU,EAAGZ,kBAAoB;MACjCa,gBAAgB,EAAG1D,eAAe,CAAC5B,aAAe;MAClDc,OAAO,EAAGA,OAAS;MAAAC,QAAA,eAEnB1D,IAAA,CAACV,oBAAoB;QACpBkE,KAAK,EAAGb,aAAe;QACvBY,QAAQ,EAAG4D,gBAAkB;QAC7ByB,QAAQ;QACRC,OAAO;QACPX,IAAI,EAAC,kBAAkB;QACvBC,uBAAuB;MAAA,CACvB;IAAC,CACa,CAChB,EACCR,uBAAuB,iBACxB3H,IAAA,CAACpB,cAAc;MACdkF,KAAK,EAAGjF,EAAE,CAAE,gBAAiB,CAAG;MAChCkJ,QAAQ,EAAGhH,YAAc;MACzBiH,UAAU,EAAGH,cAAgB;MAC7BI,gBAAgB,EAAG1D,eAAe,CAAC3B,SAAW;MAC9Ca,OAAO,EAAGA,OAAS;MAAAC,QAAA,eAEnB1D,IAAA,CAACX,oBAAoB;QACpBmE,KAAK,EAAGZ,SAAW;QACnBW,QAAQ,EAAGqE,YAAc;QACzBM,IAAI,EAAC,kBAAkB;QACvBC,uBAAuB;MAAA,CACvB;IAAC,CACa,CAChB;EAAA,CACO,CAAC;AAEZ","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["FontSizePicker","__experimentalNumberControl","NumberControl","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__","useCallback","useMemo","useEffect","FontFamilyControl","FontAppearanceControl","LineHeightControl","LetterSpacingControl","TextAlignmentControl","TextTransformControl","TextDecorationControl","WritingModeControl","getValueFromVariable","useToolsPanelDropdownMenuProps","setImmutably","getMergedFontFamiliesAndFontFamilyFaces","findNearestStyleAndWeight","jsx","_jsx","jsxs","_jsxs","MIN_TEXT_COLUMNS","MAX_TEXT_COLUMNS","useHasTypographyPanel","settings","hasFontFamily","useHasFontFamilyControl","hasLineHeight","useHasLineHeightControl","hasFontAppearance","useHasAppearanceControl","hasLetterSpacing","useHasLetterSpacingControl","hasTextAlign","useHasTextAlignmentControl","hasTextTransform","useHasTextTransformControl","hasTextDecoration","useHasTextDecorationControl","hasWritingMode","useHasWritingModeControl","hasTextColumns","useHasTextColumnsControl","hasFontSize","useHasFontSizeControl","typography","defaultFontSizes","fontSizes","default","length","theme","custom","customFontSize","some","key","fontFamilies","lineHeight","fontStyle","fontWeight","useAppearanceControlLabel","letterSpacing","textTransform","textAlign","textDecoration","writingMode","textColumns","getMergedFontSizes","_fontSizes$custom","_fontSizes$theme","_fontSizes$default","defaultFontSizesEnabled","TypographyToolsPanel","resetAllFilter","onChange","value","panelId","children","dropdownMenuProps","resetAll","updatedValue","label","DEFAULT_CONTROLS","fontFamily","fontSize","fontAppearance","TypographyPanel","as","Wrapper","inheritedValue","defaultControls","decodeValue","rawValue","hasFontFamilyEnabled","fontFamilyFaces","setFontFamily","newValue","slug","find","f","undefined","resetFontFamily","hasFontSizeEnabled","disableCustomFontSizes","mergedFontSizes","setFontSize","metadata","actualValue","resetFontSize","hasAppearanceControl","appearanceControlLabel","hasFontStyles","hasFontWeights","nearestFontStyle","nearestFontWeight","setFontAppearance","newFontStyle","newFontWeight","resetFontAppearance","hasLineHeightEnabled","setLineHeight","resetLineHeight","hasLetterSpacingControl","setLetterSpacing","resetLetterSpacing","hasTextColumnsControl","setTextColumns","resetTextColumns","hasTextTransformControl","setTextTransform","resetTextTransform","hasTextDecorationControl","setTextDecoration","resetTextDecoration","hasWritingModeControl","setWritingMode","resetWritingMode","hasTextAlignmentControl","setTextAlign","resetTextAlign","previousValue","hasValue","onDeselect","isShownByDefault","size","__nextHasNoMarginBottom","withReset","withSlider","className","__unstableInputWidth","max","min","spinControls","initialPosition","showNone","isBlock"],"sources":["@wordpress/block-editor/src/components/global-styles/typography-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tFontSizePicker,\n\t__experimentalNumberControl as NumberControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useCallback, useMemo, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport FontFamilyControl from '../font-family';\nimport FontAppearanceControl from '../font-appearance-control';\nimport LineHeightControl from '../line-height-control';\nimport LetterSpacingControl from '../letter-spacing-control';\nimport TextAlignmentControl from '../text-alignment-control';\nimport TextTransformControl from '../text-transform-control';\nimport TextDecorationControl from '../text-decoration-control';\nimport WritingModeControl from '../writing-mode-control';\nimport { getValueFromVariable, useToolsPanelDropdownMenuProps } from './utils';\nimport { setImmutably } from '../../utils/object';\nimport {\n\tgetMergedFontFamiliesAndFontFamilyFaces,\n\tfindNearestStyleAndWeight,\n} from './typography-utils';\n\nconst MIN_TEXT_COLUMNS = 1;\nconst MAX_TEXT_COLUMNS = 6;\n\nexport function useHasTypographyPanel( settings ) {\n\tconst hasFontFamily = useHasFontFamilyControl( settings );\n\tconst hasLineHeight = useHasLineHeightControl( settings );\n\tconst hasFontAppearance = useHasAppearanceControl( settings );\n\tconst hasLetterSpacing = useHasLetterSpacingControl( settings );\n\tconst hasTextAlign = useHasTextAlignmentControl( settings );\n\tconst hasTextTransform = useHasTextTransformControl( settings );\n\tconst hasTextDecoration = useHasTextDecorationControl( settings );\n\tconst hasWritingMode = useHasWritingModeControl( settings );\n\tconst hasTextColumns = useHasTextColumnsControl( settings );\n\tconst hasFontSize = useHasFontSizeControl( settings );\n\n\treturn (\n\t\thasFontFamily ||\n\t\thasLineHeight ||\n\t\thasFontAppearance ||\n\t\thasLetterSpacing ||\n\t\thasTextAlign ||\n\t\thasTextTransform ||\n\t\thasFontSize ||\n\t\thasTextDecoration ||\n\t\thasWritingMode ||\n\t\thasTextColumns\n\t);\n}\n\nfunction useHasFontSizeControl( settings ) {\n\treturn (\n\t\t( settings?.typography?.defaultFontSizes !== false &&\n\t\t\tsettings?.typography?.fontSizes?.default?.length ) ||\n\t\tsettings?.typography?.fontSizes?.theme?.length ||\n\t\tsettings?.typography?.fontSizes?.custom?.length ||\n\t\tsettings?.typography?.customFontSize\n\t);\n}\n\nfunction useHasFontFamilyControl( settings ) {\n\treturn [ 'default', 'theme', 'custom' ].some(\n\t\t( key ) => settings?.typography?.fontFamilies?.[ key ]?.length\n\t);\n}\n\nfunction useHasLineHeightControl( settings ) {\n\treturn settings?.typography?.lineHeight;\n}\n\nfunction useHasAppearanceControl( settings ) {\n\treturn settings?.typography?.fontStyle || settings?.typography?.fontWeight;\n}\n\nfunction useAppearanceControlLabel( settings ) {\n\tif ( ! settings?.typography?.fontStyle ) {\n\t\treturn __( 'Font weight' );\n\t}\n\tif ( ! settings?.typography?.fontWeight ) {\n\t\treturn __( 'Font style' );\n\t}\n\treturn __( 'Appearance' );\n}\n\nfunction useHasLetterSpacingControl( settings ) {\n\treturn settings?.typography?.letterSpacing;\n}\n\nfunction useHasTextTransformControl( settings ) {\n\treturn settings?.typography?.textTransform;\n}\n\nfunction useHasTextAlignmentControl( settings ) {\n\treturn settings?.typography?.textAlign;\n}\n\nfunction useHasTextDecorationControl( settings ) {\n\treturn settings?.typography?.textDecoration;\n}\n\nfunction useHasWritingModeControl( settings ) {\n\treturn settings?.typography?.writingMode;\n}\n\nfunction useHasTextColumnsControl( settings ) {\n\treturn settings?.typography?.textColumns;\n}\n\n/**\n * Concatenate all the font sizes into a single list for the font size picker.\n *\n * @param {Object} settings The global styles settings.\n *\n * @return {Array} The merged font sizes.\n */\nfunction getMergedFontSizes( settings ) {\n\tconst fontSizes = settings?.typography?.fontSizes;\n\tconst defaultFontSizesEnabled = !! settings?.typography?.defaultFontSizes;\n\treturn [\n\t\t...( fontSizes?.custom ?? [] ),\n\t\t...( fontSizes?.theme ?? [] ),\n\t\t...( defaultFontSizesEnabled ? fontSizes?.default ?? [] : [] ),\n\t];\n}\n\nfunction TypographyToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Typography' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tfontFamily: true,\n\tfontSize: true,\n\tfontAppearance: true,\n\tlineHeight: true,\n\tletterSpacing: true,\n\ttextAlign: true,\n\ttextTransform: true,\n\ttextDecoration: true,\n\twritingMode: true,\n\ttextColumns: true,\n};\n\nexport default function TypographyPanel( {\n\tas: Wrapper = TypographyToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst decodeValue = ( rawValue ) =>\n\t\tgetValueFromVariable( { settings }, '', rawValue );\n\n\t// Font Family\n\tconst hasFontFamilyEnabled = useHasFontFamilyControl( settings );\n\tconst fontFamily = decodeValue( inheritedValue?.typography?.fontFamily );\n\tconst { fontFamilies, fontFamilyFaces } = useMemo( () => {\n\t\treturn getMergedFontFamiliesAndFontFamilyFaces( settings, fontFamily );\n\t}, [ settings, fontFamily ] );\n\n\tconst setFontFamily = ( newValue ) => {\n\t\tconst slug = fontFamilies?.find(\n\t\t\t( { fontFamily: f } ) => f === newValue\n\t\t)?.slug;\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'fontFamily' ],\n\t\t\t\tslug\n\t\t\t\t\t? `var:preset|font-family|${ slug }`\n\t\t\t\t\t: newValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasFontFamily = () => !! value?.typography?.fontFamily;\n\tconst resetFontFamily = () => setFontFamily( undefined );\n\n\t// Font Size\n\tconst hasFontSizeEnabled = useHasFontSizeControl( settings );\n\tconst disableCustomFontSizes = ! settings?.typography?.customFontSize;\n\tconst mergedFontSizes = getMergedFontSizes( settings );\n\n\tconst fontSize = decodeValue( inheritedValue?.typography?.fontSize );\n\tconst setFontSize = ( newValue, metadata ) => {\n\t\tconst actualValue = !! metadata?.slug\n\t\t\t? `var:preset|font-size|${ metadata?.slug }`\n\t\t\t: newValue;\n\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'fontSize' ],\n\t\t\t\tactualValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasFontSize = () => !! value?.typography?.fontSize;\n\tconst resetFontSize = () => setFontSize( undefined );\n\n\t// Appearance\n\tconst hasAppearanceControl = useHasAppearanceControl( settings );\n\tconst appearanceControlLabel = useAppearanceControlLabel( settings );\n\tconst hasFontStyles = settings?.typography?.fontStyle;\n\tconst hasFontWeights = settings?.typography?.fontWeight;\n\tconst fontStyle = decodeValue( inheritedValue?.typography?.fontStyle );\n\tconst fontWeight = decodeValue( inheritedValue?.typography?.fontWeight );\n\tconst { nearestFontStyle, nearestFontWeight } = findNearestStyleAndWeight(\n\t\tfontFamilyFaces,\n\t\tfontStyle,\n\t\tfontWeight\n\t);\n\tconst setFontAppearance = useCallback(\n\t\t( { fontStyle: newFontStyle, fontWeight: newFontWeight } ) => {\n\t\t\t// Only update the font style and weight if they have changed.\n\t\t\tif ( newFontStyle !== fontStyle || newFontWeight !== fontWeight ) {\n\t\t\t\tonChange( {\n\t\t\t\t\t...value,\n\t\t\t\t\ttypography: {\n\t\t\t\t\t\t...value?.typography,\n\t\t\t\t\t\tfontStyle: newFontStyle || undefined,\n\t\t\t\t\t\tfontWeight: newFontWeight || undefined,\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[ fontStyle, fontWeight, onChange, value ]\n\t);\n\tconst hasFontAppearance = () =>\n\t\t!! value?.typography?.fontStyle || !! value?.typography?.fontWeight;\n\tconst resetFontAppearance = useCallback( () => {\n\t\tsetFontAppearance( {} );\n\t}, [ setFontAppearance ] );\n\n\t// Check if previous font style and weight values are available in the new font family.\n\tuseEffect( () => {\n\t\tif ( nearestFontStyle && nearestFontWeight ) {\n\t\t\tsetFontAppearance( {\n\t\t\t\tfontStyle: nearestFontStyle,\n\t\t\t\tfontWeight: nearestFontWeight,\n\t\t\t} );\n\t\t} else {\n\t\t\t// Reset font appearance if there are no available styles or weights.\n\t\t\tresetFontAppearance();\n\t\t}\n\t}, [\n\t\tnearestFontStyle,\n\t\tnearestFontWeight,\n\t\tresetFontAppearance,\n\t\tsetFontAppearance,\n\t] );\n\n\t// Line Height\n\tconst hasLineHeightEnabled = useHasLineHeightControl( settings );\n\tconst lineHeight = decodeValue( inheritedValue?.typography?.lineHeight );\n\tconst setLineHeight = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'lineHeight' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasLineHeight = () => value?.typography?.lineHeight !== undefined;\n\tconst resetLineHeight = () => setLineHeight( undefined );\n\n\t// Letter Spacing\n\tconst hasLetterSpacingControl = useHasLetterSpacingControl( settings );\n\tconst letterSpacing = decodeValue(\n\t\tinheritedValue?.typography?.letterSpacing\n\t);\n\tconst setLetterSpacing = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'letterSpacing' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasLetterSpacing = () => !! value?.typography?.letterSpacing;\n\tconst resetLetterSpacing = () => setLetterSpacing( undefined );\n\n\t// Text Columns\n\tconst hasTextColumnsControl = useHasTextColumnsControl( settings );\n\tconst textColumns = decodeValue( inheritedValue?.typography?.textColumns );\n\tconst setTextColumns = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'textColumns' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasTextColumns = () => !! value?.typography?.textColumns;\n\tconst resetTextColumns = () => setTextColumns( undefined );\n\n\t// Text Transform\n\tconst hasTextTransformControl = useHasTextTransformControl( settings );\n\tconst textTransform = decodeValue(\n\t\tinheritedValue?.typography?.textTransform\n\t);\n\tconst setTextTransform = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'textTransform' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasTextTransform = () => !! value?.typography?.textTransform;\n\tconst resetTextTransform = () => setTextTransform( undefined );\n\n\t// Text Decoration\n\tconst hasTextDecorationControl = useHasTextDecorationControl( settings );\n\tconst textDecoration = decodeValue(\n\t\tinheritedValue?.typography?.textDecoration\n\t);\n\tconst setTextDecoration = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'textDecoration' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasTextDecoration = () => !! value?.typography?.textDecoration;\n\tconst resetTextDecoration = () => setTextDecoration( undefined );\n\n\t// Text Orientation\n\tconst hasWritingModeControl = useHasWritingModeControl( settings );\n\tconst writingMode = decodeValue( inheritedValue?.typography?.writingMode );\n\tconst setWritingMode = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'writingMode' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasWritingMode = () => !! value?.typography?.writingMode;\n\tconst resetWritingMode = () => setWritingMode( undefined );\n\n\t// Text Alignment\n\tconst hasTextAlignmentControl = useHasTextAlignmentControl( settings );\n\n\tconst textAlign = decodeValue( inheritedValue?.typography?.textAlign );\n\tconst setTextAlign = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'textAlign' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasTextAlign = () => !! value?.typography?.textAlign;\n\tconst resetTextAlign = () => setTextAlign( undefined );\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\ttypography: {},\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ hasFontFamilyEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Font' ) }\n\t\t\t\t\thasValue={ hasFontFamily }\n\t\t\t\t\tonDeselect={ resetFontFamily }\n\t\t\t\t\tisShownByDefault={ defaultControls.fontFamily }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<FontFamilyControl\n\t\t\t\t\t\tfontFamilies={ fontFamilies }\n\t\t\t\t\t\tvalue={ fontFamily }\n\t\t\t\t\t\tonChange={ setFontFamily }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasFontSizeEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Size' ) }\n\t\t\t\t\thasValue={ hasFontSize }\n\t\t\t\t\tonDeselect={ resetFontSize }\n\t\t\t\t\tisShownByDefault={ defaultControls.fontSize }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<FontSizePicker\n\t\t\t\t\t\tvalue={ fontSize }\n\t\t\t\t\t\tonChange={ setFontSize }\n\t\t\t\t\t\tfontSizes={ mergedFontSizes }\n\t\t\t\t\t\tdisableCustomFontSizes={ disableCustomFontSizes }\n\t\t\t\t\t\twithReset={ false }\n\t\t\t\t\t\twithSlider\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasAppearanceControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ appearanceControlLabel }\n\t\t\t\t\thasValue={ hasFontAppearance }\n\t\t\t\t\tonDeselect={ resetFontAppearance }\n\t\t\t\t\tisShownByDefault={ defaultControls.fontAppearance }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<FontAppearanceControl\n\t\t\t\t\t\tvalue={ {\n\t\t\t\t\t\t\tfontStyle,\n\t\t\t\t\t\t\tfontWeight,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonChange={ setFontAppearance }\n\t\t\t\t\t\thasFontStyles={ hasFontStyles }\n\t\t\t\t\t\thasFontWeights={ hasFontWeights }\n\t\t\t\t\t\tfontFamilyFaces={ fontFamilyFaces }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasLineHeightEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Line height' ) }\n\t\t\t\t\thasValue={ hasLineHeight }\n\t\t\t\t\tonDeselect={ resetLineHeight }\n\t\t\t\t\tisShownByDefault={ defaultControls.lineHeight }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<LineHeightControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__unstableInputWidth=\"auto\"\n\t\t\t\t\t\tvalue={ lineHeight }\n\t\t\t\t\t\tonChange={ setLineHeight }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasLetterSpacingControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Letter spacing' ) }\n\t\t\t\t\thasValue={ hasLetterSpacing }\n\t\t\t\t\tonDeselect={ resetLetterSpacing }\n\t\t\t\t\tisShownByDefault={ defaultControls.letterSpacing }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<LetterSpacingControl\n\t\t\t\t\t\tvalue={ letterSpacing }\n\t\t\t\t\t\tonChange={ setLetterSpacing }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__unstableInputWidth=\"auto\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasTextColumnsControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\thasValue={ hasTextColumns }\n\t\t\t\t\tonDeselect={ resetTextColumns }\n\t\t\t\t\tisShownByDefault={ defaultControls.textColumns }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<NumberControl\n\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\tmax={ MAX_TEXT_COLUMNS }\n\t\t\t\t\t\tmin={ MIN_TEXT_COLUMNS }\n\t\t\t\t\t\tonChange={ setTextColumns }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\tspinControls=\"custom\"\n\t\t\t\t\t\tvalue={ textColumns }\n\t\t\t\t\t\tinitialPosition={ 1 }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasTextDecorationControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Decoration' ) }\n\t\t\t\t\thasValue={ hasTextDecoration }\n\t\t\t\t\tonDeselect={ resetTextDecoration }\n\t\t\t\t\tisShownByDefault={ defaultControls.textDecoration }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<TextDecorationControl\n\t\t\t\t\t\tvalue={ textDecoration }\n\t\t\t\t\t\tonChange={ setTextDecoration }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__unstableInputWidth=\"auto\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasWritingModeControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Orientation' ) }\n\t\t\t\t\thasValue={ hasWritingMode }\n\t\t\t\t\tonDeselect={ resetWritingMode }\n\t\t\t\t\tisShownByDefault={ defaultControls.writingMode }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<WritingModeControl\n\t\t\t\t\t\tvalue={ writingMode }\n\t\t\t\t\t\tonChange={ setWritingMode }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasTextTransformControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Letter case' ) }\n\t\t\t\t\thasValue={ hasTextTransform }\n\t\t\t\t\tonDeselect={ resetTextTransform }\n\t\t\t\t\tisShownByDefault={ defaultControls.textTransform }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<TextTransformControl\n\t\t\t\t\t\tvalue={ textTransform }\n\t\t\t\t\t\tonChange={ setTextTransform }\n\t\t\t\t\t\tshowNone\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasTextAlignmentControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Text alignment' ) }\n\t\t\t\t\thasValue={ hasTextAlign }\n\t\t\t\t\tonDeselect={ resetTextAlign }\n\t\t\t\t\tisShownByDefault={ defaultControls.textAlign }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<TextAlignmentControl\n\t\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\t\tonChange={ setTextAlign }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* Internal dependencies
|
|
9
9
|
*/
|
|
10
10
|
import { getComputedFluidTypographyValue, getTypographyValueAndUnit } from '../font-sizes/fluid-utils';
|
|
11
|
+
import { getFontStylesAndWeights } from '../../utils/get-font-styles-and-weights';
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* @typedef {Object} FluidPreset
|
|
@@ -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":[]}
|
|
@@ -24,6 +24,12 @@ import { getValueFromObjectPath, setImmutably } from '../../utils/object';
|
|
|
24
24
|
import { unlock } from '../../lock-unlock';
|
|
25
25
|
import { setThemeFileUris } from './theme-file-uri-utils';
|
|
26
26
|
|
|
27
|
+
// Elements that rely on class names in their selectors.
|
|
28
|
+
const ELEMENT_CLASS_NAMES = {
|
|
29
|
+
button: 'wp-element-button',
|
|
30
|
+
caption: 'wp-element-caption'
|
|
31
|
+
};
|
|
32
|
+
|
|
27
33
|
// List of block support features that can have their related styles
|
|
28
34
|
// generated under their own feature level selector rather than the block's.
|
|
29
35
|
const BLOCK_SUPPORT_FEATURE_LEVEL_SELECTORS = {
|
|
@@ -459,14 +465,20 @@ export const getNodesWithStyles = (tree, blockSelectors) => {
|
|
|
459
465
|
if (styles) {
|
|
460
466
|
nodes.push({
|
|
461
467
|
styles,
|
|
462
|
-
selector: ROOT_BLOCK_SELECTOR
|
|
468
|
+
selector: ROOT_BLOCK_SELECTOR,
|
|
469
|
+
// Root selector (body) styles should not be wrapped in `:root where()` to keep
|
|
470
|
+
// specificity at (0,0,1) and maintain backwards compatibility.
|
|
471
|
+
skipSelectorWrapper: true
|
|
463
472
|
});
|
|
464
473
|
}
|
|
465
474
|
Object.entries(ELEMENTS).forEach(([name, selector]) => {
|
|
466
475
|
if (tree.styles?.elements?.[name]) {
|
|
467
476
|
nodes.push({
|
|
468
477
|
styles: tree.styles?.elements?.[name],
|
|
469
|
-
selector
|
|
478
|
+
selector,
|
|
479
|
+
// Top level elements that don't use a class name should not receive the
|
|
480
|
+
// `:root :where()` wrapper to maintain backwards compatibility.
|
|
481
|
+
skipSelectorWrapper: !ELEMENT_CLASS_NAMES[name]
|
|
470
482
|
});
|
|
471
483
|
}
|
|
472
484
|
});
|
|
@@ -680,7 +692,8 @@ export const toStyles = (tree, blockSelectors, hasBlockGapSupport, hasFallbackGa
|
|
|
680
692
|
fallbackGapValue,
|
|
681
693
|
hasLayoutSupport,
|
|
682
694
|
featureSelectors,
|
|
683
|
-
styleVariationSelectors
|
|
695
|
+
styleVariationSelectors,
|
|
696
|
+
skipSelectorWrapper
|
|
684
697
|
}) => {
|
|
685
698
|
// Process styles for block support features with custom feature level
|
|
686
699
|
// CSS selectors set.
|
|
@@ -721,7 +734,8 @@ export const toStyles = (tree, blockSelectors, hasBlockGapSupport, hasFallbackGa
|
|
|
721
734
|
// Process the remaining block styles (they use either normal block class or __experimentalSelector).
|
|
722
735
|
const styleDeclarations = getStylesDeclarations(styles, selector, useRootPaddingAlign, tree, disableRootPadding);
|
|
723
736
|
if (styleDeclarations?.length) {
|
|
724
|
-
|
|
737
|
+
const generalSelector = skipSelectorWrapper ? selector : `:root :where(${selector})`;
|
|
738
|
+
ruleset += `${generalSelector}{${styleDeclarations.join(';')};}`;
|
|
725
739
|
}
|
|
726
740
|
if (styles?.css) {
|
|
727
741
|
ruleset += processCSSNesting(styles.css, `:root :where(${selector})`);
|
|
@@ -771,7 +785,12 @@ export const toStyles = (tree, blockSelectors, hasBlockGapSupport, hasFallbackGa
|
|
|
771
785
|
// Split and append pseudo selector to create
|
|
772
786
|
// the proper rules to target the elements.
|
|
773
787
|
const _selector = selector.split(',').map(sel => sel + pseudoKey).join(',');
|
|
774
|
-
|
|
788
|
+
|
|
789
|
+
// As pseudo classes such as :hover, :focus etc. have class-level
|
|
790
|
+
// specificity, they must use the `:root :where()` wrapper. This.
|
|
791
|
+
// caps the specificity at `0-1-0` to allow proper nesting of variations
|
|
792
|
+
// and block type element styles.
|
|
793
|
+
const pseudoRule = `:root :where(${_selector}){${pseudoDeclarations.join(';')};}`;
|
|
775
794
|
ruleset += pseudoRule;
|
|
776
795
|
});
|
|
777
796
|
}
|