Files
warehouse13/frontend/src/app/app.ts
Mondo Diaz 972bb50c64 Replace emoji icons with Lucide icons and soften link colors
Replaced emoji icons throughout the Angular app with modern Lucide icon library for a more professional and consistent look matching the original static site design.

**Icon Updates:**
- Navigation tabs: Database, Upload, Search icons
- Toolbar buttons: RefreshCw, Sparkles, Search, X icons
- Action buttons: Download, Trash2 icons
- Form buttons: Upload, Search, X icons

**Style Improvements:**
- Added softer blue color for artifact links (#93c5fd)
- Added hover effect with lighter blue (#bfdbfe)
- Added proper cursor pointer for clickable rows
- Improved icon color consistency throughout

**Dependencies:**
- Added lucide-angular (v0.545.0) for icon support
- Bundle size: 356.54 kB (raw) → 93.91 kB (gzipped)
- Minimal impact: only +7.79 kB for full icon library

All components updated with Lucide imports and icon references.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-15 12:19:36 -05:00

58 lines
1.9 KiB
TypeScript

import { Component, OnInit } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RouterOutlet, RouterLink, RouterLinkActive } from '@angular/router';
import { provideHttpClient } from '@angular/common/http';
import { ArtifactService } from './services/artifact';
import { LucideAngularModule, Database, Upload, Search } from 'lucide-angular';
@Component({
selector: 'app-root',
standalone: true,
imports: [CommonModule, RouterOutlet, RouterLink, RouterLinkActive, LucideAngularModule],
template: `
<div class="container">
<header>
<h1>◆ Obsidian</h1>
<div class="header-info">
<span class="badge">{{ deploymentMode }}</span>
<span class="badge">{{ storageBackend }}</span>
</div>
</header>
<nav class="tabs">
<a routerLink="/artifacts" routerLinkActive="active" class="tab-button">
<lucide-icon [img]="Database" [size]="16"></lucide-icon> Artifacts
</a>
<a routerLink="/upload" routerLinkActive="active" class="tab-button">
<lucide-icon [img]="Upload" [size]="16"></lucide-icon> Upload
</a>
<a routerLink="/query" routerLinkActive="active" class="tab-button">
<lucide-icon [img]="Search" [size]="16"></lucide-icon> Query
</a>
</nav>
<router-outlet></router-outlet>
</div>
`,
styleUrls: ['./app.css']
})
export class AppComponent implements OnInit {
deploymentMode: string = '';
storageBackend: string = '';
readonly Database = Database;
readonly Upload = Upload;
readonly Search = Search;
constructor(private artifactService: ArtifactService) {}
ngOnInit() {
this.artifactService.getApiInfo().subscribe({
next: (info) => {
this.deploymentMode = `Mode: ${info.deployment_mode}`;
this.storageBackend = `Storage: ${info.storage_backend}`;
},
error: (err) => console.error('Failed to load API info:', err)
});
}
}