diff --git a/models/tracker/src/index.ts b/models/tracker/src/index.ts
index 4057eabee4..fb4a151605 100644
--- a/models/tracker/src/index.ts
+++ b/models/tracker/src/index.ts
@@ -279,17 +279,17 @@ export function createModel (builder: Builder): void {
attachTo: tracker.class.Issue,
descriptor: tracker.viewlet.List,
config: [
- { key: '', presenter: tracker.component.PriorityEditor },
+ { key: '', presenter: tracker.component.PriorityEditor, props: { kind: 'list', size: 'small' } },
'@currentTeam',
'@statuses',
- { key: '', presenter: tracker.component.TitlePresenter, props: { shouldUseMargin: true } },
- { key: '', presenter: tracker.component.DueDatePresenter },
+ { key: '', presenter: tracker.component.TitlePresenter, props: { shouldUseMargin: true, fixed: 'left' } },
+ { key: '', presenter: tracker.component.DueDatePresenter, props: { kind: 'list' } },
{
key: '',
presenter: tracker.component.ProjectEditor,
- props: { kind: 'secondary', size: 'small', shape: 'round', shouldShowPlaceholder: false }
+ props: { kind: 'list', size: 'small', shape: 'round', shouldShowPlaceholder: false }
},
- { key: 'modifiedOn', presenter: tracker.component.ModificationDatePresenter },
+ { key: 'modifiedOn', presenter: tracker.component.ModificationDatePresenter, props: { fixed: 'right' } },
{
key: '$lookup.assignee',
presenter: tracker.component.AssigneePresenter,
diff --git a/packages/kanban/src/components/Kanban.svelte b/packages/kanban/src/components/Kanban.svelte
index c975c121d2..07d6a2955f 100644
--- a/packages/kanban/src/components/Kanban.svelte
+++ b/packages/kanban/src/components/Kanban.svelte
@@ -346,6 +346,7 @@
diff --git a/packages/presentation/src/components/MessageBox.svelte b/packages/presentation/src/components/MessageBox.svelte
index ae06a767b2..26f529faa5 100644
--- a/packages/presentation/src/components/MessageBox.svelte
+++ b/packages/presentation/src/components/MessageBox.svelte
@@ -61,7 +61,7 @@
display: grid;
grid-auto-flow: column;
direction: rtl;
- justify-content: start;
+ justify-content: flex-start;
align-items: center;
column-gap: 0.5rem;
// mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0) 1.25rem, rgba(0, 0, 0, 1) 2.5rem);
diff --git a/packages/theme/styles/_layouts.scss b/packages/theme/styles/_layouts.scss
index 25b36f364a..27b0883f55 100644
--- a/packages/theme/styles/_layouts.scss
+++ b/packages/theme/styles/_layouts.scss
@@ -218,7 +218,7 @@ input.search {
.icon {
margin-right: .5rem;
- color: var(--theme-content-dark-color);
+ color: var(--dark-color);
&.circle {
padding: .25rem;
@@ -282,7 +282,7 @@ input.search {
.buttons-group {
display: grid;
grid-auto-flow: column;
- justify-content: start;
+ justify-content: flex-start;
align-items: center;
gap: .75rem;
@@ -302,7 +302,7 @@ input.search {
background-color: var(--divider-color);
}
-.gap-1, .gap-1-5, .gap-2 {
+.gap-1, .gap-1-5 {
& > *:not(:last-child) { margin-right: .25rem; }
&.reverse {
flex-direction: row-reverse;
@@ -315,7 +315,7 @@ input.search {
&.reverse > :last-child { margin-right: .375rem; }
}
.gap-2 {
- & > * { margin-right: .5rem; }
+ & > *:not(:first-child) { margin-left: .5rem; }
&.reverse > :last-child { margin-right: .5rem; }
}
@@ -494,6 +494,7 @@ input.search {
min-width: 0;
min-height: 0;
}
+.square-4 { width: 1rem; height: 1rem; }
.square-36 { width: 2.25rem; height: 2.25rem; }
/* --------- */
diff --git a/packages/theme/styles/components.scss b/packages/theme/styles/components.scss
index 74522c66aa..9be224ba7d 100644
--- a/packages/theme/styles/components.scss
+++ b/packages/theme/styles/components.scss
@@ -478,7 +478,9 @@
}
.antiList__row {
- .antiList-cells__notifyCell {
+ .antiList-cells__notifyCell,
+ .antiList-cells__checkCell {
+ flex-shrink: 0;
z-index: 1;
}
diff --git a/packages/theme/styles/dialogs.scss b/packages/theme/styles/dialogs.scss
index 17db5bd9ec..c0b3ce4695 100644
--- a/packages/theme/styles/dialogs.scss
+++ b/packages/theme/styles/dialogs.scss
@@ -96,7 +96,7 @@
display: grid;
grid-auto-flow: column;
direction: rtl;
- justify-content: start;
+ justify-content: flex-start;
align-items: center;
column-gap: .75rem;
padding: 1.5rem 1rem 1rem;
diff --git a/packages/theme/styles/popups.scss b/packages/theme/styles/popups.scss
index 0104cc74d8..a87d17e1a0 100644
--- a/packages/theme/styles/popups.scss
+++ b/packages/theme/styles/popups.scss
@@ -91,7 +91,7 @@
.menu-item {
flex-shrink: 0;
- justify-content: start;
+ justify-content: flex-start;
padding: .25rem .75rem;
min-height: 2rem;
text-align: left;
@@ -216,7 +216,7 @@
height: 100%;
}
.ap-menuItem {
- justify-content: start;
+ justify-content: flex-start;
padding: 0 .5rem;
height: 2rem;
color: var(--caption-color);
@@ -331,7 +331,7 @@
grid-auto-flow: column;
direction: rtl;
grid-gap: 0.5rem;
- justify-content: start;
+ justify-content: flex-start;
padding: 1rem 1.75rem 1.75rem 0.5rem;
overflow: hidden;
}
@@ -342,7 +342,7 @@
display: flex;
align-items: center;
flex-shrink: 0;
- justify-content: start;
+ justify-content: flex-start;
padding: .25rem .75rem;
min-width: 0;
min-height: 2rem;
diff --git a/packages/ui/src/components/Button.svelte b/packages/ui/src/components/Button.svelte
index d1132dc0f7..b70443b0b1 100644
--- a/packages/ui/src/components/Button.svelte
+++ b/packages/ui/src/components/Button.svelte
@@ -110,8 +110,13 @@
{#if icon && !loading}
@@ -306,6 +311,22 @@
}
}
}
+ &.list {
+ padding: 0 0.625em 0 0.5rem;
+ min-height: 1.75rem;
+ color: var(--content-color);
+ background-color: var(--body-color);
+ border: 1px solid var(--divider-color);
+ border-radius: 3rem;
+ transition-property: border, color, background-color;
+ transition-duration: 0.15s;
+
+ &:hover {
+ color: var(--caption-color);
+ background-color: var(--board-card-bg-color);
+ border-color: var(--button-border-color);
+ }
+ }
&.primary {
padding: 0 1rem;
color: var(--white-color);
diff --git a/packages/ui/src/components/EditWithIcon.svelte b/packages/ui/src/components/EditWithIcon.svelte
index 3684c8d8d6..1f750a168d 100644
--- a/packages/ui/src/components/EditWithIcon.svelte
+++ b/packages/ui/src/components/EditWithIcon.svelte
@@ -26,6 +26,7 @@
export let value: string | undefined = undefined
export let placeholder: IntlString = plugin.string.EditBoxPlaceholder
export let focus: boolean = false
+ export let size: 'small' | 'medium' = 'medium'
const dispatch = createEventDispatcher()
let textHTML: HTMLInputElement
@@ -42,7 +43,7 @@
}
-
textHTML.focus()}>
+
textHTML.focus()}>
@@ -62,13 +63,18 @@
diff --git a/packages/ui/src/components/calendar/DatePresenter.svelte b/packages/ui/src/components/calendar/DatePresenter.svelte
index a052bb2953..0c259d85c0 100644
--- a/packages/ui/src/components/calendar/DatePresenter.svelte
+++ b/packages/ui/src/components/calendar/DatePresenter.svelte
@@ -31,7 +31,7 @@
export let showIcon = true
export let shouldShowLabel: boolean = true
export let size: 'x-small' | 'small' = 'small'
- export let kind: 'transparent' | 'primary' | 'link' = 'primary'
+ export let kind: 'transparent' | 'primary' | 'link' | 'list' = 'primary'
const dispatch = createEventDispatcher()
@@ -219,6 +219,22 @@
}
}
}
+ &.list {
+ padding: 0 0.625em 0 0.5rem;
+ min-height: 1.75rem;
+ color: var(--content-color);
+ background-color: var(--body-color);
+ border: 1px solid var(--divider-color);
+ border-radius: 3rem;
+ transition-property: border, color, background-color;
+ transition-duration: 0.15s;
+
+ &:hover {
+ color: var(--caption-color);
+ background-color: var(--board-card-bg-color);
+ border-color: var(--button-border-color);
+ }
+ }
.time-divider {
flex-shrink: 0;
diff --git a/packages/ui/src/components/icons/DownOutline.svelte b/packages/ui/src/components/icons/DownOutline.svelte
index f3bf3b4247..a7b70d23e3 100644
--- a/packages/ui/src/components/icons/DownOutline.svelte
+++ b/packages/ui/src/components/icons/DownOutline.svelte
@@ -1,5 +1,5 @@
diff --git a/packages/ui/src/components/icons/Expand.svelte b/packages/ui/src/components/icons/Expand.svelte
index b2eb018f81..91d1752a30 100644
--- a/packages/ui/src/components/icons/Expand.svelte
+++ b/packages/ui/src/components/icons/Expand.svelte
@@ -1,5 +1,5 @@
diff --git a/packages/ui/src/types.ts b/packages/ui/src/types.ts
index 398b07b0bc..86e51dca0b 100644
--- a/packages/ui/src/types.ts
+++ b/packages/ui/src/types.ts
@@ -71,9 +71,18 @@ export interface TabItem {
labelIntl?: IntlString
icon?: Asset | AnySvelteComponent
color?: string
+ tooltip?: IntlString
}
-export type ButtonKind = 'primary' | 'secondary' | 'no-border' | 'transparent' | 'link' | 'link-bordered' | 'dangerous'
+export type ButtonKind =
+ | 'primary'
+ | 'secondary'
+ | 'no-border'
+ | 'transparent'
+ | 'link'
+ | 'link-bordered'
+ | 'dangerous'
+ | 'list'
export type ButtonSize = 'inline' | 'small' | 'medium' | 'large' | 'x-large'
export type ButtonShape = 'rectangle' | 'rectangle-left' | 'rectangle-right' | 'circle' | 'round' | undefined
export type EditStyle = 'editbox' | 'large-style' | 'small-style' | 'search-style'
diff --git a/plugins/attachment-resources/src/components/FileBrowser.svelte b/plugins/attachment-resources/src/components/FileBrowser.svelte
index 6fd987508a..d6e992af74 100644
--- a/plugins/attachment-resources/src/components/FileBrowser.svelte
+++ b/plugins/attachment-resources/src/components/FileBrowser.svelte
@@ -17,16 +17,7 @@
import contact, { Employee, EmployeeAccount } from '@anticrm/contact'
import core, { Class, getCurrentAccount, Ref, Space } from '@anticrm/core'
import { getClient } from '@anticrm/presentation'
- import ui, {
- EditWithIcon,
- getCurrentLocation,
- Icon,
- IconSearch,
- Label,
- navigate,
- Loading,
- Tooltip
- } from '@anticrm/ui'
+ import ui, { EditWithIcon, getCurrentLocation, IconSearch, Label, navigate, Loading, TabList } from '@anticrm/ui'
import view from '@anticrm/view'
import { dateFileBrowserFilters, FileBrowserSortMode, fileTypeFileBrowserFilters, sortModeToOptionObject } from '..'
import attachment from '../plugin'
@@ -115,7 +106,7 @@
-
+
{/if}
diff --git a/plugins/calendar-assets/assets/icons.svg b/plugins/calendar-assets/assets/icons.svg
index 71edd83dd1..f6da8a796b 100644
--- a/plugins/calendar-assets/assets/icons.svg
+++ b/plugins/calendar-assets/assets/icons.svg
@@ -1,15 +1,12 @@
diff --git a/plugins/chunter-resources/src/components/ChunterBrowser.svelte b/plugins/chunter-resources/src/components/ChunterBrowser.svelte
index e879461a4e..3e6e42b713 100644
--- a/plugins/chunter-resources/src/components/ChunterBrowser.svelte
+++ b/plugins/chunter-resources/src/components/ChunterBrowser.svelte
@@ -110,14 +110,14 @@
.browser {
flex-grow: 2;
display: flex;
- justify-content: start;
+ justify-content: flex-start;
flex-direction: column-reverse;
}
.bar {
flex-grow: 1;
display: flex;
- justify-content: start;
+ justify-content: flex-start;
max-height: 4rem;
}
diff --git a/plugins/contact-resources/src/components/Contacts.svelte b/plugins/contact-resources/src/components/Contacts.svelte
index 7ba7c50cab..eb18c47db3 100644
--- a/plugins/contact-resources/src/components/Contacts.svelte
+++ b/plugins/contact-resources/src/components/Contacts.svelte
@@ -86,6 +86,7 @@
icon={IconAdd}
label={contact.string.ContactCreateLabel}
kind={'primary'}
+ size={'small'}
on:click={(ev) => showCreateDialog(ev)}
/>
diff --git a/plugins/contact-resources/src/components/OrganizationCard.svelte b/plugins/contact-resources/src/components/OrganizationCard.svelte
index cc188b4fae..532993ea2a 100644
--- a/plugins/contact-resources/src/components/OrganizationCard.svelte
+++ b/plugins/contact-resources/src/components/OrganizationCard.svelte
@@ -87,9 +87,5 @@
font-size: 1rem;
color: var(--theme-caption-color);
}
- .description {
- font-size: 0.75rem;
- color: var(--theme-content-dark-color);
- }
}
diff --git a/plugins/inventory-resources/src/components/Categories.svelte b/plugins/inventory-resources/src/components/Categories.svelte
index 911844364f..f7b936f15d 100644
--- a/plugins/inventory-resources/src/components/Categories.svelte
+++ b/plugins/inventory-resources/src/components/Categories.svelte
@@ -45,7 +45,13 @@
updateResultQuery(search)
}}
/>
-
+
diff --git a/plugins/recruit-resources/src/components/Vacancies.svelte b/plugins/recruit-resources/src/components/Vacancies.svelte
index 3d1d4bbc28..9762123b1d 100644
--- a/plugins/recruit-resources/src/components/Vacancies.svelte
+++ b/plugins/recruit-resources/src/components/Vacancies.svelte
@@ -143,7 +143,13 @@
search = e.detail
}}
/>
-
+
{#if descr}
diff --git a/plugins/tags-resources/src/components/TagsView.svelte b/plugins/tags-resources/src/components/TagsView.svelte
index 56f298e755..95dd6ce700 100644
--- a/plugins/tags-resources/src/components/TagsView.svelte
+++ b/plugins/tags-resources/src/components/TagsView.svelte
@@ -98,7 +98,7 @@
updateResultQuery(search, category)
}}
/>
-
+
-
+
+
+
+
+
+
diff --git a/plugins/task-resources/src/components/StatusTableView.svelte b/plugins/task-resources/src/components/StatusTableView.svelte
index e18705a3b4..e4f69af4d9 100644
--- a/plugins/task-resources/src/components/StatusTableView.svelte
+++ b/plugins/task-resources/src/components/StatusTableView.svelte
@@ -149,10 +149,11 @@
{ id: 'DoneStates', labelIntl: task.string.DoneStates }
]}
multiselect={false}
+ size={'small'}
on:select={handleSelect}
/>
{#if doneStatusesView}
-
+
{:else}
updateQuery(search, selectedDoneStates)} />
{/if}
diff --git a/plugins/tracker-resources/src/components/CommonTrackerDatePresenter.svelte b/plugins/tracker-resources/src/components/CommonTrackerDatePresenter.svelte
index b0e6eef18a..bd2c96bfc4 100644
--- a/plugins/tracker-resources/src/components/CommonTrackerDatePresenter.svelte
+++ b/plugins/tracker-resources/src/components/CommonTrackerDatePresenter.svelte
@@ -21,6 +21,7 @@
export let dateMs: number | null = null
export let shouldRender: boolean = true
export let onDateChange: (newDate: number | null) => void
+ export let kind: 'transparent' | 'primary' | 'link' | 'list' = 'primary'
$: today = new Date(new Date(Date.now()).setHours(0, 0, 0, 0))
$: isOverdue = dateMs !== null && dateMs < today.getTime()
@@ -57,6 +58,7 @@
editable={true}
shouldShowLabel={false}
icon={iconModifier}
+ {kind}
on:change={handleDueDateChanged}
/>
@@ -66,6 +68,7 @@
editable={true}
shouldShowLabel={false}
icon={iconModifier}
+ {kind}
on:change={handleDueDateChanged}
/>
{/if}
diff --git a/plugins/tracker-resources/src/components/issues/DueDatePresenter.svelte b/plugins/tracker-resources/src/components/issues/DueDatePresenter.svelte
index f6e5a6d4b7..7c15956481 100644
--- a/plugins/tracker-resources/src/components/issues/DueDatePresenter.svelte
+++ b/plugins/tracker-resources/src/components/issues/DueDatePresenter.svelte
@@ -20,6 +20,7 @@
import tracker from '../../plugin'
export let value: WithLookup
+ export let kind: 'transparent' | 'primary' | 'link' | 'list' = 'primary'
const client = getClient()
@@ -47,4 +48,5 @@
dateMs={dueDateMs}
shouldRender={shouldRenderPresenter}
onDateChange={handleDueDateChanged}
+ {kind}
/>
diff --git a/plugins/tracker-resources/src/components/issues/IssuePresenter.svelte b/plugins/tracker-resources/src/components/issues/IssuePresenter.svelte
index 52692f28a2..b61d778a31 100644
--- a/plugins/tracker-resources/src/components/issues/IssuePresenter.svelte
+++ b/plugins/tracker-resources/src/components/issues/IssuePresenter.svelte
@@ -16,11 +16,11 @@
import { WithLookup } from '@anticrm/core'
import { createQuery } from '@anticrm/presentation'
import type { Issue, Team } from '@anticrm/tracker'
- import { Icon, showPanel } from '@anticrm/ui'
+ import { showPanel } from '@anticrm/ui'
import tracker from '../../plugin'
export let value: WithLookup
- export let inline: boolean = false
+ // export let inline: boolean = false
function handleIssueEditorOpened () {
showPanel(tracker.component.EditIssue, value._id, value._class, 'content')
@@ -39,25 +39,21 @@
{#if value}
-
+
+ {title}
+
{/if}
diff --git a/plugins/tracker-resources/src/components/issues/Issues.svelte b/plugins/tracker-resources/src/components/issues/Issues.svelte
index da91666832..75f613fee4 100644
--- a/plugins/tracker-resources/src/components/issues/Issues.svelte
+++ b/plugins/tracker-resources/src/components/issues/Issues.svelte
@@ -25,17 +25,7 @@
IssueStatus,
IssueStatusCategory
} from '@anticrm/tracker'
- import {
- Button,
- Label,
- ScrollBox,
- IconOptions,
- showPopup,
- eventToHTMLElement,
- IconAdd,
- IconClose,
- Icon
- } from '@anticrm/ui'
+ import { Button, Label, Scroller, showPopup, eventToHTMLElement, IconAdd, IconClose, Icon } from '@anticrm/ui'
import { IntlString } from '@anticrm/platform'
import { createEventDispatcher } from 'svelte'
import ViewOptionsPopup from './ViewOptionsPopup.svelte'
@@ -55,6 +45,7 @@
IssueFilter,
getArraysUnion
} from '../../utils'
+ import ViewOptionsButton from './ViewOptionsButton.svelte'
export let currentSpace: Ref
export let title: IntlString = tracker.string.AllIssues
@@ -482,7 +473,7 @@
-
+
{#if filters.length > 0}
{/if}
-
-
-
-
-
-
+
+
1}>
+
+
{#if $$slots.aside !== undefined}
diff --git a/plugins/tracker-resources/src/components/issues/IssuesContent.svelte b/plugins/tracker-resources/src/components/issues/IssuesContent.svelte
index d434ab331e..206acc8667 100644
--- a/plugins/tracker-resources/src/components/issues/IssuesContent.svelte
+++ b/plugins/tracker-resources/src/components/issues/IssuesContent.svelte
@@ -36,7 +36,14 @@
const replacedKeys: Map = new Map([
['@currentTeam', { key: '', presenter: tracker.component.IssuePresenter, props: { currentTeam } }],
- ['@statuses', { key: '', presenter: tracker.component.StatusEditor, props: { statuses, justify: 'center' } }]
+ [
+ '@statuses',
+ {
+ key: '',
+ presenter: tracker.component.StatusEditor,
+ props: { statuses, kind: 'list', size: 'small', justify: 'center' }
+ }
+ ]
])
function createConfig (descr: Viewlet, preference: ViewletPreference | undefined): (string | BuildModelKey)[] {
diff --git a/plugins/tracker-resources/src/components/issues/IssuesHeader.svelte b/plugins/tracker-resources/src/components/issues/IssuesHeader.svelte
index 62753bb452..f5aeba7998 100644
--- a/plugins/tracker-resources/src/components/issues/IssuesHeader.svelte
+++ b/plugins/tracker-resources/src/components/issues/IssuesHeader.svelte
@@ -1,11 +1,12 @@
-