From 93268d4dbcc7cc12d4cbb2e9dcbf87723c26c523 Mon Sep 17 00:00:00 2001 From: Alexander Platov Date: Wed, 10 May 2023 14:40:50 +0300 Subject: [PATCH] TSK-1324: update popups and colors (#3152) Signed-off-by: Alexander Platov --- .../src/components/DocPopup.svelte | 24 ++------- .../src/components/SpaceInfo.svelte | 19 ++----- packages/theme/styles/_colors.scss | 6 ++- packages/theme/styles/_layouts.scss | 25 ++++++--- packages/theme/styles/popups.scss | 38 +++++++++----- packages/ui/src/components/ActionIcon.svelte | 21 ++++---- packages/ui/src/components/Button.svelte | 10 +++- packages/ui/src/components/ColorPopup.svelte | 10 +++- .../src/components/DropdownLabelsPopup.svelte | 13 +++-- packages/ui/src/components/EmojiPopup.svelte | 24 +++++---- packages/ui/src/components/SelectPopup.svelte | 32 +++++++----- packages/ui/src/components/Submenu.svelte | 5 +- .../components/calendar/DatePresenter.svelte | 4 +- .../calendar/DateRangePresenter.svelte | 19 +++++-- .../components/calendar/DueDatePopup.svelte | 2 +- .../ui/src/components/internal/Root.svelte | 6 ++- packages/ui/src/types.ts | 2 +- .../src/components/Message.svelte | 2 +- .../src/components/AssigneeBox.svelte | 2 +- .../src/components/AssigneePopup.svelte | 52 ++++++------------- .../src/components/Avatar.svelte | 4 +- .../src/components/ChannelsDropdown.svelte | 1 + .../src/components/UserInfo.svelte | 2 +- plugins/notification-assets/assets/icons.svg | 2 +- .../src/components/CreateApplication.svelte | 2 +- .../src/components/CreateCandidate.svelte | 3 +- .../src/components/YesNo.svelte | 9 ++-- .../src/components/TagItem.svelte | 37 +++++++------ .../src/components/TagsPopup.svelte | 24 ++++++--- .../src/components/ComponentSelector.svelte | 14 +++-- .../src/components/CreateIssue.svelte | 2 +- .../components/ComponentStatusSelector.svelte | 6 ++- .../issues/IssueNotification.svelte | 2 +- .../components/issues/PriorityEditor.svelte | 11 +++- .../EstimationStatsPresenter.svelte | 2 +- .../components/sprints/SprintSelector.svelte | 19 ++++--- .../sprints/SprintStatusSelector.svelte | 6 ++- .../templates/EstimationEditor.svelte | 1 + .../src/components/StringEditor.svelte | 5 +- .../src/components/StringPresenter.svelte | 3 +- .../components/filter/FilterTypePopup.svelte | 12 +++-- .../src/components/filter/ObjectFilter.svelte | 13 +++-- .../src/components/filter/ValueFilter.svelte | 13 +++-- .../src/components/App.svelte | 2 +- .../src/components/HelpAndSupport.svelte | 5 +- 45 files changed, 293 insertions(+), 223 deletions(-) diff --git a/packages/presentation/src/components/DocPopup.svelte b/packages/presentation/src/components/DocPopup.svelte index c0b4be4b52..2ded2134aa 100644 --- a/packages/presentation/src/components/DocPopup.svelte +++ b/packages/presentation/src/components/DocPopup.svelte @@ -241,29 +241,17 @@ }} > {#if (allowDeselect && selected) || multiSelect || selected} -
+
{#if obj._id === selected || selectedElements.has(obj._id)} -
- {#if titleDeselect} -
- -
- {:else} - - {/if} +
+
{/if}
{/if} - {#if obj._id === selected} -
- -
- {:else} - - {/if} +
@@ -283,8 +271,4 @@ border-radius: 0.25rem; box-shadow: none; } - .whereSelected { - height: 2px; - background-color: var(--theme-caret-color); - } diff --git a/packages/presentation/src/components/SpaceInfo.svelte b/packages/presentation/src/components/SpaceInfo.svelte index 5303671999..8f12e01cfc 100644 --- a/packages/presentation/src/components/SpaceInfo.svelte +++ b/packages/presentation/src/components/SpaceInfo.svelte @@ -23,11 +23,11 @@ export let size: IconSize -
-
-
+
+
+
{#if subtitle}
{subtitle}
{/if} -
+
{value.name} {#if value.archived}
- - diff --git a/packages/theme/styles/_colors.scss b/packages/theme/styles/_colors.scss index 581a7dc28a..da50558f61 100644 --- a/packages/theme/styles/_colors.scss +++ b/packages/theme/styles/_colors.scss @@ -123,6 +123,7 @@ --theme-popup-color: #292938; --theme-popup-hover: #32323F; --theme-popup-divider: rgba(255, 255, 255, .1); + --theme-popup-header: #3A3A47; --theme-popup-shadow: 0px 4px 4px rgba(0, 0, 0, 0.1); // Light --theme-panel-color: #1A1A28; --theme-calendar-today-color: #fff; @@ -133,6 +134,7 @@ --theme-calendar-weekend-bgcolor: rgba(242, 153, 74, .05); --theme-error-color: #eb5757; + --theme-warning-color: #f2994a; --theme-lost-color: #eb5757; --theme-won-color: #34DB80; --theme-caret-color: #6e5ed2; @@ -161,7 +163,6 @@ --accent-color: #d7d8db; --caption-color: #f7f8f8; --white-color: #fff; - --warning-color: #f2994a; --divider-color: #303236; --divider-trans-color: rgba(255, 255, 255, .12); @@ -284,6 +285,7 @@ --theme-popup-color: #FFFFFF; --theme-popup-hover: #F5F5F5; --theme-popup-divider: rgba(0, 0, 0, .1); + --theme-popup-header: #EBEBEB; --theme-popup-shadow: 0px 4px 4px rgba(0, 0, 0, 0.1); --theme-panel-color: #FFFFFF; --theme-calendar-today-color: #000; @@ -294,6 +296,7 @@ --theme-calendar-weekend-bgcolor: rgba(242, 153, 74, .1); --theme-error-color: #eb5757; // Dark + --theme-warning-color: #f2994a; // Dark --theme-lost-color: #eb5757; // Dark --theme-won-color: #34DB80; // Dark --theme-caret-color: #6e5ed2; @@ -322,7 +325,6 @@ --theme-accent-color: rgba(0, 0, 0, .8); --caption-color: #131416; --white-color: #fff; - --warning-color: #f2994a; // Dark --divider-color: #e0e0e0; --divider-trans-color: rgba(0, 0, 0, .12); diff --git a/packages/theme/styles/_layouts.scss b/packages/theme/styles/_layouts.scss index 0f8beb3dc1..181e11b378 100644 --- a/packages/theme/styles/_layouts.scss +++ b/packages/theme/styles/_layouts.scss @@ -268,21 +268,22 @@ input.search { cursor: pointer; .icon { - color: var(--dark-color); + color: var(--theme-dark-color); &.circle { padding: .25rem; background-color: var(--avatar-bg-color); border-radius: 50%; } - &:not(.small-gap) { margin-right: .5rem; } + &:not(.small-gap, .medium-gap) { margin-right: .5rem; } &.small-gap { margin-right: .25rem; } + &.medium-gap { margin-right: .375rem; } } .label { min-width: 0; font-weight: 500; text-align: left; - color: var(--accent-color); + color: var(--theme-content-color); overflow: hidden; visibility: visible; @@ -306,19 +307,19 @@ input.search { margin-left: .75rem; } &:hover { - .icon { color: var(--caption-color); } + .icon { color: var(--theme-caption-color); } .label { - color: var(--caption-color); + color: var(--theme-caption-color); &:not(.no-underline) { text-decoration: underline; } } .action { visibility: visible; } } &.not-selected { - .label { color: var(--content-color); } + .label { color: var(--theme-dark-color); } &:hover .label, &:hover .icon { - color: var(--accent-color); + color: var(--theme-content-color); } } } @@ -721,6 +722,7 @@ a.no-line { } .cursor-pointer { cursor: pointer; } .cursor-default { cursor: default; } +.cursor-inherit { cursor: inherit; } .pointer-events-none { pointer-events: none; } .select-text { user-select: text; } @@ -844,6 +846,15 @@ a.no-line { } /* Backgrounds & Colors */ +.dark-hover-content-color { + color: var(--theme-dark-color); + &:hover { color: var(--theme-content-color); } +} +.content-hover-caption-color { + color: var(--theme-content-color); + &:hover { color: var(--theme-caption-color); } +} + .background-body-color { background-color: var(--body-color); } .background-accent-bg-color { background-color: var(--accent-bg-color); } .background-highlight-select { background-color: var(--highlight-select); } diff --git a/packages/theme/styles/popups.scss b/packages/theme/styles/popups.scss index 721dbbcf5a..c3a7b9765d 100644 --- a/packages/theme/styles/popups.scss +++ b/packages/theme/styles/popups.scss @@ -117,7 +117,7 @@ .icon { width: 1rem; height: 1rem; - color: var(--theme-caret-color); + color: var(--theme-dark-color); } .color { width: .875rem; @@ -138,20 +138,25 @@ overflow: hidden; } .check { - display: flex; - align-items: center; - margin-right: .75rem; + flex-shrink: 0; + width: 1rem; + height: 1rem; + margin-right: .375rem; + color: var(--theme-caret-color); } .check-right { margin: 0 0 0 2rem; } - &:not(.withList):focus, + &:not(.withList, .no-focus):focus, &:not(.withList):hover { - color: var(--theme-caption-color); background-color: var(--theme-popup-hover); + } + &:not(.withList, .no-focus):focus, + &:not(.withList):hover, + &.selected, + &:hover { + color: var(--theme-caption-color); .icon { color: var(--theme-content-color); } } - &.no-focus:not(.withList):focus { background-color: var(--theme-popup-hover); } - &.no-focus:not(.withList):hover { background-color: var(--theme-popup-hover); } } .sticky-wrapper { display: flex; @@ -173,13 +178,13 @@ display: flex; align-items: center; justify-content: space-between; - padding: .125rem .25rem; + padding: .375rem .25rem; min-height: 1.5rem; font-weight: 500; font-size: .75rem; text-align: left; color: var(--theme-content-color); - background-color: var(--theme-comp-header-color); + background-color: var(--theme-popup-header); cursor: pointer; .icon { @@ -193,6 +198,10 @@ &.show + .menu-group { height: auto; } } } + .whereSelected { + height: 2px; + background-color: var(--theme-caret-color); + } } .antiPopup { @@ -386,14 +395,18 @@ align-items: center; flex-shrink: 0; justify-content: flex-start; - padding: .25rem .75rem; + padding: .25rem .5rem; min-width: 0; min-height: 2rem; text-align: left; color: var(--theme-content-color); + outline: none; cursor: pointer; - .icon { color: var(--theme-dark-color); } + .icon { + margin-right: .375rem; + color: var(--theme-dark-color); + } &:focus .icon, &.withHover:hover .icon, &.withIconHover:hover .icon { color: var(--theme-caption-color); } @@ -450,6 +463,7 @@ .notifyPopup .content .mention { margin-top: 0 !important; } .helpAndSupportPopup { + height: 100%; min-height: 100%; min-width: 20rem; } diff --git a/packages/ui/src/components/ActionIcon.svelte b/packages/ui/src/components/ActionIcon.svelte index 7b81096557..7c71aac9b8 100644 --- a/packages/ui/src/components/ActionIcon.svelte +++ b/packages/ui/src/components/ActionIcon.svelte @@ -48,34 +48,33 @@ cursor: pointer; .icon { - color: var(--dark-color); + color: var(--theme-halfcontent-color); &.invisible { opacity: 0; } } &:hover .icon { - color: var(--accent-color); + color: var(--theme-caption-color); opacity: 1; } &:focus-visible { - border: 1px solid var(--primary-button-focused-border); - box-shadow: 0 0 0 3px var(--primary-button-outline); + box-shadow: 0 0 0 2px var(--primary-button-focused-border); .icon { - color: var(--caption-color); + color: var(--theme-caption-color); opacity: 1; } } } .small { - width: 1.143em; - height: 1.143em; + width: 1rem; + height: 1rem; } .medium { - width: 1.429em; - height: 1.429em; + width: 1.25rem; + height: 1.25rem; } .large { - width: 1.715em; - height: 1.715em; + width: 1.5rem; + height: 1.5rem; } diff --git a/packages/ui/src/components/Button.svelte b/packages/ui/src/components/Button.svelte index ddf0fa1131..06ff95447f 100644 --- a/packages/ui/src/components/Button.svelte +++ b/packages/ui/src/components/Button.svelte @@ -234,6 +234,9 @@ border-top-right-radius: 0.25rem; border-bottom-right-radius: 0.25rem; } + &.sh-filter { + border-radius: 0 0 0.5rem 0.5rem; + } &.bs-solid { border-style: solid; } @@ -254,7 +257,12 @@ } } &:focus { - box-shadow: 0 0 0 2px var(--primary-button-focused-border); + &:not(.sh-filter) { + box-shadow: 0 0 0 2px var(--primary-button-focused-border); + } + &.sh-filter { + border-color: var(--primary-button-focused-border); + } } &:disabled { color: var(--theme-dark-color); diff --git a/packages/ui/src/components/ColorPopup.svelte b/packages/ui/src/components/ColorPopup.svelte index c863160565..5d5e1093d9 100644 --- a/packages/ui/src/components/ColorPopup.svelte +++ b/packages/ui/src/components/ColorPopup.svelte @@ -19,10 +19,13 @@ import { deviceOptionsStore, resizeObserver } from '..' import { getPlatformColor } from '../colors' import ListView from './ListView.svelte' + import Icon from './Icon.svelte' + import IconCheck from './icons/Check.svelte' export let placeholder: IntlString | undefined = undefined export let placeholderParam: any | undefined = undefined export let searchable: boolean = false + export let selected: number | string | undefined = undefined export let value: Array<{ id: number | string; color: number; label: string }> let search: string = '' @@ -92,11 +95,16 @@ {@const itemValue = objects[item]} diff --git a/packages/ui/src/components/DropdownLabelsPopup.svelte b/packages/ui/src/components/DropdownLabelsPopup.svelte index 65ae814d57..fb14656e1b 100644 --- a/packages/ui/src/components/DropdownLabelsPopup.svelte +++ b/packages/ui/src/components/DropdownLabelsPopup.svelte @@ -19,8 +19,9 @@ import { deviceOptionsStore, resizeObserver } from '..' import plugin from '../plugin' import type { DropdownTextItem } from '../types' - import CheckBox from './CheckBox.svelte' + import IconCheck from './icons/Check.svelte' import ListView from './ListView.svelte' + import Icon from './Icon.svelte' export let placeholder: IntlString = plugin.string.SearchDots export let items: DropdownTextItem[] @@ -130,10 +131,12 @@ } }} > -
{item.label}
- {#if isSelected(selected, item)} -
- {/if} +
+ {#if isSelected(selected, item)} + + {/if} +
+
{item.label}
diff --git a/packages/ui/src/components/EmojiPopup.svelte b/packages/ui/src/components/EmojiPopup.svelte index 26d53f0d43..09b85f51cd 100644 --- a/packages/ui/src/components/EmojiPopup.svelte +++ b/packages/ui/src/components/EmojiPopup.svelte @@ -131,7 +131,7 @@
handleScrollToCategory(category.id)} > @@ -140,7 +140,7 @@ {/each}
- + {#each categories as category}
@@ -181,8 +181,8 @@ font-size: 0.75rem; font-weight: 600; text-transform: uppercase; - color: var(--dark-color); - background-color: var(--board-bg-color); + color: var(--theme-caption-color); + background-color: var(--theme-popup-header); border-radius: 0.25rem; &:first-child { margin-top: 0; @@ -198,18 +198,22 @@ display: flex; justify-content: center; align-items: center; - width: 1.5rem; - height: 1.5rem; + flex-shrink: 0; + width: 1.75rem; + height: 1.75rem; + margin: 0.125rem; + padding: 0.25rem; border-radius: 0.25rem; - color: var(--caption-color); + color: var(--theme-content-color); cursor: pointer; &:hover { - background-color: var(--popup-bg-hover); + color: var(--theme-caption-color); + background-color: var(--theme-popup-hover); } &.selected { - background-color: var(--popup-bg-hover); + background-color: var(--theme-popup-header); } } diff --git a/packages/ui/src/components/SelectPopup.svelte b/packages/ui/src/components/SelectPopup.svelte index ad92fab0ed..38f0dd0c14 100644 --- a/packages/ui/src/components/SelectPopup.svelte +++ b/packages/ui/src/components/SelectPopup.svelte @@ -15,7 +15,7 @@ + +
+
{/if} {#if label}
diff --git a/packages/ui/src/types.ts b/packages/ui/src/types.ts index 6fb281addd..3e80394129 100644 --- a/packages/ui/src/types.ts +++ b/packages/ui/src/types.ts @@ -126,7 +126,7 @@ export type ButtonKind = | 'list' | 'list-header' export type ButtonSize = 'inline' | 'small' | 'medium' | 'large' | 'x-large' -export type ButtonShape = 'rectangle' | 'rectangle-left' | 'rectangle-right' | 'circle' | 'round' | undefined +export type ButtonShape = 'rectangle' | 'rectangle-left' | 'rectangle-right' | 'circle' | 'round' | 'filter' | undefined export type EditStyle = 'editbox' | 'large-style' | 'small-style' | 'search-style' | 'underline' export interface PopupPositionElement { getBoundingClientRect: () => DOMRect diff --git a/plugins/chunter-resources/src/components/Message.svelte b/plugins/chunter-resources/src/components/Message.svelte index 6522eeadc4..487c281163 100644 --- a/plugins/chunter-resources/src/components/Message.svelte +++ b/plugins/chunter-resources/src/components/Message.svelte @@ -299,7 +299,7 @@ diff --git a/plugins/tracker-resources/src/components/ComponentSelector.svelte b/plugins/tracker-resources/src/components/ComponentSelector.svelte index 3a2836eeeb..677c825b93 100644 --- a/plugins/tracker-resources/src/components/ComponentSelector.svelte +++ b/plugins/tracker-resources/src/components/ComponentSelector.svelte @@ -122,16 +122,14 @@ icon={tracker.icon.Components} disabled={!isEditable} {loading} + notSelected={!value} {short} on:click={handleComponentEditorOpened} - > - + > + + - + + {/if} diff --git a/plugins/tracker-resources/src/components/CreateIssue.svelte b/plugins/tracker-resources/src/components/CreateIssue.svelte index 9e3b4b0961..f06d986997 100644 --- a/plugins/tracker-resources/src/components/CreateIssue.svelte +++ b/plugins/tracker-resources/src/components/CreateIssue.svelte @@ -561,7 +561,7 @@ kind={'secondary'} size={'large'} label={tracker.string.NoIssueTemplate} - icon={tracker.icon.Issues} + icon={tracker.icon.IssueTemplates} searchField={'title'} allowDeselect={true} showNavigate={false} diff --git a/plugins/tracker-resources/src/components/components/ComponentStatusSelector.svelte b/plugins/tracker-resources/src/components/components/ComponentStatusSelector.svelte index bad7240481..cf54436f4c 100644 --- a/plugins/tracker-resources/src/components/components/ComponentStatusSelector.svelte +++ b/plugins/tracker-resources/src/components/components/ComponentStatusSelector.svelte @@ -41,7 +41,11 @@ : tracker.string.Backlog : undefined - $: statusesInfo = defaultComponentStatuses.map((s) => ({ id: s, ...componentStatusAssets[s] })) + $: statusesInfo = defaultComponentStatuses.map((s) => ({ + id: s, + isSelected: componentStatusAssets[s].label === selectedStatusLabel, + ...componentStatusAssets[s] + })) const handleComponentStatusEditorOpened = (event: MouseEvent) => { if (!isEditable) { diff --git a/plugins/tracker-resources/src/components/issues/IssueNotification.svelte b/plugins/tracker-resources/src/components/issues/IssueNotification.svelte index c0c8626cce..fb5d141adb 100644 --- a/plugins/tracker-resources/src/components/issues/IssueNotification.svelte +++ b/plugins/tracker-resources/src/components/issues/IssueNotification.svelte @@ -117,7 +117,7 @@ {params?.subTitlePostfix}
-
+
diff --git a/plugins/tracker-resources/src/components/issues/PriorityEditor.svelte b/plugins/tracker-resources/src/components/issues/PriorityEditor.svelte index f9d66343ae..3fd4936913 100644 --- a/plugins/tracker-resources/src/components/issues/PriorityEditor.svelte +++ b/plugins/tracker-resources/src/components/issues/PriorityEditor.svelte @@ -42,7 +42,7 @@ const client = getClient() const dispatch = createEventDispatcher() - const prioritiesInfo = defaultPriorities.map((p) => ({ id: p, ...issuePriorities[p] })) + let selectedPriority: IssuePriority | undefined = value.priority const handlePriorityEditorOpened = (event: MouseEvent) => { event.stopPropagation() @@ -64,12 +64,21 @@ return } + selectedPriority = newPriority dispatch('change', newPriority) if ('_class' in value) { await client.update(value, { priority: newPriority }) } } + + $: prioritiesInfo = defaultPriorities.map((p) => { + return { + id: p, + isSelected: selectedPriority === p, + ...issuePriorities[p] + } + }) {#if value} diff --git a/plugins/tracker-resources/src/components/issues/timereport/EstimationStatsPresenter.svelte b/plugins/tracker-resources/src/components/issues/timereport/EstimationStatsPresenter.svelte index a686fd3ad4..4ff6bc28c1 100644 --- a/plugins/tracker-resources/src/components/issues/timereport/EstimationStatsPresenter.svelte +++ b/plugins/tracker-resources/src/components/issues/timereport/EstimationStatsPresenter.svelte @@ -132,7 +132,7 @@ color: var(--theme-error-color) !important; } .showWarning { - color: var(--warning-color) !important; + color: var(--theme-warning-color) !important; } .romColor { color: var(--theme-content-color) !important; diff --git a/plugins/tracker-resources/src/components/sprints/SprintSelector.svelte b/plugins/tracker-resources/src/components/sprints/SprintSelector.svelte index 6a687c611d..3c698a5d09 100644 --- a/plugins/tracker-resources/src/components/sprints/SprintSelector.svelte +++ b/plugins/tracker-resources/src/components/sprints/SprintSelector.svelte @@ -73,19 +73,25 @@ selectedSprint = sprints.find((it) => it._id === newSprintId) } - const getSprintInfo = (rawSprints: Sprint[]) => { + const getSprintInfo = (rawSprints: Sprint[], sp: Sprint | undefined) => { return [ - { id: null, icon: tracker.icon.Sprint, label: tracker.string.NoSprint }, + { + id: null, + icon: tracker.icon.Sprint, + label: tracker.string.NoSprint, + isSelected: sp === undefined + }, ...rawSprints.map((p) => ({ id: p._id, icon: tracker.icon.Sprint, text: p.label, + isSelected: sp ? p._id === sp._id : false, category: sprintStatusAssets[p.status] })) ] } - $: sprints = getSprintInfo(rawSprints) + $: sprints = getSprintInfo(rawSprints, selectedSprint) const handleSprintEditorOpened = async (event: MouseEvent): Promise => { event.stopPropagation() @@ -138,15 +144,12 @@ {showTooltip} icon={sprintIcon} disabled={!isEditable} + notSelected={!value} {short} on:click={handleSprintEditorOpened} > - + diff --git a/plugins/tracker-resources/src/components/sprints/SprintStatusSelector.svelte b/plugins/tracker-resources/src/components/sprints/SprintStatusSelector.svelte index 0c12e29822..19ae404c5d 100644 --- a/plugins/tracker-resources/src/components/sprints/SprintStatusSelector.svelte +++ b/plugins/tracker-resources/src/components/sprints/SprintStatusSelector.svelte @@ -40,7 +40,11 @@ : tracker.string.Planned : undefined - $: statusesInfo = defaultSprintStatuses.map((s) => ({ id: s, ...sprintStatusAssets[s] })) + $: statusesInfo = defaultSprintStatuses.map((s) => ({ + id: s, + isSelected: sprintStatusAssets[s].label === selectedStatusLabel, + ...sprintStatusAssets[s] + })) const handleSprintStatusEditorOpened = (event: MouseEvent) => { if (!isEditable) { diff --git a/plugins/tracker-resources/src/components/templates/EstimationEditor.svelte b/plugins/tracker-resources/src/components/templates/EstimationEditor.svelte index 45b9f4ec11..4ad8e1013b 100644 --- a/plugins/tracker-resources/src/components/templates/EstimationEditor.svelte +++ b/plugins/tracker-resources/src/components/templates/EstimationEditor.svelte @@ -65,6 +65,7 @@ label={tracker.string.TimeSpendValue} labelParams={{ value: value.estimation }} icon={tracker.icon.Estimation} + notSelected={value.estimation === 0} {justify} {width} {size} diff --git a/plugins/view-resources/src/components/StringEditor.svelte b/plugins/view-resources/src/components/StringEditor.svelte index c0ce18722c..4e0bdb7038 100644 --- a/plugins/view-resources/src/components/StringEditor.svelte +++ b/plugins/view-resources/src/components/StringEditor.svelte @@ -43,6 +43,7 @@ {size} {justify} {width} + notSelected={!value} on:click={(ev) => { if (!shown && !readonly) { showPopup(EditBoxPopup, { value }, eventToHTMLElement(ev), (res) => { @@ -57,9 +58,9 @@ > {#if value} - {value} + {value} {:else} - + {/if} diff --git a/plugins/view-resources/src/components/StringPresenter.svelte b/plugins/view-resources/src/components/StringPresenter.svelte index 03c96d8066..3275140bbc 100644 --- a/plugins/view-resources/src/components/StringPresenter.svelte +++ b/plugins/view-resources/src/components/StringPresenter.svelte @@ -18,6 +18,7 @@ import { LabelAndProps, LinkWrapper, tooltip } from '@hcengineering/ui' export let value: string | string[] | undefined + export let oneLine: boolean = false $: tooltipParams = getTooltip(value) @@ -35,7 +36,7 @@ } - + {#if Array.isArray(value)} {#each value as str, i} diff --git a/plugins/view-resources/src/components/filter/FilterTypePopup.svelte b/plugins/view-resources/src/components/filter/FilterTypePopup.svelte index 245a5f9b11..738547c273 100644 --- a/plugins/view-resources/src/components/filter/FilterTypePopup.svelte +++ b/plugins/view-resources/src/components/filter/FilterTypePopup.svelte @@ -211,6 +211,8 @@ } } } + + const elements: HTMLElement[] = []
dispatch('changeContent')}> @@ -218,8 +220,12 @@ {#each getTypes(_class) as type, i} {#if filter === undefined && type.component === view.component.ObjectFilter && hasNested(type)} keyDown(event, i)} - on:click={(event) => { + on:mouseover={() => { + elements[i]?.focus() + }} + on:click={() => { click(type) }} icon={type.icon} @@ -236,7 +242,7 @@ on:mouseover={(event) => { event.currentTarget.focus() }} - on:click={(event) => { + on:click={() => { click(type) }} > @@ -245,7 +251,7 @@ {/if}
-
+
{/if} {/each} diff --git a/plugins/view-resources/src/components/filter/ObjectFilter.svelte b/plugins/view-resources/src/components/filter/ObjectFilter.svelte index 9434ea0bc4..bc0264d12a 100644 --- a/plugins/view-resources/src/components/filter/ObjectFilter.svelte +++ b/plugins/view-resources/src/components/filter/ObjectFilter.svelte @@ -19,7 +19,8 @@ import ui, { addNotification, Button, - CheckBox, + Icon, + IconCheck, deviceOptionsStore, Label, Loading, @@ -189,12 +190,14 @@ }} >
-
+
- + {#if isSelected(value, filter.value)} + + {/if}
{#if value} - + {:else}
{/each} +
{:else} - + {@const action = actions[item]} @@ -220,7 +221,7 @@ display: flex; justify-content: flex-end; align-items: flex-end; - margin: 0 1rem; + margin: 0 0.5rem 0.5rem; padding-top: 0.625rem; } .key-box {