Total refactoring of file structure for better and simple organization

This commit is contained in:
AdamBtech
2025-05-26 21:49:29 +02:00
parent 105c3f8ba5
commit 1461d1e1e8
98 changed files with 85 additions and 149 deletions

View File

@@ -23,7 +23,7 @@
"assets": [
{
"glob": "**/*",
"input": "public",
"input": "assets",
"output": "/"
}
],
@@ -90,7 +90,7 @@
"assets": [
{
"glob": "**/*",
"input": "public",
"input": "assets",
"output": "/"
}
],

View File

Before

Width:  |  Height:  |  Size: 231 KiB

After

Width:  |  Height:  |  Size: 231 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

Before

Width:  |  Height:  |  Size: 760 B

After

Width:  |  Height:  |  Size: 760 B

View File

Before

Width:  |  Height:  |  Size: 634 B

After

Width:  |  Height:  |  Size: 634 B

View File

@@ -1,7 +1,7 @@
import { Component } from '@angular/core';
import { RouterOutlet } from '@angular/router';
import { FooterComponent } from './layout/components/footer/footer.component';
import { HeaderComponent } from './layout/components/header/header.component';
import { FooterComponent } from './components/footer/footer.component';
import { HeaderComponent } from './components/header/header.component';
@Component({
selector: 'app-root',

View File

@@ -1,33 +1,31 @@
import { Routes } from '@angular/router';
import { HeroComponent } from './layout/components/hero/hero.component';
import { HeroComponent } from './pages/hero/hero.component';
export const routes: Routes = [
{ path: '', component: HeroComponent },
{
path: 'about',
loadComponent: () =>
import('./layout/components/about/about.component').then(
(c) => c.AboutComponent,
),
import('./pages/about/about.component').then((c) => c.AboutComponent),
},
{
path: 'contact',
loadComponent: () =>
import('./layout/components/contact/contact.component').then(
import('./pages/contact/contact.component').then(
(c) => c.ContactComponent,
),
},
{
path: 'projects',
loadComponent: () =>
import(
'./features/project-display/components/projects-list/projects-list.component'
).then((c) => c.ProjectListComponent),
import('./pages/projects/projects.component').then(
(c) => c.ProjectsComponent,
),
},
{
path: 'experience',
loadComponent: () =>
import('./layout/components/experience/experience.component').then(
import('./pages/experience/experience.component').then(
(c) => c.ExperienceComponent,
),
},

View File

@@ -1,9 +1,8 @@
import { Component } from '@angular/core';
import {FooterDisplayComponent} from '../../../features/footer-display/footer-display.component';
@Component({
selector: 'app-footer',
imports: [FooterDisplayComponent],
imports: [],
templateUrl: './footer.component.html',
styleUrl: './footer.component.css',
})

View File

@@ -1,5 +1,5 @@
import { Component } from '@angular/core';
import { NavButtonComponent } from '../../../shared/ui/button/nav-button.component';
import { NavButtonComponent } from '../../../components/button/nav-button.component';
@Component({
selector: 'app-header-nav-links',

View File

@@ -0,0 +1,18 @@
import { Component } from '@angular/core';
import { HeaderNavLinksComponent } from './header-nav-links/header-nav-links.component';
import { HeaderLogoComponent } from './header-logo/header-logo.component';
import { HeaderContactLinksComponent } from './header-contact-links/header-contact-links.component';
import { HeaderTextAnimateSectionComponent } from './header-text-animate-section/header-text-animate-section.component';
@Component({
selector: 'app-header',
imports: [
HeaderNavLinksComponent,
HeaderLogoComponent,
HeaderContactLinksComponent,
HeaderTextAnimateSectionComponent,
],
templateUrl: './header.component.html',
styleUrl: './header.component.css',
})
export class HeaderComponent {}

View File

@@ -1,16 +0,0 @@
import { Component } from '@angular/core';
import { SectionTitleComponent } from '../../shared/ui/section-title/section-title.component';
import { HoloVideoContainerComponent } from '../../shared/ui/holo-video-container/holo-video-container.component';
import { NeuralProfileTreeComponent } from './neural-profile-tree/neural-profile-tree.component';
@Component({
selector: 'app-about-display',
imports: [
SectionTitleComponent,
HoloVideoContainerComponent,
NeuralProfileTreeComponent,
],
templateUrl: './about-display.component.html',
styleUrl: './about-display.component.css',
})
export class AboutDisplayComponent {}

View File

@@ -1,10 +0,0 @@
import { Component } from '@angular/core';
import {SectionTitleComponent} from '../../shared/ui/section-title/section-title.component';
@Component({
selector: 'app-contact-display',
imports: [SectionTitleComponent],
templateUrl: './contact-display.component.html',
styleUrl: './contact-display.component.css',
})
export class ContactDisplayComponent {}

View File

@@ -1,10 +0,0 @@
import { Component } from '@angular/core';
import {SectionTitleComponent} from '../../shared/ui/section-title/section-title.component';
@Component({
selector: 'app-experience-display',
imports: [SectionTitleComponent],
templateUrl: './experience-display.component.html',
styleUrl: './experience-display.component.css',
})
export class ExperienceDisplayComponent {}

View File

@@ -1,11 +0,0 @@
import { Component } from '@angular/core';
@Component({
selector: 'app-footer-display',
imports: [],
templateUrl: './footer-display.component.html',
styleUrl: './footer-display.component.css'
})
export class FooterDisplayComponent {
}

View File

@@ -1 +0,0 @@
<app-about-display />

View File

@@ -1,10 +0,0 @@
import { Component } from '@angular/core';
import {AboutDisplayComponent} from '../../../features/about-display/about-display.component';
@Component({
selector: 'app-about',
imports: [AboutDisplayComponent],
templateUrl: './about.component.html',
styleUrl: './about.component.css',
})
export class AboutComponent {}

View File

@@ -1 +0,0 @@
<app-contact-display />

View File

@@ -1 +0,0 @@
<app-experience-display />

View File

@@ -1 +0,0 @@
<app-footer-display />

View File

@@ -1,18 +0,0 @@
import { Component } from '@angular/core';
import { HeaderNavLinksComponent } from '../../../features/header-display/header-nav-links/header-nav-links.component';
import { HeaderLogoComponent } from '../../../features/header-display/header-logo/header-logo.component';
import { HeaderContactLinksComponent } from '../../../features/header-display/header-contact-links/header-contact-links.component';
import { HeaderTextAnimateSectionComponent } from '../../../features/header-display/header-text-animate-section/header-text-animate-section.component';
@Component({
selector: 'app-header',
imports: [
HeaderNavLinksComponent,
HeaderLogoComponent,
HeaderContactLinksComponent,
HeaderTextAnimateSectionComponent,
],
templateUrl: './header.component.html',
styleUrl: './header.component.css',
})
export class HeaderComponent {}

View File

@@ -1 +0,0 @@
<app-hero-display />

View File

@@ -1,10 +0,0 @@
import { Component } from '@angular/core';
import {HeroDisplayComponent} from '../../../features/hero-display/hero-display.component';
@Component({
selector: 'app-hero',
imports: [HeroDisplayComponent],
templateUrl: './hero.component.html',
styleUrl: './hero.component.css',
})
export class HeroComponent {}

View File

@@ -1 +0,0 @@
<app-projects-list />

View File

@@ -1,12 +0,0 @@
import { Component } from '@angular/core';
import {
ProjectsListComponent
} from '../../../features/project-display/components/projects-list/projects-list.component';
@Component({
selector: 'app-projects',
imports: [ProjectsListComponent],
templateUrl: './projects.component.html',
styleUrl: './projects.component.css',
})
export class ProjectsComponent {}

View File

@@ -29,7 +29,7 @@
<div class="w-full h-full bg-nier-bg/10 border border-nier-border/50">
<app-holo-video-container
containerClasses="w-full h-full"
videoSrc="cyber_skull.mp4" />
videoSrc="video/cyber_skull.mp4"/>
</div>
</div>
</div>

View File

@@ -0,0 +1,16 @@
import { Component } from '@angular/core';
import { SectionTitleComponent } from '../../components/section-title/section-title.component';
import { HoloVideoContainerComponent } from '../../components/holo-video-container/holo-video-container.component';
import { NeuralProfileTreeComponent } from './neural-profile-tree/neural-profile-tree.component';
@Component({
selector: 'app-about',
imports: [
SectionTitleComponent,
HoloVideoContainerComponent,
NeuralProfileTreeComponent,
],
templateUrl: './about.component.html',
styleUrl: './about.component.css',
})
export class AboutComponent {}

View File

@@ -4,8 +4,6 @@ import { Component } from '@angular/core';
selector: 'app-chip-container',
imports: [],
templateUrl: './chip-container.component.html',
styleUrl: './chip-container.component.css'
styleUrl: './chip-container.component.css',
})
export class ChipContainerComponent {
}
export class ChipContainerComponent {}

View File

@@ -1,6 +1,7 @@
<div class="flex gap-6 h-auto">
<!-- Tree Component -->
<div class="bg-nier-bg border-2 border-nier-border text-nier-dark w-96 md:w-[28rem] lg:w-[32rem] font-terminal text-sm md:text-base lg:text-lg leading-relaxed p-4 md:p-6 h-auto">
<div
class="bg-nier-bg border-2 border-nier-border text-nier-dark w-96 md:w-[28rem] lg:w-[32rem] font-terminal text-sm md:text-base lg:text-lg leading-relaxed p-4 md:p-6 h-auto">
@for (node of treeData(); track node.id) {
<div
class="border-l-2 border-transparent"
@@ -31,11 +32,19 @@
{{ node.isExpanded ? '▼' : '▶' }}
} @else {
@switch (node.level) {
@case (2) { ├ }
@case (3) {
@if (isLastChild(node)) { └ } @else { ├ }
@case (2) {
}
@case (3) {
@if (isLastChild(node)) {
} @else {
}
}
@default {
+
}
@default { + }
}
}
</span>

View File

@@ -264,6 +264,7 @@ export class NeuralProfileTreeComponent {
hoverChipChild(childId: string): void {
this.hoveredNodeId.set(childId);
}
selectToolChild(childId: string): void {
// Find the node in the tree and select it
this.treeState.update((state) => {

View File

@@ -1,9 +1,9 @@
import { Component } from '@angular/core';
import {ContactDisplayComponent} from '../../../features/contact-display/contact-display.component';
import { SectionTitleComponent } from '../../components/section-title/section-title.component';
@Component({
selector: 'app-contact',
imports: [ContactDisplayComponent],
imports: [SectionTitleComponent],
templateUrl: './contact.component.html',
styleUrl: './contact.component.css',
})

View File

@@ -1,9 +1,9 @@
import { Component } from '@angular/core';
import { ExperienceDisplayComponent } from '../../../features/experience-display/experience-display.component';
import { SectionTitleComponent } from '../../components/section-title/section-title.component';
@Component({
selector: 'app-experience',
imports: [ExperienceDisplayComponent],
imports: [SectionTitleComponent],
templateUrl: './experience.component.html',
styleUrl: './experience.component.css',
})

View File

@@ -1,7 +1,7 @@
<section class="h-screen relative">
<app-holo-video-container
containerClasses="absolute inset-0 w-full h-full"
videoSrc="cyber_hands.mp4" />
videoSrc="video/cyber_hands.mp4" />
<!-- Changed from justify-center to justify-start with top padding -->
<div class="absolute inset-0 flex flex-col items-center justify-start pt-16 sm:pt-20 md:pt-24 lg:pt-28 xl:pt-32 2xl:pt-36 pointer-events-none px-4 sm:px-6 md:px-8 lg:px-12 xl:px-16 2xl:px-20">

View File

@@ -1,13 +1,13 @@
import { Component, OnInit, OnDestroy } from '@angular/core';
import { HoloVideoContainerComponent } from '../../shared/ui/holo-video-container/holo-video-container.component';
import { HoloVideoContainerComponent } from '../../components/holo-video-container/holo-video-container.component';
@Component({
selector: 'app-hero-display',
selector: 'app-hero',
imports: [HoloVideoContainerComponent],
templateUrl: './hero-display.component.html',
styleUrl: './hero-display.component.css',
templateUrl: './hero.component.html',
styleUrl: './hero.component.css',
})
export class HeroDisplayComponent implements OnInit, OnDestroy {
export class HeroComponent implements OnInit, OnDestroy {
displayText: string = '';
nameText: string = '';

View File

@@ -8,7 +8,7 @@ import {
ElementRef,
} from '@angular/core';
import { type Project } from '../../../../shared/models/project.model';
import { type Project } from '../../../shared/models/project.model';
@Component({
selector: 'app-project-card',

View File

@@ -1,17 +1,17 @@
// project-list.component.ts
import { Component, signal, computed, effect, OnInit } from '@angular/core';
import { ProjectCardComponent } from '../project-card/project-card.component';
import { SectionTitleComponent } from '../../../../shared/ui/section-title/section-title.component';
import { type Project } from '../../../../shared/models/project.model';
import { ProjectCardComponent } from './project-card/project-card.component';
import { SectionTitleComponent } from '../../components/section-title/section-title.component';
import { type Project } from '../../shared/models/project.model';
@Component({
selector: 'app-project-list',
selector: 'app-projects',
standalone: true,
imports: [ProjectCardComponent, SectionTitleComponent],
templateUrl: './projects-list.component.html',
styleUrl: './projects-list.component.css',
templateUrl: './projects.component.html',
styleUrl: './projects.component.css',
})
export class ProjectListComponent implements OnInit {
export class ProjectsComponent implements OnInit {
// Signals
projects = signal<Project[]>([]);
selectedProject = signal<Project | null>(null);