improvement: logo and name svgs updated and replaced.
This commit is contained in:
@@ -12,7 +12,7 @@ import { formatToothList } from '@/components/treatment/prosthesisTypeDisplay';
|
||||
import type { LabCaseDetail } from '@/types/cases';
|
||||
import type { ProsthesisCatalogEntry } from '@/types/treatment-catalog';
|
||||
import type { FdiToothId } from '@/types/treatment';
|
||||
import { BrandWordmark, BRAND_PRIMARY_HEX } from '@/components/ui/shared/BrandWordmark';
|
||||
import { BrandLockup } from '@/components/ui/shared/BrandLockup';
|
||||
|
||||
export type CaseSheetLabels = {
|
||||
title: string;
|
||||
@@ -79,6 +79,18 @@ export function CaseSheetPrintLayout({
|
||||
lineHeight: 1.45,
|
||||
}}
|
||||
>
|
||||
<div
|
||||
style={{
|
||||
display: 'flex',
|
||||
justifyContent: 'center',
|
||||
color: '#0f172a',
|
||||
fontSize: 22,
|
||||
lineHeight: 1,
|
||||
marginBottom: 16,
|
||||
}}
|
||||
>
|
||||
<BrandLockup />
|
||||
</div>
|
||||
<header
|
||||
style={{
|
||||
display: 'flex',
|
||||
@@ -89,12 +101,7 @@ export function CaseSheetPrintLayout({
|
||||
paddingBottom: 16,
|
||||
}}
|
||||
>
|
||||
<div style={{ minWidth: 0, flex: 1 }}>
|
||||
<p style={{ ...muted, margin: 0, textTransform: 'none', letterSpacing: '0.02em' }}>
|
||||
<BrandWordmark dotColor={BRAND_PRIMARY_HEX} />
|
||||
</p>
|
||||
<h1 style={{ margin: '4px 0 0', fontSize: 24, fontWeight: 600 }}>{labels.title}</h1>
|
||||
</div>
|
||||
<h1 style={{ margin: 0, minWidth: 0, flex: 1, fontSize: 24, fontWeight: 600 }}>{labels.title}</h1>
|
||||
{labCase.shareUrl ? (
|
||||
<div
|
||||
style={{
|
||||
|
||||
24
frontend/src/components/ui/shared/BrandLockup.tsx
Normal file
24
frontend/src/components/ui/shared/BrandLockup.tsx
Normal file
@@ -0,0 +1,24 @@
|
||||
import type { CSSProperties } from 'react';
|
||||
import { BrandLogo } from '@/components/ui/shared/BrandLogo';
|
||||
import { BrandWordmark, BRAND_NAME } from '@/components/ui/shared/BrandWordmark';
|
||||
|
||||
type BrandLockupProps = {
|
||||
className?: string;
|
||||
style?: CSSProperties;
|
||||
};
|
||||
|
||||
/** Logo + wordmark. Size via font-size / text-* on this wrapper (`em` on the SVGs). */
|
||||
export function BrandLockup({ className, style }: BrandLockupProps) {
|
||||
return (
|
||||
<span
|
||||
dir="ltr"
|
||||
className={className}
|
||||
style={{ display: 'inline-flex', alignItems: 'center', gap: '0.35em', ...style }}
|
||||
role="img"
|
||||
aria-label={BRAND_NAME}
|
||||
>
|
||||
<BrandLogo decorative />
|
||||
<BrandWordmark decorative />
|
||||
</span>
|
||||
);
|
||||
}
|
||||
30
frontend/src/components/ui/shared/BrandLogo.tsx
Normal file
30
frontend/src/components/ui/shared/BrandLogo.tsx
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -21,7 +21,7 @@ import { usePendingConnectionsCount } from '@/lib/hooks/usePendingConnectionsCou
|
||||
import { useTabBadgeCounts } from '@/lib/hooks/useTabBadgeCounts';
|
||||
import { badgeCountForPath } from '@/lib/tabBadgeUtils';
|
||||
import { NavBadgePill } from '@/components/ui/shared/NavBadgePill';
|
||||
import { BrandWordmark } from '@/components/ui/shared/BrandWordmark';
|
||||
import { BrandLockup } from '@/components/ui/shared/BrandLockup';
|
||||
import {
|
||||
canViewAppointmentsTab,
|
||||
canViewCases,
|
||||
@@ -110,22 +110,24 @@ function Sidebar({ mobileOpen = false, onClose }: SidebarProps) {
|
||||
mobileOpen ? 'translate-x-0' : rtl ? 'translate-x-full lg:translate-x-0' : '-translate-x-full lg:translate-x-0'
|
||||
}`}
|
||||
>
|
||||
<div className="h-[71px] px-4 flex items-center justify-between gap-2">
|
||||
<h1 className="min-w-0 truncate">
|
||||
<BrandWordmark className="text-lg font-medium tracking-tight" />
|
||||
</h1>
|
||||
{onClose ? (
|
||||
<button
|
||||
type="button"
|
||||
className="lg:hidden inline-flex items-center justify-center h-9 w-9 rounded-[var(--radius-md)] border border-border/70 text-text-primary hover:bg-background-card/80 shrink-0"
|
||||
onClick={onClose}
|
||||
aria-label={tCommon('closeMenu')}
|
||||
>
|
||||
<X className="h-5 w-5 icon-flat" />
|
||||
</button>
|
||||
) : null}
|
||||
<div className="h-[71px] flex flex-col shrink-0">
|
||||
<div className="flex-1 min-h-0 px-4 flex items-center justify-between gap-2">
|
||||
<h1 className="flex min-w-0 items-center leading-none">
|
||||
<BrandLockup className="text-2xl text-text-primary" />
|
||||
</h1>
|
||||
{onClose ? (
|
||||
<button
|
||||
type="button"
|
||||
className="lg:hidden inline-flex items-center justify-center h-9 w-9 rounded-[var(--radius-md)] border border-border/70 text-text-primary hover:bg-background-card/80 shrink-0"
|
||||
onClick={onClose}
|
||||
aria-label={tCommon('closeMenu')}
|
||||
>
|
||||
<X className="h-5 w-5 icon-flat" />
|
||||
</button>
|
||||
) : null}
|
||||
</div>
|
||||
<div className="mx-4 border-b border-border/70" />
|
||||
</div>
|
||||
<div className="mx-4 border-b border-border/70" />
|
||||
|
||||
<nav className="flex flex-col gap-2 p-4">
|
||||
{visibleMenu.map((item) => {
|
||||
|
||||
Reference in New Issue
Block a user