diff --git a/packages/base-styles/_mixins.scss b/packages/base-styles/_mixins.scss index 65f98bf6f15bf..b21e1650f7a7b 100644 --- a/packages/base-styles/_mixins.scss +++ b/packages/base-styles/_mixins.scss @@ -18,25 +18,25 @@ @mixin heading-small() { @include _text-heading(); font-size: $font-size-x-small; - line-height: $line-height-x-small; + line-height: $font-line-height--x-small; } @mixin heading-medium() { @include _text-heading(); font-size: $font-size-medium; - line-height: $line-height-small; + line-height: $font-line-height-small; } @mixin heading-large() { @include _text-heading(); font-size: $font-size-large; - line-height: $line-height-small; + line-height: $font-line-height-small; } @mixin heading-x-large() { @include _text-heading(); font-size: $font-size-x-large; - line-height: $line-height-medium; + line-height: $font-line-height-medium; } @mixin heading-2x-large() { @@ -48,25 +48,25 @@ @mixin body-small() { @include _text-body(); font-size: $font-size-small; - line-height: $line-height-x-small; + line-height: $font-line-height-x-small; } @mixin body-medium() { @include _text-body(); font-size: $font-size-medium; - line-height: $line-height-small; + line-height: $font-line-height-small; } @mixin body-large() { @include _text-body(); font-size: $font-size-large; - line-height: $line-height-medium; + line-height: $font-line-height-medium; } @mixin body-x-large() { @include _text-body(); font-size: $font-size-x-large; - line-height: $line-height-x-large; + line-height: $font-line-height-x-large; } /** @@ -178,7 +178,8 @@ */ @mixin editor-left($selector) { - #{$selector} { /* Set left position when auto-fold is not on the body element. */ + #{$selector} { + /* Set left position when auto-fold is not on the body element. */ left: 0; @media (min-width: #{ ($break-medium + 1) }) { @@ -186,7 +187,9 @@ } } - .auto-fold #{$selector} { /* Auto fold is when on smaller breakpoints, nav menu auto collapses. */ + .auto-fold #{$selector} { + + /* Auto fold is when on smaller breakpoints, nav menu auto collapses. */ @media (min-width: #{ ($break-medium + 1) }) { left: $admin-sidebar-width-collapsed; } @@ -236,12 +239,12 @@ @mixin reduce-motion($property: "") { - @if $property == "transition" { + @if $property =="transition" { @media (prefers-reduced-motion: reduce) { transition-duration: 0s; transition-delay: 0s; } - } @else if $property == "animation" { + } @else if $property =="animation" { @media (prefers-reduced-motion: reduce) { animation-duration: 1ms; animation-delay: 0s; @@ -265,6 +268,7 @@ font-size: $mobile-text-min-font-size; /* Override core line-height. To be reviewed. */ line-height: normal; + @include break-small { font-size: $default-font-size; /* Override core line-height. To be reviewed. */ @@ -447,6 +451,7 @@ // Fonts smaller than 16px causes mobile safari to zoom. font-size: $mobile-text-min-font-size !important; + @include break-small { font-size: $default-font-size !important; } @@ -464,7 +469,7 @@ * Reset the WP Admin page styles for Gutenberg-like pages. */ -@mixin wp-admin-reset( $content-container ) { +@mixin wp-admin-reset($content-container ) { background: $white; #wpcontent { @@ -515,7 +520,8 @@ // Focus style width. // Avoid rounding issues by showing a whole 2px for 1x screens, and 1.5px on high resolution screens. --wp-admin-border-width-focus: 2px; - @media ( -webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { + + @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { --wp-admin-border-width-focus: 1.5px; } } @@ -582,32 +588,33 @@ /* stylelint-disable @stylistic/function-comma-space-after -- We can not use spacing because of WP multi site kses rule. */ .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background { - background: linear-gradient(135deg,rgba(0,208,132,1) 0%,rgba(6,147,227,1) 100%); + background: linear-gradient(135deg, rgba(0, 208, 132, 1) 0%, rgba(6, 147, 227, 1) 100%); } .has-purple-crush-gradient-background { - background: linear-gradient(135deg,rgb(52,226,228) 0%,rgb(71,33,251) 50%,rgb(171,29,254) 100%); + background: linear-gradient(135deg, rgb(52, 226, 228) 0%, rgb(71, 33, 251) 50%, rgb(171, 29, 254) 100%); } .has-hazy-dawn-gradient-background { - background: linear-gradient(135deg,rgb(250,172,168) 0%,rgb(218,208,236) 100%); + background: linear-gradient(135deg, rgb(250, 172, 168) 0%, rgb(218, 208, 236) 100%); } .has-subdued-olive-gradient-background { - background: linear-gradient(135deg,rgb(250,250,225) 0%,rgb(103,166,113) 100%); + background: linear-gradient(135deg, rgb(250, 250, 225) 0%, rgb(103, 166, 113) 100%); } .has-atomic-cream-gradient-background { - background: linear-gradient(135deg,rgb(253,215,154) 0%,rgb(0,74,89) 100%); + background: linear-gradient(135deg, rgb(253, 215, 154) 0%, rgb(0, 74, 89) 100%); } .has-nightshade-gradient-background { - background: linear-gradient(135deg,rgb(51,9,104) 0%,rgb(49,205,207) 100%); + background: linear-gradient(135deg, rgb(51, 9, 104) 0%, rgb(49, 205, 207) 100%); } .has-midnight-gradient-background { - background: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%); + background: linear-gradient(135deg, rgb(2, 3, 129) 0%, rgb(40, 116, 252) 100%); } + /* stylelint-enable @stylistic/function-comma-space-after */ } @@ -618,16 +625,20 @@ width: 12px; height: 12px; } + &::-webkit-scrollbar-track { background-color: transparent; } + &::-webkit-scrollbar-thumb { background-color: $handle-color; border-radius: 8px; border: 3px solid transparent; background-clip: padding-box; } - &:hover::-webkit-scrollbar-thumb, // This needs specificity. + + &:hover::-webkit-scrollbar-thumb, + // This needs specificity. &:focus::-webkit-scrollbar-thumb, &:focus-within::-webkit-scrollbar-thumb { background-color: $handle-color-hover; @@ -659,7 +670,7 @@ outline-color: var(--wp-admin-theme-color); outline-style: solid; outline-width: calc(#{$widthRatio} * (var(--wp-admin-border-width-focus) / var(--wp-block-editor-iframe-zoom-out-scale, 1))); - outline-offset: calc(#{$widthRatio} * ((-1 * var(--wp-admin-border-width-focus) ) / var(--wp-block-editor-iframe-zoom-out-scale, 1))); + outline-offset: calc(#{$widthRatio} * ((-1 * var(--wp-admin-border-width-focus)) / var(--wp-block-editor-iframe-zoom-out-scale, 1))); } @mixin selected-block-focus($widthRatio: 1) { diff --git a/packages/edit-site/src/components/post-edit/header.js b/packages/edit-site/src/components/post-edit/header.js new file mode 100644 index 0000000000000..582344a933b50 --- /dev/null +++ b/packages/edit-site/src/components/post-edit/header.js @@ -0,0 +1,83 @@ +/** + * WordPress dependencies + */ +import { + __experimentalHStack as HStack, + __experimentalVStack as VStack, + Icon, + __experimentalText as Text, +} from '@wordpress/components'; +import { useMemo } from '@wordpress/element'; +import { + privateApis as editorPrivateApis, + store as editorStore, +} from '@wordpress/editor'; +import { store as coreStore } from '@wordpress/core-data'; +import { useSelect } from '@wordpress/data'; +import { sprintf, __ } from '@wordpress/i18n'; + +/** + * Internal dependencies + */ +import { unlock } from '../../lock-unlock'; + +const { PostCardPanel } = unlock( editorPrivateApis ); + +export default function PostEditHeader( { postType, postId } ) { + const ids = useMemo( () => postId.split( ',' ), [ postId ] ); + const { icon, labels } = useSelect( + ( select ) => { + const { getEditedEntityRecord, getPostType } = select( coreStore ); + const { getPostIcon } = unlock( select( editorStore ) ); + const _record = getEditedEntityRecord( + 'postType', + postType, + ids[ 0 ] + ); + + return { + icon: getPostIcon( postType, { + area: _record?.area, + } ), + labels: getPostType( postType )?.labels, + }; + }, + [ ids, postType ] + ); + + if ( ids.length === 1 ) { + return ; + } + + return ( + + + + + { labels?.name && + sprintf( + // translators: %i number of selected items %s: Name of the plural post type e.g: "Posts". + __( '%i %s' ), + ids.length, + labels?.name + ) } + + + + { sprintf( + // translators: %s: Name of the plural post type e.g: "Posts". + __( 'Changes will be applied to all selected %s.' ), + labels?.name.toLowerCase() + ) } + + + ); +} diff --git a/packages/edit-site/src/components/post-edit/index.js b/packages/edit-site/src/components/post-edit/index.js index 3e75ef71d1ac9..496ec208d3151 100644 --- a/packages/edit-site/src/components/post-edit/index.js +++ b/packages/edit-site/src/components/post-edit/index.js @@ -18,9 +18,10 @@ import { privateApis as editorPrivateApis } from '@wordpress/editor'; * Internal dependencies */ import Page from '../page'; +import PostEditHeader from '../post-edit/header'; import { unlock } from '../../lock-unlock'; -const { PostCardPanel, usePostFields } = unlock( editorPrivateApis ); +const { usePostFields } = unlock( editorPrivateApis ); const fieldsWithBulkEditSupport = [ 'title', @@ -125,9 +126,7 @@ function PostEditForm( { postType, postId } ) { return ( - { ids.length === 1 && ( - - ) } +