chore(ui): retire the Building2 icon app-wide (#2235)

Founder request from the register walkthrough. Suppliers (nav, command
palette, empty state) use Truck; company and company-scoped surfaces
(active company badge, invite, home signpost, SIE preview, template
scopes, TIC workspace and its manifest) use Briefcase; the two bank
contexts use Landmark. The extension icon resolver no longer maps
Building2; the generated sector definitions follow the manifest.

Co-authored-by: Jakob Wennberg <311770904+jakobwennberg-oss@users.noreply.github.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Jakob Wennberg
2026-09-03 20:02:14 +02:00
committed by GitHub
co-authored by Jakob Wennberg Claude Fable 5.1
parent b996da60ee
commit 34b677b02c
16 changed files with 39 additions and 35 deletions
@@ -12,7 +12,7 @@ import {
DialogTitle,
DialogTrigger,
} from '@/components/ui/dialog'
import { BookOpen, Search, Building2, Users, Globe } from 'lucide-react'
import { BookOpen, Search, Users, Globe, Briefcase } from 'lucide-react'
import { TEMPLATE_CATEGORY_LABELS, SCOPE_LABELS, getTemplateScope, applyTemplate } from '@/lib/bookkeeping/template-library'
import type { BookingTemplateCategory, EntityType } from '@/types'
import type { FormLine } from '@/components/bookkeeping/JournalEntryForm'
@@ -28,7 +28,7 @@ interface Props {
const SCOPE_ICONS = {
system: Globe,
team: Users,
company: Building2,
company: Briefcase,
} as const
export default function BookingTemplatePicker({ onApply, entityType, defaultAmount }: Props) {
+2 -2
View File
@@ -8,7 +8,6 @@ import {
ArrowLeftRight,
Users,
Wallet,
Building2,
BookOpen,
ListTree,
BarChart3,
@@ -24,6 +23,7 @@ import {
ArrowRight,
Scale,
type LucideIcon,
Truck,
} from 'lucide-react'
import { cn } from '@/lib/utils'
import { useCompany } from '@/contexts/CompanyContext'
@@ -49,7 +49,7 @@ const ACTION_ENTRIES: Entry[] = [
const PAGE_ENTRIES: Entry[] = [
{ id: 'kunder', label: 'Kunder', icon: Users, href: '/customers' },
{ id: 'leverantörer', label: 'Leverantörer', icon: Building2, href: '/suppliers' },
{ id: 'leverantörer', label: 'Leverantörer', icon: Truck, href: '/suppliers' },
{ id: 'kundfakturor', label: 'Kundfakturor', icon: ReceiptText, href: '/invoices', keywords: 'fakturor fakturering invoices kundfaktura' },
{ id: 'leverantörsfakturor', label: 'Leverantörsfakturor', icon: Wallet, href: '/supplier-invoices' },
{ id: 'bokföring', label: 'Bokföring', icon: BookOpen, href: '/bookkeeping', keywords: 'verifikat journal ledger' },
+2 -2
View File
@@ -22,7 +22,6 @@ import {
Menu,
X,
HelpCircle,
Building2,
Wallet,
TrendingUp,
ClipboardCheck,
@@ -51,6 +50,7 @@ import {
ShoppingCart,
Car,
ClipboardList,
Truck,
} from 'lucide-react'
import { getBranding } from '@/lib/branding/service'
import { BrandHomeLink } from '@/components/branding/BrandHomeLink'
@@ -256,7 +256,7 @@ const navItems: NavItem[] = [
// row. Anställda is a register (you edit an employee rarely, you run
// payroll monthly), so it lives here while Löner stays in Arbeta.
{ href: '/customers', labelKey: 'customers', icon: Users, group: 'data', fold: 'register' },
{ href: '/suppliers', labelKey: 'suppliers', icon: Building2, group: 'data', fold: 'register' },
{ href: '/suppliers', labelKey: 'suppliers', icon: Truck, group: 'data', fold: 'register' },
{ href: '/articles', labelKey: 'articles', icon: Tag, group: 'data', fold: 'register' },
{ href: '/salary/employees', labelKey: 'employees', icon: Users, group: 'data', fold: 'register', employerOnly: true },
{ href: '/assets', labelKey: 'assets', icon: Package, group: 'data', fold: 'register' },
+2 -2
View File
@@ -2,7 +2,7 @@
import { useState } from 'react'
import { useTranslations } from 'next-intl'
import { ArrowUpRight, Building2, Loader2 } from 'lucide-react'
import { ArrowUpRight, Loader2, Briefcase } from 'lucide-react'
import { performCompanySwitch } from '@/lib/company/switch-client'
import { useToast } from '@/components/ui/use-toast'
@@ -39,7 +39,7 @@ export default function HomeDomainSignpost({
<div className="stagger-enter mx-auto max-w-lg pt-12">
<div className="flex flex-col items-center text-center">
<div className="mb-5 flex h-12 w-12 items-center justify-center rounded-xl bg-muted/60">
<Building2 className="h-5 w-5 text-muted-foreground" />
<Briefcase className="h-5 w-5 text-muted-foreground" />
</div>
<h1 className="font-display text-2xl leading-8 tracking-tight">
{t('title')}
@@ -17,7 +17,6 @@ import {
import { useExtensionData } from '@/lib/extensions/use-extension-data'
import { useToast } from '@/components/ui/use-toast'
import {
Building2,
CheckCircle,
XCircle,
MapPin,
@@ -29,6 +28,7 @@ import {
ShieldCheck,
Users,
Receipt,
Briefcase,
} from 'lucide-react'
import { Badge } from '@/components/ui/badge'
import Link from 'next/link'
@@ -330,7 +330,7 @@ export default function TicWorkspace({ userId }: WorkspaceComponentProps) {
<Card>
<CardHeader>
<CardTitle className="flex items-center gap-2 text-base">
<Building2 className="h-4 w-4" />
<Briefcase className="h-4 w-4" />
{/* data-ph-mask: the looked-up company name is user data */}
<span data-ph-mask="">{profile.companyName}</span>
</CardTitle>
+2 -2
View File
@@ -18,8 +18,8 @@ import {
FileText,
AlertCircle,
CheckCircle,
Building2,
HelpCircle,
Landmark,
} from 'lucide-react'
import type { BankFileFormatId } from '@/lib/import/bank-file/types'
@@ -187,7 +187,7 @@ export default function BankFileUploadStep({
{(selectedFile.size / 1024).toFixed(1)} KB
</p>
<Badge variant="secondary" className="mt-2">
<Building2 className="mr-1 h-3 w-3" />
<Landmark className="mr-1 h-3 w-3" />
{detectedFormat === 'wise_statement'
? t('bank_format_wise_statement')
: detectedFormatName || FORMAT_NAMES[detectedFormat] || detectedFormat}
+2 -2
View File
@@ -7,7 +7,6 @@ import { Button } from '@/components/ui/button'
import { Checkbox } from '@/components/ui/checkbox'
import { formatCurrency } from '@/lib/utils'
import {
Building2,
Calendar,
FileText,
CheckCircle,
@@ -16,6 +15,7 @@ import {
ArrowRight,
BarChart3,
Info,
Briefcase,
} from 'lucide-react'
import type { ImportPreview, ParseIssue } from '@/lib/import/types'
@@ -69,7 +69,7 @@ export default function SIEPreviewStep({
<Card>
<CardHeader>
<CardTitle className="flex items-center gap-2">
<Building2 className="h-5 w-5" />
<Briefcase className="h-5 w-5" />
Företagsinformation
</CardTitle>
<CardDescription>Information från SIE-filen</CardDescription>
+2 -2
View File
@@ -1,6 +1,6 @@
'use client'
import { Building2 } from 'lucide-react'
import { Briefcase } from 'lucide-react'
import { useTranslations } from 'next-intl'
import { cn } from '@/lib/utils'
import { useCompany } from '@/contexts/CompanyContext'
@@ -33,7 +33,7 @@ export function ActiveCompanyBadge({ className }: { className?: string }) {
)}
title={`${t('active_company')}: ${company.name}`}
>
<Building2 className="h-3 w-3 shrink-0" aria-hidden="true" />
<Briefcase className="h-3 w-3 shrink-0" aria-hidden="true" />
<span className="sr-only">{t('active_company')}: </span>
<span className="truncate">{company.name}</span>
</Badge>
+2 -2
View File
@@ -5,7 +5,7 @@ import { useTranslations } from 'next-intl'
import { Input } from '@/components/ui/input'
import { Badge } from '@/components/ui/badge'
import { Button } from '@/components/ui/button'
import { Search, ChevronDown, ChevronUp, AlertTriangle, Info, Building2, PenLine } from 'lucide-react'
import { Search, ChevronDown, ChevronUp, AlertTriangle, Info, PenLine, Briefcase } from 'lucide-react'
import {
getCommonTemplates,
getAdvancedTemplates,
@@ -519,7 +519,7 @@ export default function TemplatePicker({
{sortedLibraryRaw.length > 0 && (
<div>
<p className="text-xs font-medium text-muted-foreground mb-2 flex items-center gap-1.5">
<Building2 className="h-3 w-3" />
<Briefcase className="h-3 w-3" />
{t('my_templates')}
</p>
<div className="space-y-1.5">