diff --git a/packages/theme/styles/common.scss b/packages/theme/styles/common.scss index 3eda4b5776..1bd1b1ed3a 100644 --- a/packages/theme/styles/common.scss +++ b/packages/theme/styles/common.scss @@ -324,6 +324,10 @@ .antiNav-space { flex-shrink: 0; height: .5rem; + + &.x2 { + height: 1rem; + } } .antiNav-footer-line { flex-shrink: 0; diff --git a/packages/theme/styles/components.scss b/packages/theme/styles/components.scss index 472a48ed27..7214af2759 100644 --- a/packages/theme/styles/components.scss +++ b/packages/theme/styles/components.scss @@ -303,7 +303,7 @@ min-width: 0; min-height: 0; - &:not(.second, .default), + &:not(.second, .default, .no-border), &.border { border-top: 1px solid var(--theme-navpanel-divider); } diff --git a/packages/ui/src/components/AccordionItem.svelte b/packages/ui/src/components/AccordionItem.svelte index 9e2db785f4..1fa378de86 100644 --- a/packages/ui/src/components/AccordionItem.svelte +++ b/packages/ui/src/components/AccordionItem.svelte @@ -29,7 +29,7 @@ export let icon: Asset | AnySvelteComponent | ComponentType | undefined = undefined export let iconProps: any | undefined = undefined export let size: 'small' | 'medium' | 'large' - export let kind: 'default' | 'second' = 'default' + export let kind: 'default' | 'second' | 'no-border' = 'default' export let nested: boolean = false export let isOpen: boolean = false export let disabled: boolean = false diff --git a/plugins/contact-resources/src/components/Avatar.svelte b/plugins/contact-resources/src/components/Avatar.svelte index a00a528aea..8ddc9aeb23 100644 --- a/plugins/contact-resources/src/components/Avatar.svelte +++ b/plugins/contact-resources/src/components/Avatar.svelte @@ -39,21 +39,25 @@ IconSize, getPlatformAvatarColorByName, getPlatformAvatarColorForTextDef, - themeStore + themeStore, + resizeObserver } from '@hcengineering/ui' import { getAvatarProviderId } from '../utils' import AvatarIcon from './icons/Avatar.svelte' + import { onMount } from 'svelte' export let avatar: string | null | undefined = undefined export let name: string | null | undefined = undefined export let direct: Blob | undefined = undefined export let size: IconSize export let icon: Asset | AnySvelteComponent | undefined = undefined - export let variant: 'circle' | 'roundedRect' = 'roundedRect' + export let variant: 'circle' | 'roundedRect' | 'none' = 'roundedRect' let url: string[] | undefined let avatarProvider: AvatarProvider | undefined let color: ColorDefinition | undefined = undefined + let fontSize: number = 16 + let element: HTMLElement $: displayName = getDisplayName(name) @@ -102,31 +106,57 @@ let imageElement: HTMLImageElement | undefined = undefined $: srcset = url?.slice(1)?.join(', ') + + onMount(() => { + if (size === 'full' && !url && name && displayName && displayName !== '' && element) { + fontSize = element.clientWidth * 0.6 + } + }) -
- {#if url} - {#if size === 'large' || size === 'x-large' || size === '2x-large'} - {''} - {/if} - {''} - {:else if name && displayName && displayName !== ''} +{#if size === 'full' && !url && name && displayName && displayName !== ''} +
{ + fontSize = element.clientWidth * 0.6 + }} + >
- {:else} -
- -
- {/if} -
+
+{:else} +
+ {#if url} + {#if size === 'large' || size === 'x-large' || size === '2x-large'} + {''} + {/if} + {''} + {:else if name && displayName && displayName !== ''} +
+ {:else} +
+ +
+ {/if} +
+{/if}