|
|
@ -84,9 +84,9 @@ function scrollIntoView() { |
|
|
<div |
|
|
<div |
|
|
ref="contentRef" |
|
|
ref="contentRef" |
|
|
:class="contentClass" |
|
|
:class="contentClass" |
|
|
class="relative !flex h-[calc(100%-2px)] w-max" |
|
|
class="relative !flex h-full w-max" |
|
|
> |
|
|
> |
|
|
<TransitionGroup name="slide-up"> |
|
|
<TransitionGroup name="slide-left"> |
|
|
<div |
|
|
<div |
|
|
v-for="(tab, i) in tabsView" |
|
|
v-for="(tab, i) in tabsView" |
|
|
:key="tab.key" |
|
|
:key="tab.key" |
|
|
@ -120,17 +120,17 @@ function scrollIntoView() { |
|
|
class="tabs-chrome__background absolute z-[1] size-full px-[calc(var(--gap)-1px)] py-0 transition-opacity duration-150" |
|
|
class="tabs-chrome__background absolute z-[1] size-full px-[calc(var(--gap)-1px)] py-0 transition-opacity duration-150" |
|
|
> |
|
|
> |
|
|
<div |
|
|
<div |
|
|
class="tabs-chrome__background-content h-full rounded-tl-[var(--gap)] rounded-tr-[var(--gap)] duration-150" |
|
|
class="tabs-chrome__background-content group-[.is-active]:bg-primary/15 dark:group-[.is-active]:bg-accent h-full rounded-tl-[var(--gap)] rounded-tr-[var(--gap)] duration-150" |
|
|
></div> |
|
|
></div> |
|
|
<svg |
|
|
<svg |
|
|
class="tabs-chrome__background-before absolute bottom-0 left-[-1px] fill-transparent transition-all duration-150" |
|
|
class="tabs-chrome__background-before group-[.is-active]:fill-primary/15 dark:group-[.is-active]:fill-accent absolute bottom-0 left-[-1px] fill-transparent transition-all duration-150" |
|
|
height="7" |
|
|
height="7" |
|
|
width="7" |
|
|
width="7" |
|
|
> |
|
|
> |
|
|
<path d="M 0 7 A 7 7 0 0 0 7 0 L 7 7 Z" /> |
|
|
<path d="M 0 7 A 7 7 0 0 0 7 0 L 7 7 Z" /> |
|
|
</svg> |
|
|
</svg> |
|
|
<svg |
|
|
<svg |
|
|
class="tabs-chrome__background-after absolute bottom-0 right-[-1px] fill-transparent transition-all duration-150" |
|
|
class="tabs-chrome__background-after group-[.is-active]:fill-primary/15 dark:group-[.is-active]:fill-accent absolute bottom-0 right-[-1px] fill-transparent transition-all duration-150" |
|
|
height="7" |
|
|
height="7" |
|
|
width="7" |
|
|
width="7" |
|
|
> |
|
|
> |
|
|
@ -150,19 +150,19 @@ function scrollIntoView() { |
|
|
v-show=" |
|
|
v-show=" |
|
|
!tab.affixTab && tabsView.length > 1 && tab.closable |
|
|
!tab.affixTab && tabsView.length > 1 && tab.closable |
|
|
" |
|
|
" |
|
|
class="hover:bg-accent stroke-accent-foreground/80 hover:stroke-accent-foreground group-[.is-active]:text-primary mt-[2px] size-3 cursor-pointer rounded-full transition-all" |
|
|
class="hover:bg-accent stroke-accent-foreground/80 hover:stroke-accent-foreground dark:group-[.is-active]:text-accent-foreground group-[.is-active]:text-primary mt-[2px] size-3 cursor-pointer rounded-full transition-all" |
|
|
@click.stop="handleClose(tab.key)" |
|
|
@click.stop="handleClose(tab.key)" |
|
|
/> |
|
|
/> |
|
|
<MdiPin |
|
|
<MdiPin |
|
|
v-show="tab.affixTab && tabsView.length > 1 && tab.closable" |
|
|
v-show="tab.affixTab && tabsView.length > 1 && tab.closable" |
|
|
class="hover:bg-accent hover:stroke-accent-foreground group-[.is-active]:text-primary mt-[2px] size-3.5 cursor-pointer rounded-full transition-all" |
|
|
class="hover:bg-accent hover:stroke-accent-foreground group-[.is-active]:text-primary dark:group-[.is-active]:text-accent-foreground mt-[2px] size-3.5 cursor-pointer rounded-full transition-all" |
|
|
@click.stop="handleUnpinTab(tab)" |
|
|
@click.stop="handleUnpinTab(tab)" |
|
|
/> |
|
|
/> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<!-- tab-item-main --> |
|
|
<!-- tab-item-main --> |
|
|
<div |
|
|
<div |
|
|
class="tabs-chrome__item-main group-[.is-active]:text-primary text-accent-foreground absolute left-0 right-0 z-[2] mx-[calc(var(--gap)*2)] my-0 flex h-full items-center overflow-hidden rounded-tl-[5px] rounded-tr-[5px] pr-4 duration-150 group-hover:pr-3" |
|
|
class="tabs-chrome__item-main group-[.is-active]:text-primary dark:group-[.is-active]:text-accent-foreground text-accent-foreground absolute left-0 right-0 z-[2] mx-[calc(var(--gap)*2)] my-0 flex h-full items-center overflow-hidden rounded-tl-[5px] rounded-tr-[5px] pr-4 duration-150 group-hover:pr-3" |
|
|
> |
|
|
> |
|
|
<VbenIcon |
|
|
<VbenIcon |
|
|
v-if="showIcon" |
|
|
v-if="showIcon" |
|
|
@ -214,7 +214,7 @@ function scrollIntoView() { |
|
|
|
|
|
|
|
|
.tabs-chrome__background { |
|
|
.tabs-chrome__background { |
|
|
&-content { |
|
|
&-content { |
|
|
@apply bg-primary/10 mx-1 rounded-md pb-2; |
|
|
@apply bg-accent mx-1 rounded-md pb-2; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
&-before, |
|
|
&-before, |
|
|
@ -236,14 +236,14 @@ function scrollIntoView() { |
|
|
.tabs-chrome__background { |
|
|
.tabs-chrome__background { |
|
|
@apply opacity-100; |
|
|
@apply opacity-100; |
|
|
|
|
|
|
|
|
&-content { |
|
|
/* &-content { |
|
|
@apply bg-primary/15; |
|
|
@apply bg-accent; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
&-before, |
|
|
&-before, |
|
|
&-after { |
|
|
&-after { |
|
|
@apply fill-primary/15; |
|
|
@apply fill-heavy; |
|
|
} |
|
|
} */ |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|