+
- {#if isReminder}
-
- {/if}
+
+
{#if isUtils && $$slots.utils}
-
+
{/if}
@@ -202,7 +182,7 @@
{#key object._id}
{/key}
{/if}
@@ -221,7 +201,7 @@
props={{
object,
showCommenInput: !withoutInput,
- shouldScroll: embedded,
+ shouldScroll: true,
focusIndex: 1000,
boundary: content
}}
@@ -247,7 +227,7 @@
props={{
object,
showCommenInput: !withoutInput,
- shouldScroll: embedded,
+ shouldScroll: true,
focusIndex: 1000,
boundary: content
}}
diff --git a/packages/presentation/src/components/breadcrumbs/Breadcrumbs.svelte b/packages/presentation/src/components/breadcrumbs/Breadcrumbs.svelte
index 5c938eb1d9..13a1d6e9fe 100644
--- a/packages/presentation/src/components/breadcrumbs/Breadcrumbs.svelte
+++ b/packages/presentation/src/components/breadcrumbs/Breadcrumbs.svelte
@@ -13,55 +13,52 @@
// limitations under the License.
-->
-
- {#each models as model, i}
- {@const { color } = model}
- {#if hasComponent(model)}
- {@const { component, props } = model}
-
- {#if typeof component === 'string'}
-
- {:else}
-
- {/if}
-
- {:else}
- {@const { title, href, onClick } = model}
-
-
-
- {/if}
- {/each}
-
+{#each narrowModel as model, i}
+ {#if hasComponent(model)}
+ {@const { component, props } = model}
+
+ {#if typeof component === 'string'}
+
+ {:else}
+
+ {/if}
+
+ {:else}
+ {@const { title, href, onClick } = model}
+
+ {title}
+
+ {/if}
+ /
+ {#if trimmed && i === 0}
+
+ ...
+ /
+ {/if}
+{/each}
diff --git a/packages/theme/styles/_colors.scss b/packages/theme/styles/_colors.scss
index 7df216f699..5ad27116fd 100644
--- a/packages/theme/styles/_colors.scss
+++ b/packages/theme/styles/_colors.scss
@@ -102,6 +102,13 @@
--theme-button-disabled: transparent;
--theme-button-border: rgba(255, 255, 255, .09);
+ --theme-breadcrumb-default: rgba(255, 255, 255, 0);
+ --theme-breadcrumb-hovered: rgba(255, 255, 255, .08);
+ --theme-breadcrumb-pressed: rgba(255, 255, 255, .1);
+ --theme-button-icon-default: rgba(255, 255, 255, 0);
+ --theme-button-icon-hovered: rgba(255, 255, 255, .06);
+ --theme-button-icon-pressed: rgba(255, 255, 255, .1);
+
--theme-button-contrast-color: #000;
--theme-button-contrast-enabled: rgba(255, 255, 255, .8);
--theme-button-contrast-hovered: #fff;
@@ -320,6 +327,13 @@
--theme-button-disabled: rgba(0, 0, 0, .08);
--theme-button-border: rgba(0, 0, 0, .09);
+ --theme-breadcrumb-default: rgba(0, 0, 0, 0);
+ --theme-breadcrumb-hovered: rgba(0, 0, 0, .08);
+ --theme-breadcrumb-pressed: rgba(0, 0, 0, .1);
+ --theme-button-icon-default: rgba(0, 0, 0, 0);
+ --theme-button-icon-hovered: rgba(0, 0, 0, .06);
+ --theme-button-icon-pressed: rgba(0, 0, 0, .1);
+
--theme-button-contrast-color: #fff;
--theme-button-contrast-enabled: rgba(0, 0, 0, .8);
--theme-button-contrast-hovered: #000;
diff --git a/packages/theme/styles/_layouts.scss b/packages/theme/styles/_layouts.scss
index 2ba1e9dd96..86291e44b0 100644
--- a/packages/theme/styles/_layouts.scss
+++ b/packages/theme/styles/_layouts.scss
@@ -483,6 +483,7 @@ input.search {
.ml-12 { margin-left: 3rem; }
.ml-22 { margin-left: 5.5rem; }
.ml-auto { margin-left: auto; }
+.mr-0-5 { margin-right: .125rem; }
.mr-1 { margin-right: .25rem; }
.mr-1-5 { margin-right: .375rem; }
.mr-2 { margin-right: .5rem; }
diff --git a/packages/theme/styles/button.scss b/packages/theme/styles/button.scss
index 222821b691..80a23ee1ea 100644
--- a/packages/theme/styles/button.scss
+++ b/packages/theme/styles/button.scss
@@ -343,4 +343,16 @@
width: 20px;
}
}
+ &:focus { z-index: 1; }
+ &.icon {
+ background-color: var(--theme-button-icon-default);
+
+ .btn-icon { color: var(--theme-dark-color); }
+
+ &:hover, &:focus, &.selected { background-color: var(--theme-button-icon-hovered); }
+ &:active { background-color: var(--theme-button-icon-pressed); }
+ &:hover, &:focus, &.selected, &:active {
+ .btn-icon { color: var(--theme-caption-color); }
+ }
+ }
}
diff --git a/packages/theme/styles/global.scss b/packages/theme/styles/global.scss
index 971d6ab296..af9af58ea2 100644
--- a/packages/theme/styles/global.scss
+++ b/packages/theme/styles/global.scss
@@ -94,7 +94,7 @@
::-webkit-scrollbar:horizontal {
height: 6px;
}
-::-webkit-scrollbar-track, .panel-container .scroll .scroll::-webkit-scrollbar-track {
+::-webkit-scrollbar-track, .panel-instance .scroll .scroll::-webkit-scrollbar-track {
margin: 6px;
// background-color: var(--scrollbar-bar-color);
}
diff --git a/packages/theme/styles/panel.scss b/packages/theme/styles/panel.scss
index f1c9801715..8ba4d55833 100644
--- a/packages/theme/styles/panel.scss
+++ b/packages/theme/styles/panel.scss
@@ -77,54 +77,49 @@
.popupPanel {
overflow: hidden;
display: flex;
- min-height: 0;
+ width: 100%;
height: 100%;
+ min-width: 0;
+ min-height: 0;
- &.rowContent {
- width: 100%;
- min-width: 0;
- }
&:not(.rowContent) { flex-direction: column; }
- &.embedded { width: 100%; }
- &:not(.embedded) { border-radius: .5rem; }
.popupPanel-title {
display: flex;
flex-shrink: 0;
justify-content: stretch;
align-items: center;
+ padding: 0 1rem 0 1.25rem;
+ min-width: 0;
+ min-height: 3.25rem;
+ background-color: var(--theme-comp-header-color);
+ border-bottom: 1px solid var(--theme-divider-color);
- &.row {
- padding: .5rem .75rem;
- width: 100%;
-
- &-top { margin: .5rem .75rem .125rem; }
- &-bottom { margin: .5rem .75rem .5rem 1.25rem; }
- }
- &__bordered {
- min-width: 0;
- min-height: 3.25rem;
- background-color: var(--theme-comp-header-color);
- &:not(.embedded) {
- border: 1px solid var(--theme-divider-color);
- border-bottom: none;
- border-radius: .5rem .5rem 0 0;
- }
- &.embedded {
- border-bottom: 1px solid var(--theme-divider-color);
- }
- }
&__content {
+ display: flex;
+ align-items: center;
flex-grow: 1;
- margin: 0 .75rem;
+ margin-right: .75rem;
min-width: 0;
min-height: 0;
- &-container {
- display: flex;
- justify-content: stretch;
- min-width: 0;
- width: 100%;
+ .title {
+ padding: .125rem .375rem;
+ font-size: .8125rem;
+ color: var(--theme-content-color);
+ background-color: var(--theme-breadcrumb-default);
+ border-radius: .25rem;
+
+ &:not(:last-child) { margin-right: .125rem; }
+ &:not(.disabled, .not-active) {
+ cursor: pointer;
+
+ &:hover, &:focus { background-color: var(--theme-breadcrumb-hovered); }
+ &:active { background-color: var(--theme-breadcrumb-pressed); }
+ &:hover, &:focus, &:active { color: var(--theme-caption-color); }
+ }
+ &.disabled { color: var(--theme-dark-color); }
+ &.not-active { color: var(--theme-caption-color); }
}
}
}
@@ -138,13 +133,8 @@
height: 100%;
background-color: var(--theme-panel-color);
border: 1px solid var(--theme-divider-color);
- &:not(.embedded) {
- border-radius: 0 0 .5rem .5rem;
- }
- &.embedded {
- border-top: none;
- border-left: none;
- }
+ border-top: none;
+ border-left: none;
&.main {
justify-content: stretch;
diff --git a/packages/ui/src/components/ButtonGroup.svelte b/packages/ui/src/components/ButtonGroup.svelte
new file mode 100644
index 0000000000..00333826f5
--- /dev/null
+++ b/packages/ui/src/components/ButtonGroup.svelte
@@ -0,0 +1,48 @@
+
+
+
+{#each items as item}
+ {@const isSelect = selected === item.id}
+