diff --git a/packages/panel/src/components/Panel.svelte b/packages/panel/src/components/Panel.svelte index 7498f611fb..95faa055ff 100644 --- a/packages/panel/src/components/Panel.svelte +++ b/packages/panel/src/components/Panel.svelte @@ -19,7 +19,14 @@ import activity from '@hcengineering/activity' import { Doc } from '@hcengineering/core' - import { Component, deviceOptionsStore as deviceInfo, Panel, Scroller, resizeObserver } from '@hcengineering/ui' + import { + Component, + deviceOptionsStore as deviceInfo, + Panel, + Scroller, + resizeObserver, + HeaderAdaptive + } from '@hcengineering/ui' import type { ButtonItem } from '@hcengineering/ui' import { getResource } from '@hcengineering/platform' @@ -47,7 +54,7 @@ export let selectedAside: string | boolean = customAside ? customAside[0].id : isAside export let printHeader: boolean = true export let printAside: boolean = false - export let adaptive: 'default' | 'freezeActions' | 'doubleRow' | 'disabled' = 'disabled' + export let adaptive: HeaderAdaptive = 'disabled' export let hideBefore: boolean = false export let hideSearch: boolean = true export let hideActions: boolean = false diff --git a/packages/theme/styles/_layouts.scss b/packages/theme/styles/_layouts.scss index a5542c1bc5..f06a783b65 100644 --- a/packages/theme/styles/_layouts.scss +++ b/packages/theme/styles/_layouts.scss @@ -739,6 +739,7 @@ input.search { .min-h-11 { min-height: 2.75rem; } .min-h-12 { min-height: 3rem; } .min-h-13 { min-height: 3.25rem; } +.min-h-14 { min-height: 3.5rem; } .min-h-16 { min-height: 4rem; } .min-h-30 { min-height: 7.5rem; } .min-h-60 { min-height: 15rem; } diff --git a/packages/theme/styles/components.scss b/packages/theme/styles/components.scss index c597b3678a..142c807643 100644 --- a/packages/theme/styles/components.scss +++ b/packages/theme/styles/components.scss @@ -317,18 +317,14 @@ .hulyHeader-container { display: flex; align-items: center; + padding: 0 var(--spacing-2); width: 100%; min-width: 0; min-height: var(--spacing-6_5); - &:not(.clearPadding) { padding: var(--spacing-1_5) var(--spacing-2); } - &.clearPadding { - padding: 0 var(--spacing-2); - - & > .hulyHeader-row { - padding: 0; - min-height: var(--spacing-6_5); - } + &.clearPadding > .hulyHeader-row { + padding: 0; + min-height: var(--spacing-6_5); } &:not(.hideSeparator) { border-bottom: 1px solid var(--theme-divider-color); // var(--global-surface-02-BorderColor); @@ -390,15 +386,15 @@ min-height: 0; } .hulyHeader-titleGroup { - flex-grow: 1; user-select: text; cursor: auto; - + &.withDescription { flex-direction: column; } &:not(.withDescription) { align-items: center; gap: var(--spacing-0_5); } + &:not(.notGrow) { flex-grow: 1; } } .hulyHeader-buttonsGroup { align-items: center; @@ -428,6 +424,7 @@ color: var(--global-secondary-TextColor); } } + .hulyHeader-spaceFiller { flex: 1 1; } .hulyHotKey-item { margin-right: .625rem; } &.doubleRow { diff --git a/packages/ui/src/components/Header.svelte b/packages/ui/src/components/Header.svelte index aa7989836c..e775c6b949 100644 --- a/packages/ui/src/components/Header.svelte +++ b/packages/ui/src/components/Header.svelte @@ -20,14 +20,15 @@ IconClose, ButtonIcon, deviceOptionsStore as deviceInfo, - resizeObserver + resizeObserver, + HeaderAdaptive } from '..' export let type: 'type-aside' | 'type-popup' | 'type-component' | 'type-panel' = 'type-component' export let allowFullsize: boolean = false export let hideSeparator: boolean = false export let topIndent: boolean = false - export let adaptive: 'default' | 'freezeActions' | 'doubleRow' | 'disabled' = 'default' + export let adaptive: HeaderAdaptive = 'default' export let hideBefore: boolean = false export let hideDescription: boolean = false export let hideSearch: boolean = false @@ -40,7 +41,15 @@ const dispatch = createEventDispatcher() const closeButton: boolean = ['type-popup', 'type-aside'].some((v) => v === type) + let spaceFiller: HTMLElement let doubleRow: boolean = false + let doubleExtra: boolean = false + let extraWidth: number = 0 + let spaceWidth: number = 0 + $: _doubleRow = + adaptive === 'doubleRow' || + (adaptive !== 'disabled' && doubleRow) || + (adaptive === 'autoExtra' && (doubleRow || doubleExtra)) onMount(() => { if (closeButton) window.addEventListener('keydown', _close) @@ -65,13 +74,13 @@ else if (doubleRow && element.clientWidth > 768) doubleRow = false }} class="hulyHeader-container" - class:doubleRow={adaptive === 'doubleRow' || (adaptive !== 'disabled' && doubleRow)} + class:doubleRow={_doubleRow} class:topIndent class:clearPadding={$$slots.description} class:hideSeparator class:no-print={noPrint} > - {#if adaptive === 'doubleRow' || (adaptive !== 'disabled' && doubleRow)} + {#if _doubleRow}