fix(design-preview): вкладки line как в ReUI — без сплошной нижней линии
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
1395e2a70b
commit
f97604c23e
3 files changed
+8
-8
No files matched your search
@@ -40,16 +40,16 @@ export function AccessEditor({
|
|||||||
</SignalAlert>
|
</SignalAlert>
|
||||||
) : null}
|
) : null}
|
||||||
<Tabs defaultValue="apps" className="min-h-0 min-w-0 flex-1">
|
<Tabs defaultValue="apps" className="min-h-0 min-w-0 flex-1">
|
||||||
<TabsList variant="line" className="h-10! w-full justify-start gap-5 overflow-x-auto border-b">
|
<TabsList variant="line" className="h-10! w-full justify-start gap-5 overflow-x-auto">
|
||||||
<TabsTrigger value="apps" className="px-1 text-sm after:-bottom-px!">
|
<TabsTrigger value="apps" className="px-1 text-sm">
|
||||||
Приложения
|
Приложения
|
||||||
</TabsTrigger>
|
</TabsTrigger>
|
||||||
{PERM_TABS.map((id) => (
|
{PERM_TABS.map((id) => (
|
||||||
<TabsTrigger key={id} value={id} className="px-1 text-sm after:-bottom-px!">
|
<TabsTrigger key={id} value={id} className="px-1 text-sm">
|
||||||
{id === 'vps' ? 'VPS Tracker' : APP_SHORT[id]}
|
{id === 'vps' ? 'VPS Tracker' : APP_SHORT[id]}
|
||||||
</TabsTrigger>
|
</TabsTrigger>
|
||||||
))}
|
))}
|
||||||
<TabsTrigger value="journal" className="px-1 text-sm after:-bottom-px!">
|
<TabsTrigger value="journal" className="px-1 text-sm">
|
||||||
Журнал
|
Журнал
|
||||||
</TabsTrigger>
|
</TabsTrigger>
|
||||||
</TabsList>
|
</TabsList>
|
||||||
|
|||||||
@@ -424,7 +424,7 @@ export function PendingChip({ mark }: { mark: 'new' | 'dirty' | 'deleted' }) {
|
|||||||
/** Вкладки страницы как на досках: линия-подчёркивание, число — мелким индексом. */
|
/** Вкладки страницы как на досках: линия-подчёркивание, число — мелким индексом. */
|
||||||
export function PageTabsList({ children }: { children: ReactNode }) {
|
export function PageTabsList({ children }: { children: ReactNode }) {
|
||||||
return (
|
return (
|
||||||
<TabsList variant="line" className="h-10! w-full justify-start gap-0.5 overflow-x-auto border-b">
|
<TabsList variant="line" className="h-10! w-full justify-start gap-0.5 overflow-x-auto">
|
||||||
{children}
|
{children}
|
||||||
</TabsList>
|
</TabsList>
|
||||||
)
|
)
|
||||||
@@ -432,7 +432,7 @@ export function PageTabsList({ children }: { children: ReactNode }) {
|
|||||||
|
|
||||||
export function PageTab({ value, label, count }: { value: string; label: string; count?: number | string }) {
|
export function PageTab({ value, label, count }: { value: string; label: string; count?: number | string }) {
|
||||||
return (
|
return (
|
||||||
<TabsTrigger value={value} className="gap-1.5 px-4 text-sm after:-bottom-px!">
|
<TabsTrigger value={value} className="gap-1.5 px-4 text-sm">
|
||||||
{label}
|
{label}
|
||||||
{count !== undefined ? <span className="text-muted-foreground font-mono text-xs font-normal">{count}</span> : null}
|
{count !== undefined ? <span className="text-muted-foreground font-mono text-xs font-normal">{count}</span> : null}
|
||||||
</TabsTrigger>
|
</TabsTrigger>
|
||||||
|
|||||||
@@ -352,9 +352,9 @@ export function PreviewSectionGrid<T extends object>({
|
|||||||
setPagination((p) => ({ ...p, pageIndex: 0 }))
|
setPagination((p) => ({ ...p, pageIndex: 0 }))
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<TabsList variant="line" aria-label="Сохранённые виды" className="h-10! w-full justify-start gap-4 overflow-x-auto border-b px-4">
|
<TabsList variant="line" aria-label="Сохранённые виды" className="h-10! w-full justify-start gap-4 overflow-x-auto px-4">
|
||||||
{views.map((v, i) => (
|
{views.map((v, i) => (
|
||||||
<TabsTrigger key={v.label} value={String(i)} className="px-1 text-[13px] after:-bottom-px!">
|
<TabsTrigger key={v.label} value={String(i)} className="px-1 text-[13px]">
|
||||||
{v.label} · {rows.filter(v.match).length}
|
{v.label} · {rows.filter(v.match).length}
|
||||||
</TabsTrigger>
|
</TabsTrigger>
|
||||||
))}
|
))}
|
||||||
|
|||||||
Reference in new issue
Block a user