diff --git a/packages/theme/styles/_layouts.scss b/packages/theme/styles/_layouts.scss index e788117975..4b44b32c27 100644 --- a/packages/theme/styles/_layouts.scss +++ b/packages/theme/styles/_layouts.scss @@ -199,7 +199,10 @@ p:last-child { margin-block-end: 0; } line-clamp: 2; user-select: none; - &.nowrap { white-space: nowrap; } + &.nowrap { + white-space: nowrap; + text-overflow: ellipsis; + } } .action { visibility: hidden; diff --git a/packages/theme/styles/components.scss b/packages/theme/styles/components.scss index c9f09d47e2..e06e1f1924 100644 --- a/packages/theme/styles/components.scss +++ b/packages/theme/styles/components.scss @@ -434,6 +434,7 @@ cursor: pointer; .button { + flex-shrink: 0; width: 2.25rem; height: 2.25rem; background-color: transparent; @@ -487,31 +488,6 @@ margin-left: .75rem; min-height: 0; } - .wrap { - position: relative; - display: flex; - align-items: center; - flex-wrap: nowrap; - min-width: 0; - - &::after, &::before { - position: absolute; - width: 6px; - height: 6px; - background-color: var(--primary-button-enabled); - } - &::before { - top: -2px; - left: -4px; - clip-path: path('M0,6v-6h6v1h-5v5z'); - } - &::after { - bottom: -2px; - right: -4px; - clip-path: path('M0,6h6v-6h-1v5h-5z'); - } - &.wraped::before, &.wraped::after { content: ''; } - } .divider { margin: 0 .125rem; @@ -527,3 +503,32 @@ } } } + +/* Wraps */ +.antiWrapper { + position: relative; + display: flex; + align-items: center; + flex-wrap: nowrap; + min-width: 0; + + &::after, &::before { + position: absolute; + width: 6px; + height: 6px; + background-color: var(--primary-button-enabled); + } + &::before { + top: -2px; + left: -4px; + clip-path: path('M0,6v-6h6v1h-5v5z'); + } + &::after { + bottom: -2px; + right: -4px; + clip-path: path('M0,6h6v-6h-1v5h-5z'); + } + &.wraped::before, &.wraped::after { content: ''; } + &.focusWI:focus-within::before, &.focusWI:focus-within::after { content: ''; } + &.focus:focus::before, &.focus:focus::after { content: ''; } +} diff --git a/packages/ui/lang/en.json b/packages/ui/lang/en.json index 7ee945535c..748aaba17e 100644 --- a/packages/ui/lang/en.json +++ b/packages/ui/lang/en.json @@ -1,6 +1,7 @@ { "string": { "EditBoxPlaceholder": "placeholder", + "Ok": "Ok", "Cancel": "Cancel", "Minutes": "{minutes, plural, =0 {less than a minute ago} =1 {a minute ago} other {# minutes ago}}", "Hours": "{hours, plural, =0 {less than an hour ago} =1 {an hour ago} other {# hours ago}}", diff --git a/packages/ui/lang/ru.json b/packages/ui/lang/ru.json index a98fba401c..696987d51f 100644 --- a/packages/ui/lang/ru.json +++ b/packages/ui/lang/ru.json @@ -1,6 +1,7 @@ { "string": { "EditBoxPlaceholder": "Введите текст здесь", + "Ok": "Ок", "Cancel": "Отменить", "Minutes": "{minutes, plural, =0 {меньше минуты назад} =1 {минуту назад} other {# минут назад}}", "Hours": "{hours, plural, =0 {меньше часа назад} =1 {час назад} other {# часов назад}}", diff --git a/packages/ui/src/components/Button.svelte b/packages/ui/src/components/Button.svelte index ce839aad6d..84f4be208d 100644 --- a/packages/ui/src/components/Button.svelte +++ b/packages/ui/src/components/Button.svelte @@ -30,9 +30,10 @@ export let width: string | undefined = undefined export let focus: boolean = false - let input: HTMLButtonElement + export let input: HTMLButtonElement | undefined = undefined + onMount(() => { - if (focus) { + if (focus && input) { input.focus() focus = false } diff --git a/packages/ui/src/components/DatePicker.svelte b/packages/ui/src/components/DatePicker.svelte index 036064266f..4270a8079c 100644 --- a/packages/ui/src/components/DatePicker.svelte +++ b/packages/ui/src/components/DatePicker.svelte @@ -22,40 +22,29 @@ export let title: IntlString export let value: Date | null | undefined = null - export let range: Date | null | undefined = undefined + export let withTime: boolean = false export let bigDay: boolean = false export let show: boolean = false const dispatch = createEventDispatcher() let opened: boolean = false - let secondSelect: boolean = false let container: HTMLElement let btn: HTMLElement + const changeValue = (result: any): void => { + if (result !== undefined) { + value = result + dispatch('change', result) + } + } + onMount(() => { if (btn && show) { btn.click() show = false } }) - - const splitRes = (result: any): void => { - if (result !== undefined) { - if (result[0] !== value) value = result[0] - if (result[1] !== range) range = result[1] - dispatch('change', [value, range]) - } - } - const onClosePopup = (result: any): void => { - splitRes(result) - opened = false - secondSelect = false - } - const onUpdatePopup = (result: any): void => { - secondSelect = true - splitRes(result) - }