diff --git a/tools/src/app/app.component.html b/tools/src/app/app.component.html index bb9c823..1c56427 100644 --- a/tools/src/app/app.component.html +++ b/tools/src/app/app.component.html @@ -1,5 +1,7 @@ - -
- -
- \ No newline at end of file +
+ +
+ +
+ +
\ No newline at end of file diff --git a/tools/src/app/app.component.scss b/tools/src/app/app.component.scss index 0eb92c0..72a1a2b 100644 --- a/tools/src/app/app.component.scss +++ b/tools/src/app/app.component.scss @@ -1,4 +1,22 @@ .main-content { display: flex; justify-content: center; +} + +::ng-deep { + .p-panel { + border-radius: unset !important; + } + + .p-panel-header { + background: unset !important; + } + + .p-fileupload-header { + background: unset !important; + } + + .p-fileupload { + background: unset !important; + } } \ No newline at end of file diff --git a/tools/src/app/app.component.ts b/tools/src/app/app.component.ts index 638df06..94ba31d 100644 --- a/tools/src/app/app.component.ts +++ b/tools/src/app/app.component.ts @@ -16,6 +16,9 @@ export class AppComponent { title = 'tools'; constructor(private config: PrimeNGConfig) { - this.config.theme.set({ preset: Lara }); + this.config.theme.set({ + preset: Lara, + darkModeSelector: '.darkmode' + }); } } \ No newline at end of file diff --git a/tools/src/app/app.routes.ts b/tools/src/app/app.routes.ts index efeffb7..b41f564 100644 --- a/tools/src/app/app.routes.ts +++ b/tools/src/app/app.routes.ts @@ -7,7 +7,7 @@ import { TextToCronComponent } from '../tools/client-side/text-to-cron/text-to-c import { DdsToPngComponent } from '../tools/client-side/dds-to-png/dds-to-png.component'; import { ImageConverterComponent } from '../tools/server-side/image-converter/image-converter.component'; import { WordCounterComponent } from '../tools/client-side/word-counter/word-counter.component'; -import { ColorPickerComponent } from '../tools/client-side/color-picker/color-picker/color-picker.component'; +import { ColorPickerComponent } from '../tools/client-side/color-picker/color-picker.component'; export const routes: Routes = [ { diff --git a/tools/src/app/header/header.component.html b/tools/src/app/header/header.component.html index 01a3432..81ecad5 100644 --- a/tools/src/app/header/header.component.html +++ b/tools/src/app/header/header.component.html @@ -1,5 +1,5 @@ - logo + logo diff --git a/tools/src/app/header/header.component.scss b/tools/src/app/header/header.component.scss index 0111a86..bf5a2f1 100644 --- a/tools/src/app/header/header.component.scss +++ b/tools/src/app/header/header.component.scss @@ -1,3 +1,12 @@ .logotype { width: 140px; +} + +.darkMode { + filter: invert(1); +} + +::ng-deep .p-megamenu-col-12 { + flex-direction: row !important; + display: flex !important; } \ No newline at end of file diff --git a/tools/src/app/header/header.component.ts b/tools/src/app/header/header.component.ts index 8e8af42..305873e 100644 --- a/tools/src/app/header/header.component.ts +++ b/tools/src/app/header/header.component.ts @@ -8,27 +8,26 @@ import { AvatarModule } from 'primeng/avatar'; @Component({ selector: 'app-header', templateUrl: './header.component.html', - styleUrls: ['./header.component.scss'], + styleUrls: ['./header.component.scss'], standalone: true, imports: [MegaMenuModule, ButtonModule, CommonModule, AvatarModule] }) export class HeaderComponent implements OnInit { items: MegaMenuItem[] | undefined; + isDarkMode: boolean = true; ngOnInit() { + this.isDarkMode = window?.matchMedia?.('(prefers-color-scheme:dark)')?.matches; + this.items = [ { - label: 'Text Tools', - icon: 'pi pi-box', + label: 'Tools', + icon: 'pi pi-wrench', items: [ [ { + label: 'Text Tools', items: [ - { - label: 'Ascii to text', - routerLink: 'ascii-to-text', - routerLinkActiveOptions: { exact: true } - }, { label: 'Text counter', routerLink: 'text-counter', @@ -39,11 +38,6 @@ export class HeaderComponent implements OnInit { routerLink: 'guid', routerLinkActiveOptions: { exact: true } }, - { - label: 'Base64 Converter', - routerLink: 'base64-converter', - routerLinkActiveOptions: { exact: true } - }, { label: 'Jwt decoder', routerLink: 'jwt-decoder', @@ -53,14 +47,18 @@ export class HeaderComponent implements OnInit { label: 'Text to Cron Expression', routerLink: 'text-to-cron', routerLinkActiveOptions: { exact: true } - }, - { - label: 'Color picker', - routerLink: 'color-picker', - routerLinkActiveOptions: { exact: true } } ], - + }, + { + label: 'Media Tools', + items: [ + { + label: 'Color picker', + routerLink: 'color-picker', + routerLinkActiveOptions: { exact: true } + } + ] } ] ] @@ -71,6 +69,7 @@ export class HeaderComponent implements OnInit { items: [ [ { + label: 'Convert', items: [ { label: 'DDS to PNG', @@ -81,6 +80,16 @@ export class HeaderComponent implements OnInit { label: 'Image Converter', routerLink: 'image-converter', routerLinkActiveOptions: { exact: true } + }, + { + label: 'Base64 Converter', + routerLink: 'base64-converter', + routerLinkActiveOptions: { exact: true } + }, + { + label: 'Ascii to text', + routerLink: 'ascii-to-text', + routerLinkActiveOptions: { exact: true } } ] } diff --git a/tools/src/app/shared/dual-textarea/dual-textarea.component.html b/tools/src/app/shared/dual-textarea/dual-textarea.component.html index 298e863..b62efc4 100644 --- a/tools/src/app/shared/dual-textarea/dual-textarea.component.html +++ b/tools/src/app/shared/dual-textarea/dual-textarea.component.html @@ -1,24 +1,22 @@ -
- - - - - -
- -
- -
-
\ No newline at end of file + + + + + +
+ +
+ +
\ No newline at end of file diff --git a/tools/src/app/shared/dual-textarea/dual-textarea.component.scss b/tools/src/app/shared/dual-textarea/dual-textarea.component.scss index a8e3a05..dcb8e54 100644 --- a/tools/src/app/shared/dual-textarea/dual-textarea.component.scss +++ b/tools/src/app/shared/dual-textarea/dual-textarea.component.scss @@ -1,62 +1,49 @@ -:host { + +.icon { + display: flex; + flex-direction: row; + justify-content: center; + padding: 5px; + background-color: var(--primary-contrast); + + i { + transform: rotate(90deg); + } +} +.wrapper { display: flex; - justify-content: center; - margin-top: 20px; - width: 96vw; - - .icon { - display: flex; - flex-direction: row; - justify-content: center; - padding: 5px; - background-color: var(--primary-contrast); - - i { - transform: rotate(90deg); - } - } - - .card { - display: flex; - flex-direction: column; - width: 1140px; - } - - .wrapper { - display: flex; - flex-direction: column; - width: 1140px; - - .conversion { - justify-content: center; - display: flex; - align-items: center; - height: 70vh; + flex-direction: column; + width: 1140px; - p-floatlabel { - width: 30vw; - } - } - } + .conversion { + justify-content: center; + display: flex; + align-items: center; + height: 70vh; - textarea { - width: 100%; - height: 175px; - padding: 12px 20px; - box-sizing: border-box; - border-radius: 4px; - font-size: 16px; - resize: none; - background-color: var(--primary-contrast); - color: var(--text-color) - } - - - ::ng-deep .p-panel-header { - justify-content: unset !important; - - * { - margin-right: 5px; + p-floatlabel { + width: 30vw; } } -} \ No newline at end of file +} + +textarea { + width: 100%; + height: 175px; + padding: 12px 20px; + box-sizing: border-box; + border-radius: 4px; + font-size: 16px; + resize: none; + background-color: var(--primary-contrast); + color: var(--text-color) +} + + +::ng-deep .p-panel-header { +justify-content: unset !important; + +* { + margin-right: 5px; +} +} diff --git a/tools/src/app/shared/dual-textarea/dual-textarea.component.ts b/tools/src/app/shared/dual-textarea/dual-textarea.component.ts index 874cb07..065a6ef 100644 --- a/tools/src/app/shared/dual-textarea/dual-textarea.component.ts +++ b/tools/src/app/shared/dual-textarea/dual-textarea.component.ts @@ -5,6 +5,7 @@ import { FloatLabelModule } from 'primeng/floatlabel'; import { InputTextareaModule } from 'primeng/inputtextarea'; import { PanelModule } from 'primeng/panel'; import { TagModule } from 'primeng/tag'; +import { PageComponent } from '../page/page.component'; @Component({ selector: 'app-dual-textarea', @@ -17,7 +18,8 @@ import { TagModule } from 'primeng/tag'; FormsModule, PanelModule, CommonModule, - TagModule + TagModule, + PageComponent ] }) diff --git a/tools/src/app/shared/page/page.component.html b/tools/src/app/shared/page/page.component.html new file mode 100644 index 0000000..30974e0 --- /dev/null +++ b/tools/src/app/shared/page/page.component.html @@ -0,0 +1,5 @@ +
+ + + +
\ No newline at end of file diff --git a/tools/src/app/shared/page/page.component.scss b/tools/src/app/shared/page/page.component.scss new file mode 100644 index 0000000..241f65d --- /dev/null +++ b/tools/src/app/shared/page/page.component.scss @@ -0,0 +1,20 @@ +:host { + display: flex; + justify-content: center; + margin-top: 20px; + width: 96vw; + + .card { + display: flex; + flex-direction: column; + width: 1140px; + } + + ::ng-deep .p-panel-header { + justify-content: unset !important; + + * { + margin-right: 5px; + } + } +} \ No newline at end of file diff --git a/tools/src/app/shared/page/page.component.spec.ts b/tools/src/app/shared/page/page.component.spec.ts new file mode 100644 index 0000000..372ccfc --- /dev/null +++ b/tools/src/app/shared/page/page.component.spec.ts @@ -0,0 +1,28 @@ +/* tslint:disable:no-unused-variable */ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { By } from '@angular/platform-browser'; +import { DebugElement } from '@angular/core'; + +import { PageComponent } from './page.component'; + +describe('PageComponent', () => { + let component: PageComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ PageComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(PageComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/tools/src/app/shared/page/page.component.ts b/tools/src/app/shared/page/page.component.ts new file mode 100644 index 0000000..08f6e74 --- /dev/null +++ b/tools/src/app/shared/page/page.component.ts @@ -0,0 +1,13 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { PanelModule } from 'primeng/panel'; + +@Component({ + selector: 'page', + templateUrl: './page.component.html', + styleUrls: ['./page.component.scss'], + standalone: true, + imports: [PanelModule] +}) +export class PageComponent { + @Input() header: string = ''; +} diff --git a/tools/src/app/shared/upload/file-converter.component.html b/tools/src/app/shared/upload/file-converter.component.html index a9ecf61..9287be2 100644 --- a/tools/src/app/shared/upload/file-converter.component.html +++ b/tools/src/app/shared/upload/file-converter.component.html @@ -1,76 +1,74 @@ -
- - - - + + + + - - - - - - - + + - - -
Drag and drop files to here to upload.
-
+ -
- - - - Name - Format - Download - - - - - {{file.name}} - {{file.format}} - {{file.name}} - - - -
-
\ No newline at end of file + + + + +
Drag and drop files to here to upload.
+
+ + + + + + Name + Format + Download + + + + + {{file.name}} + {{file.format}} + {{file.name}} + + + + \ No newline at end of file diff --git a/tools/src/app/shared/upload/file-converter.component.scss b/tools/src/app/shared/upload/file-converter.component.scss index 06ad012..5b0a4b6 100644 --- a/tools/src/app/shared/upload/file-converter.component.scss +++ b/tools/src/app/shared/upload/file-converter.component.scss @@ -1,26 +1,13 @@ -:host { - display: flex; - justify-content: center; - margin-top: 20px; - width: 96vw; - - .card { - display: flex; - flex-direction: column; - width: 1140px; - } - - .conversion { - display: flex; - justify-content: center; - margin-top: 1rem; - } +.conversion { + display: flex; + justify-content: center; + margin-top: 1rem; +} - ::ng-deep .p-panel-header { - justify-content: unset !important; +::ng-deep .p-panel-header { + justify-content: unset !important; - * { - margin-right: 5px; - } - } + * { + margin-right: 5px; + } } \ No newline at end of file diff --git a/tools/src/app/shared/upload/file-converter.component.ts b/tools/src/app/shared/upload/file-converter.component.ts index a923ba3..51625bd 100644 --- a/tools/src/app/shared/upload/file-converter.component.ts +++ b/tools/src/app/shared/upload/file-converter.component.ts @@ -9,6 +9,7 @@ import { AutoCompleteCompleteEvent, AutoCompleteModule, AutoCompleteSelectEvent import { BadgeModule } from 'primeng/badge'; import { HttpHeaders } from '@angular/common/http'; import { TagModule } from 'primeng/tag'; +import { PageComponent } from '../page/page.component'; interface ProcessedFile { name: string; @@ -30,7 +31,8 @@ interface ProcessedFile { TableModule, AutoCompleteModule, BadgeModule, - TagModule + TagModule, + PageComponent ] }) export class FileConverterComponent implements OnInit { diff --git a/tools/src/styles.scss b/tools/src/styles.scss index ed70c4e..c90b1f5 100644 --- a/tools/src/styles.scss +++ b/tools/src/styles.scss @@ -8,4 +8,18 @@ body .p-component font-optical-sizing: auto; font-weight: 304; font-style: normal; +} + +* { + border-radius: unset !important; +} + +.p-megamenu { + background: unset !important; +} + +.p-megamenu-overlay { + background: var(--p-surface-800) !important; + border: unset !important; + border-radius: unset !important; } \ No newline at end of file diff --git a/tools/src/tools/client-side/color-picker/color-picker.component.html b/tools/src/tools/client-side/color-picker/color-picker.component.html new file mode 100644 index 0000000..3d3e29d --- /dev/null +++ b/tools/src/tools/client-side/color-picker/color-picker.component.html @@ -0,0 +1,7 @@ + +
+ + + +
+
\ No newline at end of file diff --git a/tools/src/tools/client-side/color-picker/color-picker.component.scss b/tools/src/tools/client-side/color-picker/color-picker.component.scss new file mode 100644 index 0000000..152cd4b --- /dev/null +++ b/tools/src/tools/client-side/color-picker/color-picker.component.scss @@ -0,0 +1,19 @@ +.color-picker { + display: flex; + align-items: center; + justify-content: center; + gap: 10px; +} + +.color-picker input[type="color"] { + width: 50px; + height: 50px; + border: none; + cursor: pointer; +} + +.color-picker input[type="text"] { + padding: 5px; + font-size: 16px; + width: 100px; +} \ No newline at end of file diff --git a/tools/src/tools/client-side/color-picker/color-picker/color-picker.component.spec.ts b/tools/src/tools/client-side/color-picker/color-picker.component.spec.ts similarity index 100% rename from tools/src/tools/client-side/color-picker/color-picker/color-picker.component.spec.ts rename to tools/src/tools/client-side/color-picker/color-picker.component.spec.ts diff --git a/tools/src/tools/client-side/color-picker/color-picker/color-picker.component.ts b/tools/src/tools/client-side/color-picker/color-picker.component.ts similarity index 85% rename from tools/src/tools/client-side/color-picker/color-picker/color-picker.component.ts rename to tools/src/tools/client-side/color-picker/color-picker.component.ts index e3735d8..98ceea1 100644 --- a/tools/src/tools/client-side/color-picker/color-picker/color-picker.component.ts +++ b/tools/src/tools/client-side/color-picker/color-picker.component.ts @@ -3,6 +3,7 @@ import { Component } from '@angular/core'; import { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms'; import { ButtonModule } from 'primeng/button'; import { InputTextModule } from 'primeng/inputtext'; +import { PageComponent } from '../../../app/shared/page/page.component'; @Component({ selector: 'app-color-picker', @@ -12,7 +13,8 @@ import { InputTextModule } from 'primeng/inputtext'; FormsModule, InputTextModule, ButtonModule, - ReactiveFormsModule + ReactiveFormsModule, + PageComponent ], templateUrl: './color-picker.component.html', styleUrl: './color-picker.component.scss' diff --git a/tools/src/tools/client-side/color-picker/color-picker/color-picker.component.html b/tools/src/tools/client-side/color-picker/color-picker/color-picker.component.html deleted file mode 100644 index 959ac43..0000000 --- a/tools/src/tools/client-side/color-picker/color-picker/color-picker.component.html +++ /dev/null @@ -1,5 +0,0 @@ -
- - - -
\ No newline at end of file diff --git a/tools/src/tools/client-side/color-picker/color-picker/color-picker.component.scss b/tools/src/tools/client-side/color-picker/color-picker/color-picker.component.scss deleted file mode 100644 index 179c313..0000000 --- a/tools/src/tools/client-side/color-picker/color-picker/color-picker.component.scss +++ /dev/null @@ -1,18 +0,0 @@ -.color-picker { - display: flex; - align-items: center; - gap: 10px; - } - - .color-picker input[type="color"] { - width: 50px; - height: 50px; - border: none; - cursor: pointer; - } - - .color-picker input[type="text"] { - padding: 5px; - font-size: 16px; - width: 100px; - } \ No newline at end of file diff --git a/tools/src/tools/client-side/guid/guid.component.html b/tools/src/tools/client-side/guid/guid.component.html index b61258f..8081a8d 100644 --- a/tools/src/tools/client-side/guid/guid.component.html +++ b/tools/src/tools/client-side/guid/guid.component.html @@ -1,3 +1,4 @@ +