diff --git a/.lint/.htmlhintrc b/.lint/.htmlhintrc
index 11464f9..2a3728a 100644
--- a/.lint/.htmlhintrc
+++ b/.lint/.htmlhintrc
@@ -13,7 +13,7 @@
"title-require": true,
"alt-require": true,
"doctype-html5": true,
- "id-class-value": "dash",
+ "id-class-value": false,
"style-disabled": true,
"inline-style-disabled": true,
"inline-script-disabled": true,
@@ -21,4 +21,4 @@
"id-class-ad-disabled": true,
"href-abs-or-rel": false,
"attr-unsafe-chars": true
-}
\ No newline at end of file
+}
diff --git a/.lint/.stylelintrc.json b/.lint/.stylelintrc.json
index 689703b..323fdb9 100644
--- a/.lint/.stylelintrc.json
+++ b/.lint/.stylelintrc.json
@@ -1,17 +1,13 @@
{
"extends": "stylelint-config-sass-guidelines",
- "plugins": [
- "stylelint-scss"
- ],
+ "plugins": ["stylelint-scss"],
"rules": {
"color-hex-length": "long",
"selector-pseudo-element-no-unknown": [
true,
{
- "ignorePseudoElements": [
- "ng-deep"
- ]
+ "ignorePseudoElements": ["ng-deep"]
}
]
}
-}
\ No newline at end of file
+}
diff --git a/.lintstagedrc.json b/.lintstagedrc.json
index 4c209ce..2b22c7e 100644
--- a/.lintstagedrc.json
+++ b/.lintstagedrc.json
@@ -1,4 +1,4 @@
{
"**/*.{ts,js}": "eslint --cache --fix",
"*": "prettier --cache --ignore-unknown --write"
-}
\ No newline at end of file
+}
diff --git a/.postcssrc.json b/.postcssrc.json
new file mode 100644
index 0000000..e092dc7
--- /dev/null
+++ b/.postcssrc.json
@@ -0,0 +1,5 @@
+{
+ "plugins": {
+ "@tailwindcss/postcss": {}
+ }
+}
diff --git a/.prettierignore b/.prettierignore
index be92875..0621750 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -1,4 +1,8 @@
package.json
package-lock.json
-yarn
-yarn.error.log
\ No newline at end of file
+yarn.lock
+yarn.error.log
+.github/
+.git/
+.gitignore
+.prettierignore
\ No newline at end of file
diff --git a/.prettierrc: b/.prettierrc
similarity index 98%
rename from .prettierrc:
rename to .prettierrc
index 20e0a0f..10a7901 100644
--- a/.prettierrc:
+++ b/.prettierrc
@@ -5,4 +5,4 @@
"semi": true,
"singleQuote": true,
"bracketSpacing": true
-}
\ No newline at end of file
+}
diff --git a/angular.json b/angular.json
index e65df8a..1bd85a4 100644
--- a/angular.json
+++ b/angular.json
@@ -30,7 +30,7 @@
"input": "public"
}
],
- "styles": ["src/styles.scss"]
+ "styles": ["src/tailwind.css", "src/styles.scss"]
},
"configurations": {
"production": {
diff --git a/commitlint.config.js b/commitlint.config.js
index 1e59b67..422b194 100644
--- a/commitlint.config.js
+++ b/commitlint.config.js
@@ -1 +1 @@
-module.exports = {extends: ['@commitlint/config-conventional']};
\ No newline at end of file
+module.exports = { extends: ['@commitlint/config-conventional'] };
diff --git a/eslint.config.js b/eslint.config.js
index eebc35c..229b989 100644
--- a/eslint.config.js
+++ b/eslint.config.js
@@ -1,12 +1,12 @@
// @ts-check
-const eslint = require("@eslint/js");
-const { defineConfig } = require("eslint/config");
-const tseslint = require("typescript-eslint");
-const angular = require("angular-eslint");
+const eslint = require('@eslint/js');
+const { defineConfig } = require('eslint/config');
+const tseslint = require('typescript-eslint');
+const angular = require('angular-eslint');
module.exports = defineConfig([
{
- files: ["**/*.ts"],
+ files: ['**/*.ts'],
extends: [
eslint.configs.recommended,
tseslint.configs.recommended,
@@ -15,30 +15,27 @@ module.exports = defineConfig([
],
processor: angular.processInlineTemplates,
rules: {
- "@angular-eslint/directive-selector": [
- "error",
+ '@angular-eslint/directive-selector': [
+ 'error',
{
- type: "attribute",
- prefix: "cai",
- style: "camelCase",
+ type: 'attribute',
+ prefix: 'cai',
+ style: 'camelCase',
},
],
- "@angular-eslint/component-selector": [
- "error",
+ '@angular-eslint/component-selector': [
+ 'error',
{
- type: "element",
- prefix: "cai",
- style: "kebab-case",
+ type: 'element',
+ prefix: 'cai',
+ style: 'kebab-case',
},
],
},
},
{
- files: ["**/*.html"],
- extends: [
- angular.configs.templateRecommended,
- angular.configs.templateAccessibility,
- ],
+ files: ['**/*.html'],
+ extends: [angular.configs.templateRecommended, angular.configs.templateAccessibility],
rules: {},
},
]);
diff --git a/package.json b/package.json
index 8d29c20..ee4a765 100644
--- a/package.json
+++ b/package.json
@@ -40,6 +40,7 @@
"@commitlint/config-conventional": "^21.0.0",
"@eslint/js": "^10.0.1",
"@ngx-env/builder": "^21.0.1",
+ "@tailwindcss/postcss": "^4",
"angular-eslint": "21.3.1",
"cross-env": "^10.1.0",
"eslint": "^10.0.3",
@@ -49,12 +50,14 @@
"json-server": "^1.0.0-beta.15",
"lint-staged": "^17.0.4",
"npm-run-all": "^4.1.5",
+ "postcss": "^8",
"prettier": "^3.8.3",
"stylelint": "^17.11.0",
"stylelint-config-sass-guidelines": "^13.0.0",
"stylelint-scss": "^7.0.0",
+ "tailwindcss": "^4",
"typescript": "~6.0.3",
- "typescript-eslint": "8.56.1",
+ "typescript-eslint": "8.59.2",
"vitest": "^4.0.8"
}
}
diff --git a/src/app/app.config.ts b/src/app/app.config.ts
index 2a90400..f607328 100644
--- a/src/app/app.config.ts
+++ b/src/app/app.config.ts
@@ -1,15 +1,11 @@
-import {
- ApplicationConfig,
- importProvidersFrom,
- provideBrowserGlobalErrorListeners,
-} from "@angular/core";
-import { provideRouter } from "@angular/router";
+import { ApplicationConfig, importProvidersFrom, provideBrowserGlobalErrorListeners } from '@angular/core';
+import { provideRouter } from '@angular/router';
-import { routes } from "./app.routes";
-import { provideTranslateHttpLoader } from "@ngx-translate/http-loader";
-import { provideHttpClient } from "@angular/common/http";
-import { provideTranslateService } from "@ngx-translate/core";
-import { LoggerModule, NgxLoggerLevel } from "ngx-logger";
+import { routes } from './app.routes';
+import { provideTranslateHttpLoader } from '@ngx-translate/http-loader';
+import { provideHttpClient } from '@angular/common/http';
+import { provideTranslateService } from '@ngx-translate/core';
+import { LoggerModule, NgxLoggerLevel } from 'ngx-logger';
export const appConfig: ApplicationConfig = {
providers: [
@@ -18,11 +14,11 @@ export const appConfig: ApplicationConfig = {
provideHttpClient(),
provideTranslateService({
loader: provideTranslateHttpLoader({
- prefix: "/assets/i18n/",
- suffix: ".json",
+ prefix: '/assets/i18n/',
+ suffix: '.json',
}),
- fallbackLang: "en",
- lang: import.meta.env.NG_APP_DEFAULT_LANGUAGE || "en",
+ fallbackLang: 'en',
+ lang: import.meta.env.NG_APP_DEFAULT_LANGUAGE || 'en',
}),
importProvidersFrom(LoggerModule.forRoot({ level: NgxLoggerLevel.INFO })),
],
diff --git a/src/app/app.html b/src/app/app.html
index b8e539e..f8f1c7f 100644
--- a/src/app/app.html
+++ b/src/app/app.html
@@ -1 +1,9 @@
-
{{ 'app.hello' | translate }}
+
+
+ {{ 'app.hello' | translate }}
+
+
+
+
+
+
diff --git a/src/app/app.spec.ts b/src/app/app.spec.ts
index 6c53de2..cf4e486 100644
--- a/src/app/app.spec.ts
+++ b/src/app/app.spec.ts
@@ -1,12 +1,8 @@
-import { TestBed } from "@angular/core/testing";
-import { App } from "./app";
-import {
- TranslateLoader,
- provideTranslateLoader,
- provideTranslateService,
-} from "@ngx-translate/core";
-import { of } from "rxjs";
-import en from "../../public/assets/i18n/en.json";
+import { TestBed } from '@angular/core/testing';
+import { App } from './app';
+import { TranslateLoader, provideTranslateLoader, provideTranslateService } from '@ngx-translate/core';
+import { of } from 'rxjs';
+import en from '../../public/assets/i18n/en.json';
class TestTranslateLoader extends TranslateLoader {
getTranslation() {
@@ -14,33 +10,31 @@ class TestTranslateLoader extends TranslateLoader {
}
}
-describe("App", () => {
+describe('App', () => {
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [App],
providers: [
provideTranslateService({
loader: provideTranslateLoader(TestTranslateLoader),
- fallbackLang: "en",
- lang: "en",
+ fallbackLang: 'en',
+ lang: 'en',
}),
],
}).compileComponents();
});
- it("should create the app", () => {
+ it('should create the app', () => {
const fixture = TestBed.createComponent(App);
const app = fixture.componentInstance;
expect(app).toBeTruthy();
});
- it("should render title", async () => {
+ it('should render title', async () => {
const fixture = TestBed.createComponent(App);
fixture.detectChanges();
await fixture.whenStable();
const compiled = fixture.nativeElement as HTMLElement;
- expect(compiled.querySelector("h1")?.textContent).toContain(
- "Welcome to Cortex AI Dev Kit",
- );
+ expect(compiled.querySelector('h1')?.textContent).toContain('Welcome to Cortex AI Dev Kit');
});
});
diff --git a/src/app/app.ts b/src/app/app.ts
index f50eb5f..2fa4d74 100644
--- a/src/app/app.ts
+++ b/src/app/app.ts
@@ -1,13 +1,16 @@
-import { Component, signal } from "@angular/core";
-import { RouterOutlet } from "@angular/router";
-import { TranslatePipe } from "@ngx-translate/core";
+import { Component, inject, signal } from '@angular/core';
+import { RouterOutlet } from '@angular/router';
+import { TranslatePipe } from '@ngx-translate/core';
+import { ThemeService } from './core/theme/theme.service';
+import { ThemeToggle } from './core/theme/theme-toggle';
@Component({
- selector: "cai-root",
- imports: [RouterOutlet, TranslatePipe],
- templateUrl: "./app.html",
- styleUrl: "./app.scss",
+ selector: 'cai-root',
+ imports: [RouterOutlet, TranslatePipe, ThemeToggle],
+ templateUrl: './app.html',
+ styleUrl: './app.scss',
})
export class App {
- protected readonly title = signal("cortextaidevkit-ui");
+ protected readonly title = signal('cortextaidevkit-ui');
+ protected readonly theme = inject(ThemeService);
}
diff --git a/src/app/core/theme/theme-toggle.ts b/src/app/core/theme/theme-toggle.ts
new file mode 100644
index 0000000..a217e32
--- /dev/null
+++ b/src/app/core/theme/theme-toggle.ts
@@ -0,0 +1,55 @@
+import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
+import { ThemeService } from './theme.service';
+
+@Component({
+ selector: 'cai-theme-toggle',
+ changeDetection: ChangeDetectionStrategy.OnPush,
+ template: `
+
+ `,
+})
+export class ThemeToggle {
+ protected readonly theme = inject(ThemeService);
+}
diff --git a/src/app/core/theme/theme.service.ts b/src/app/core/theme/theme.service.ts
new file mode 100644
index 0000000..5a4725e
--- /dev/null
+++ b/src/app/core/theme/theme.service.ts
@@ -0,0 +1,61 @@
+import { Injectable, PLATFORM_ID, computed, effect, inject, signal } from '@angular/core';
+import { isPlatformBrowser } from '@angular/common';
+
+export type Theme = 'light' | 'dark';
+
+const STORAGE_KEY = 'theme';
+
+@Injectable({ providedIn: 'root' })
+export class ThemeService {
+ private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));
+
+ private readonly userChosen = signal(this.readStored() !== null);
+
+ readonly theme = signal(this.resolveInitialTheme());
+
+ readonly isDark = computed(() => this.theme() === 'dark');
+
+ constructor() {
+ effect(() => {
+ const value = this.theme();
+ if (!this.isBrowser) return;
+
+ document.documentElement.classList.toggle('dark', value === 'dark');
+
+ if (this.userChosen()) {
+ try {
+ localStorage.setItem(STORAGE_KEY, value);
+ } catch {
+ // ignore storage errors (private mode, quota)
+ }
+ }
+ });
+ }
+
+ toggle(): void {
+ this.setTheme(this.theme() === 'dark' ? 'light' : 'dark');
+ }
+
+ setTheme(theme: Theme): void {
+ this.userChosen.set(true);
+ this.theme.set(theme);
+ }
+
+ private resolveInitialTheme(): Theme {
+ if (!this.isBrowser) return 'dark';
+ const stored = this.readStored();
+ if (stored === 'light' || stored === 'dark') return stored;
+ if (window.matchMedia?.('(prefers-color-scheme: dark)').matches) return 'dark';
+ if (window.matchMedia?.('(prefers-color-scheme: light)').matches) return 'light';
+ return 'dark';
+ }
+
+ private readStored(): string | null {
+ if (!this.isBrowser) return null;
+ try {
+ return localStorage.getItem(STORAGE_KEY);
+ } catch {
+ return null;
+ }
+ }
+}
diff --git a/src/index.html b/src/index.html
index df1425d..8062d26 100644
--- a/src/index.html
+++ b/src/index.html
@@ -1,13 +1,32 @@
-
-
- CortextaidevkitUi
-
-
-
-
-
-
-
+
+
+ CortextaidevkitUi
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main.ts b/src/main.ts
index 5df75f9..190f341 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -2,5 +2,4 @@ import { bootstrapApplication } from '@angular/platform-browser';
import { appConfig } from './app/app.config';
import { App } from './app/app';
-bootstrapApplication(App, appConfig)
- .catch((err) => console.error(err));
+bootstrapApplication(App, appConfig).catch((err) => console.error(err));
diff --git a/src/styles.scss b/src/styles.scss
index 90d4ee0..5f9b232 100644
--- a/src/styles.scss
+++ b/src/styles.scss
@@ -1 +1,58 @@
-/* You can add global styles to this file, and also import other style files */
+@use './tailwind.css';
+:root {
+ --background: #ffffff;
+ --surface: #f7f8f9;
+ --foreground: #1a1f23;
+ --muted: #5f6b76;
+ --border: #e5e8eb;
+ --accent: #dd0031;
+
+ color-scheme: light;
+}
+
+.dark {
+ --background: #0b0d10;
+ --surface: #15181d;
+ --foreground: #f1f3f5;
+ --muted: #9aa4ad;
+ --border: #232830;
+ --accent: #ff4081;
+
+ color-scheme: dark;
+}
+
+html,
+body {
+ height: 100%;
+}
+
+body {
+ margin: 0;
+ background-color: var(--background);
+ color: var(--foreground);
+ font-family: var(--font-sans);
+ letter-spacing: -0.005em;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ transition:
+ background-color 200ms ease,
+ color 200ms ease;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-family: var(--font-heading);
+ font-weight: 500;
+ letter-spacing: -0.01em;
+}
+
+code,
+pre,
+kbd,
+samp {
+ font-family: var(--font-mono);
+}
diff --git a/src/tailwind.css b/src/tailwind.css
new file mode 100644
index 0000000..a6e2cfc
--- /dev/null
+++ b/src/tailwind.css
@@ -0,0 +1,12 @@
+@import 'tailwindcss';
+
+@custom-variant dark (&:where(.dark, .dark *));
+
+@theme {
+ --font-sans: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
+ --font-heading: 'Inter Tight', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
+ --font-mono: 'DM Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
+
+ --color-brand: #dd0031;
+ --color-brand-soft: #ff4081;
+}
diff --git a/tsconfig.app.json b/tsconfig.app.json
index 264f459..a0dcc37 100644
--- a/tsconfig.app.json
+++ b/tsconfig.app.json
@@ -6,10 +6,6 @@
"outDir": "./out-tsc/app",
"types": []
},
- "include": [
- "src/**/*.ts"
- ],
- "exclude": [
- "src/**/*.spec.ts"
- ]
+ "include": ["src/**/*.ts"],
+ "exclude": ["src/**/*.spec.ts"]
}
diff --git a/tsconfig.spec.json b/tsconfig.spec.json
index d383706..26230b0 100644
--- a/tsconfig.spec.json
+++ b/tsconfig.spec.json
@@ -4,12 +4,7 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./out-tsc/spec",
- "types": [
- "vitest/globals"
- ]
+ "types": ["vitest/globals"]
},
- "include": [
- "src/**/*.d.ts",
- "src/**/*.spec.ts"
- ]
+ "include": ["src/**/*.d.ts", "src/**/*.spec.ts"]
}
diff --git a/yarn.lock b/yarn.lock
index ff1123e..a9550d2 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -128,6 +128,11 @@
dependencies:
"@algolia/client-common" "5.48.1"
+"@alloc/quick-lru@^5.2.0":
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30"
+ integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==
+
"@ampproject/remapping@2.3.0":
version "2.3.0"
resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4"
@@ -775,7 +780,7 @@
dependencies:
"@dotenv-run/core" "^1.3.7"
-"@emnapi/core@1.10.0":
+"@emnapi/core@1.10.0", "@emnapi/core@^1.10.0":
version "1.10.0"
resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.10.0.tgz#380ccc8f2412ea22d1d972df7f8ee23a3b9c7467"
integrity sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==
@@ -783,14 +788,14 @@
"@emnapi/wasi-threads" "1.2.1"
tslib "^2.4.0"
-"@emnapi/runtime@1.10.0":
+"@emnapi/runtime@1.10.0", "@emnapi/runtime@^1.10.0":
version "1.10.0"
resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.10.0.tgz#4b260c0d3534204e98c6110b8db1a987d26ec87c"
integrity sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==
dependencies:
tslib "^2.4.0"
-"@emnapi/wasi-threads@1.2.1":
+"@emnapi/wasi-threads@1.2.1", "@emnapi/wasi-threads@^1.2.1":
version "1.2.1"
resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz#28fed21a1ba1ce797c44a070abc94d42f3ae8548"
integrity sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==
@@ -2197,6 +2202,115 @@
postcss-value-parser "^4.2.0"
style-search "^0.1.0"
+"@tailwindcss/node@4.3.0":
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/@tailwindcss/node/-/node-4.3.0.tgz#9dc5312bf41c48658529f36021e0b466c4eb7860"
+ integrity sha512-aFb4gUhFOgdh9AXo4IzBEOzBkkAxm9VigwDJnMIYv3lcfXCJVesNfbEaBl4BNgVRyid92AmdviqwBUBRKSeY3g==
+ dependencies:
+ "@jridgewell/remapping" "^2.3.5"
+ enhanced-resolve "^5.21.0"
+ jiti "^2.6.1"
+ lightningcss "1.32.0"
+ magic-string "^0.30.21"
+ source-map-js "^1.2.1"
+ tailwindcss "4.3.0"
+
+"@tailwindcss/oxide-android-arm64@4.3.0":
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.0.tgz#e4533b6125236fe81a899cf5a82028c85244def8"
+ integrity sha512-TJPiq67tKlLuObP6RkwvVGDoxCMBVtDgKkLfa/uyj7/FyxvQwHS+UOnVrXXgbEsfUaMgiVvC4KbJnRr26ho4Ng==
+
+"@tailwindcss/oxide-darwin-arm64@4.3.0":
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.0.tgz#96b074ef64ec6c41d580063740c8d36cf5c459ce"
+ integrity sha512-oMN/WZRb+SO37BmUElEgeEWuU8E/HXRkiODxJxLe1UTHVXLrdVSgfaJV7pSlhRGMSOiXLuxTIjfsF3wYvz8cgQ==
+
+"@tailwindcss/oxide-darwin-x64@4.3.0":
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.0.tgz#0d9638d06d38684339b2dc06631966a7296bb64e"
+ integrity sha512-N6CUmu4a6bKVADfw77p+iw6Yd9Q3OBhe0veaDX+QazfuVYlQsHfDgxBrsjQ/IW+zywL8mTrNd0SdJT/zgtvMdA==
+
+"@tailwindcss/oxide-freebsd-x64@4.3.0":
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.0.tgz#efc7acd17cd38d7585c07cb938a4f1b703f79d7a"
+ integrity sha512-zDL5hBkQdH5C6MpqbK3gQAgP80tsMwSI26vjOzjJtNCMUo0lFgOItzHKBIupOZNQxt3ouPH7RPhvNhiTfCe5CQ==
+
+"@tailwindcss/oxide-linux-arm-gnueabihf@4.3.0":
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.0.tgz#e41c945e529670cd93fd6ed0c6a2880de5c40333"
+ integrity sha512-R06HdNi7A7OEoMsf6d4tjZ71RCWnZQPHj2mnotSFURjNLdBC+cIgXQ7l81CqeoiQftjf6OOblxXMInMgN2VzMA==
+
+"@tailwindcss/oxide-linux-arm64-gnu@4.3.0":
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.0.tgz#6bb608b16ba7146d61097c2f4c7ee927d1f3580a"
+ integrity sha512-qTJHELX8jetjhRQHCLilkVLmybpzNQAtaI/gaoVoidn/ufbNDbAo8KlK2J+yPoc8wQxvDxCmh/5lr8nC1+lTbg==
+
+"@tailwindcss/oxide-linux-arm64-musl@4.3.0":
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.0.tgz#1bb443aa371bb99b50cb39d4d688151fadcd8a63"
+ integrity sha512-Z6sukiQsngnWO+l39X4pPbiWT81IC+PLKF+PHxIlyZbGNb9MODfYlXEVlFvej5BOZInWX01kVyzeLvHsXhfczQ==
+
+"@tailwindcss/oxide-linux-x64-gnu@4.3.0":
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.0.tgz#5267c0bb2597426c0d2e759acb5389cde2aa71fd"
+ integrity sha512-DRNdQRpSGzRGfARVuVkxvM8Q12nh19l4BF/G7zGA1oe+9wcC6saFBHTISrpIcKzhiXtSrlSrluCfvMuledoCTQ==
+
+"@tailwindcss/oxide-linux-x64-musl@4.3.0":
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.0.tgz#fb2da97c67b218e5c7c723cb32782d55d7e4a5d5"
+ integrity sha512-Z0IADbDo8bh6I7h2IQMx601AdXBLfFpEdUotft86evd/8ZPflZe9COPO8Q1vw+pfLWIUo9zN/JGZvwuAJqduqg==
+
+"@tailwindcss/oxide-wasm32-wasi@4.3.0":
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.0.tgz#3f6538e511066d67d8683863dcaeeb16c22de849"
+ integrity sha512-HNZGOUxEmElksYR7S6sC5jTeNGpobAsy9u7Gu0AskJ8/20FR9GqebUyB+HBcU/ax6BHuiuJi+Oda4B+YX6H1yA==
+ dependencies:
+ "@emnapi/core" "^1.10.0"
+ "@emnapi/runtime" "^1.10.0"
+ "@emnapi/wasi-threads" "^1.2.1"
+ "@napi-rs/wasm-runtime" "^1.1.4"
+ "@tybys/wasm-util" "^0.10.1"
+ tslib "^2.8.1"
+
+"@tailwindcss/oxide-win32-arm64-msvc@4.3.0":
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.0.tgz#ec45fba773c76759338c05d4fe5cf42c4eea2e4e"
+ integrity sha512-Pe+RPVTi1T+qymuuRpcdvwSVZjnll/f7n8gBxMMh3xLTctMDKqpdfGimbMyioqtLhUYZxdJ9wGNhV7MKHvgZsQ==
+
+"@tailwindcss/oxide-win32-x64-msvc@4.3.0":
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.0.tgz#58cdd6e06adbe2e3160274edfcd0b0b43e17fee4"
+ integrity sha512-Mvrf2kXW/yeW/OTezZlCGOirXRcUuLIBx/5Y12BaPM7wJoryG6dfS/NJL8aBPqtTEx/Vm4T4vKzFUcKDT+TKUA==
+
+"@tailwindcss/oxide@4.3.0":
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/@tailwindcss/oxide/-/oxide-4.3.0.tgz#cc1c61e88f62c0e9f56062de3e7873acaa2159d4"
+ integrity sha512-F7HZGBeN9I0/AuuJS5PwcD8xayx5ri5GhjYUDBEVYUkexyA/giwbDNjRVrxSezE3T250OU2K/wp/ltWx3UOefg==
+ optionalDependencies:
+ "@tailwindcss/oxide-android-arm64" "4.3.0"
+ "@tailwindcss/oxide-darwin-arm64" "4.3.0"
+ "@tailwindcss/oxide-darwin-x64" "4.3.0"
+ "@tailwindcss/oxide-freebsd-x64" "4.3.0"
+ "@tailwindcss/oxide-linux-arm-gnueabihf" "4.3.0"
+ "@tailwindcss/oxide-linux-arm64-gnu" "4.3.0"
+ "@tailwindcss/oxide-linux-arm64-musl" "4.3.0"
+ "@tailwindcss/oxide-linux-x64-gnu" "4.3.0"
+ "@tailwindcss/oxide-linux-x64-musl" "4.3.0"
+ "@tailwindcss/oxide-wasm32-wasi" "4.3.0"
+ "@tailwindcss/oxide-win32-arm64-msvc" "4.3.0"
+ "@tailwindcss/oxide-win32-x64-msvc" "4.3.0"
+
+"@tailwindcss/postcss@^4":
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/@tailwindcss/postcss/-/postcss-4.3.0.tgz#58a087d8c6f06c6aa81e8a3f6c1e7282b8ee94d9"
+ integrity sha512-Jm05Tjx+9yCLGv5qw1c+84Psds8MnyrEQYCB+FFk2lgGiUjlRqdxke4mVTuYrj2xnVZqKim2Apr5ySuQRYAw/w==
+ dependencies:
+ "@alloc/quick-lru" "^5.2.0"
+ "@tailwindcss/node" "4.3.0"
+ "@tailwindcss/oxide" "4.3.0"
+ postcss "^8.5.10"
+ tailwindcss "4.3.0"
+
"@tinyhttp/accepts@2.3.0", "@tinyhttp/accepts@^2.3.0":
version "2.3.0"
resolved "https://registry.yarnpkg.com/@tinyhttp/accepts/-/accepts-2.3.0.tgz#01593d450459d12558ba3cd5502bf79202f13d81"
@@ -2391,38 +2505,29 @@
resolved "https://registry.yarnpkg.com/@types/sarif/-/sarif-2.1.7.tgz#dab4d16ba7568e9846c454a8764f33c5d98e5524"
integrity sha512-kRz0VEkJqWLf1LLVN4pT1cg1Z9wAuvI6L97V3m2f5B76Tg8d413ddvLBPTEHAZJlnn4XSvu0FkZtViCQGVyrXQ==
-"@typescript-eslint/eslint-plugin@8.56.1":
- version "8.56.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.56.1.tgz#b1ce606d87221daec571e293009675992f0aae76"
- integrity sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==
+"@typescript-eslint/eslint-plugin@8.59.2":
+ version "8.59.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.59.2.tgz#f37b2c189a0177141fe3de3b08f2a83991bfdbfa"
+ integrity sha512-j/bwmkBvHUtPNxzuWe5z6BEk3q54YRyGlBXkSsmfoih7zNrBvl5A9A98anlp/7JbyZcWIJ8KXo/3Tq/DjFLtuQ==
dependencies:
"@eslint-community/regexpp" "^4.12.2"
- "@typescript-eslint/scope-manager" "8.56.1"
- "@typescript-eslint/type-utils" "8.56.1"
- "@typescript-eslint/utils" "8.56.1"
- "@typescript-eslint/visitor-keys" "8.56.1"
+ "@typescript-eslint/scope-manager" "8.59.2"
+ "@typescript-eslint/type-utils" "8.59.2"
+ "@typescript-eslint/utils" "8.59.2"
+ "@typescript-eslint/visitor-keys" "8.59.2"
ignore "^7.0.5"
natural-compare "^1.4.0"
- ts-api-utils "^2.4.0"
-
-"@typescript-eslint/parser@8.56.1":
- version "8.56.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.56.1.tgz#21d13b3d456ffb08614c1d68bb9a4f8d9237cdc7"
- integrity sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==
- dependencies:
- "@typescript-eslint/scope-manager" "8.56.1"
- "@typescript-eslint/types" "8.56.1"
- "@typescript-eslint/typescript-estree" "8.56.1"
- "@typescript-eslint/visitor-keys" "8.56.1"
- debug "^4.4.3"
+ ts-api-utils "^2.5.0"
-"@typescript-eslint/project-service@8.56.1":
- version "8.56.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.56.1.tgz#65c8d645f028b927bfc4928593b54e2ecd809244"
- integrity sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ==
+"@typescript-eslint/parser@8.59.2":
+ version "8.59.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.59.2.tgz#e2fd0084baa5dd0c24cd789af1c72cbc3a7a1c62"
+ integrity sha512-plR3pp6D+SSUn1HM7xvSkx12/DhoHInI2YF35KAcVFNZvlC0gtrWqx7Qq1oH2Ssgi0vlFRCTbP+DZc7B9+TtsQ==
dependencies:
- "@typescript-eslint/tsconfig-utils" "^8.56.1"
- "@typescript-eslint/types" "^8.56.1"
+ "@typescript-eslint/scope-manager" "8.59.2"
+ "@typescript-eslint/types" "8.59.2"
+ "@typescript-eslint/typescript-estree" "8.59.2"
+ "@typescript-eslint/visitor-keys" "8.59.2"
debug "^4.4.3"
"@typescript-eslint/project-service@8.59.2":
@@ -2434,14 +2539,6 @@
"@typescript-eslint/types" "^8.59.2"
debug "^4.4.3"
-"@typescript-eslint/scope-manager@8.56.1":
- version "8.56.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.56.1.tgz#254df93b5789a871351335dd23e20bc164060f24"
- integrity sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==
- dependencies:
- "@typescript-eslint/types" "8.56.1"
- "@typescript-eslint/visitor-keys" "8.56.1"
-
"@typescript-eslint/scope-manager@8.59.2":
version "8.59.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.59.2.tgz#63cbd0af2e3180949d6be81122cc555bc71e736d"
@@ -2450,52 +2547,27 @@
"@typescript-eslint/types" "8.59.2"
"@typescript-eslint/visitor-keys" "8.59.2"
-"@typescript-eslint/tsconfig-utils@8.56.1":
- version "8.56.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.56.1.tgz#1afa830b0fada5865ddcabdc993b790114a879b7"
- integrity sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==
-
-"@typescript-eslint/tsconfig-utils@8.59.2", "@typescript-eslint/tsconfig-utils@^8.56.1", "@typescript-eslint/tsconfig-utils@^8.59.2":
+"@typescript-eslint/tsconfig-utils@8.59.2", "@typescript-eslint/tsconfig-utils@^8.59.2":
version "8.59.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.59.2.tgz#6e92bc412083753185a79c9f1431e78169d9232f"
integrity sha512-BKK4alN7oi4C/zv4VqHQ+uRU+lTa6JGIZ7s1juw7b3RHo9OfKB+bKX3u0iVZetdsUCBBkSbdWbarJbmN0fTeSw==
-"@typescript-eslint/type-utils@8.56.1":
- version "8.56.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.56.1.tgz#7a6c4fabf225d674644931e004302cbbdd2f2e24"
- integrity sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg==
+"@typescript-eslint/type-utils@8.59.2":
+ version "8.59.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.59.2.tgz#a60a1192a804fa472a92c41656853ac6a9ba7176"
+ integrity sha512-nhqaj1nmTdVVl/BP5omXNRGO38jn5iosis2vbdmupF2txCf8ylWT8lx+JlvMYYVqzGVKtjojUFoQ3JRWK+mfzQ==
dependencies:
- "@typescript-eslint/types" "8.56.1"
- "@typescript-eslint/typescript-estree" "8.56.1"
- "@typescript-eslint/utils" "8.56.1"
+ "@typescript-eslint/types" "8.59.2"
+ "@typescript-eslint/typescript-estree" "8.59.2"
+ "@typescript-eslint/utils" "8.59.2"
debug "^4.4.3"
- ts-api-utils "^2.4.0"
-
-"@typescript-eslint/types@8.56.1":
- version "8.56.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.56.1.tgz#975e5942bf54895291337c91b9191f6eb0632ab9"
- integrity sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==
+ ts-api-utils "^2.5.0"
-"@typescript-eslint/types@8.59.2", "@typescript-eslint/types@^8.0.0", "@typescript-eslint/types@^8.56.1", "@typescript-eslint/types@^8.59.2":
+"@typescript-eslint/types@8.59.2", "@typescript-eslint/types@^8.0.0", "@typescript-eslint/types@^8.59.2":
version "8.59.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.59.2.tgz#01caabcd7e4715c33ad5e11cab260829714d6b9c"
integrity sha512-e82GVOE8Ps3E++Egvb6Y3Dw0S10u8NkQ9KXmtRhCWJJ8kDhOJTvtMAWnFL16kB1583goCWXsr0NieKCZMs2/0Q==
-"@typescript-eslint/typescript-estree@8.56.1":
- version "8.56.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.56.1.tgz#3b9e57d8129a860c50864c42188f761bdef3eab0"
- integrity sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==
- dependencies:
- "@typescript-eslint/project-service" "8.56.1"
- "@typescript-eslint/tsconfig-utils" "8.56.1"
- "@typescript-eslint/types" "8.56.1"
- "@typescript-eslint/visitor-keys" "8.56.1"
- debug "^4.4.3"
- minimatch "^10.2.2"
- semver "^7.7.3"
- tinyglobby "^0.2.15"
- ts-api-utils "^2.4.0"
-
"@typescript-eslint/typescript-estree@8.59.2":
version "8.59.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.59.2.tgz#6a217ef65b18dbd12c718fc86a675d1d7a1414cc"
@@ -2511,17 +2583,7 @@
tinyglobby "^0.2.15"
ts-api-utils "^2.5.0"
-"@typescript-eslint/utils@8.56.1":
- version "8.56.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.56.1.tgz#5a86acaf9f1b4c4a85a42effb217f73059f6deb7"
- integrity sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA==
- dependencies:
- "@eslint-community/eslint-utils" "^4.9.1"
- "@typescript-eslint/scope-manager" "8.56.1"
- "@typescript-eslint/types" "8.56.1"
- "@typescript-eslint/typescript-estree" "8.56.1"
-
-"@typescript-eslint/utils@^8.0.0":
+"@typescript-eslint/utils@8.59.2", "@typescript-eslint/utils@^8.0.0":
version "8.59.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.59.2.tgz#ff619a6a3075f4017fa91b8610b752a8ca3366aa"
integrity sha512-Juw3EinkXqjaffxz6roowvV7GZT/kET5vSKKZT6upl5TXdWkLkYmNPXwDDL2Vkt2DPn0nODIS4egC/0AGxKo/Q==
@@ -2531,14 +2593,6 @@
"@typescript-eslint/types" "8.59.2"
"@typescript-eslint/typescript-estree" "8.59.2"
-"@typescript-eslint/visitor-keys@8.56.1":
- version "8.56.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.56.1.tgz#50e03475c33a42d123dc99e63acf1841c0231f87"
- integrity sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==
- dependencies:
- "@typescript-eslint/types" "8.56.1"
- eslint-visitor-keys "^5.0.0"
-
"@typescript-eslint/visitor-keys@8.59.2":
version "8.59.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.59.2.tgz#5ccc486913cd347883d69158836b1189a660bfe6"
@@ -3450,6 +3504,14 @@ encodeurl@^2.0.0:
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58"
integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==
+enhanced-resolve@^5.21.0:
+ version "5.21.2"
+ resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.21.2.tgz#ddbedd0c7f14c3c51adfc24f5a14d76a83395442"
+ integrity sha512-xe9vQb5kReirPUxgQrXA3ihgbCqssmTiM7cOZ+Gzu+VeGWgpV98lLZvp0dl4yriyAePcewxGUs9UpKD8PET9KQ==
+ dependencies:
+ graceful-fs "^4.2.4"
+ tapable "^2.3.3"
+
entities@^4.2.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
@@ -4189,7 +4251,7 @@ gopd@^1.0.1, gopd@^1.2.0:
resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1"
integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==
-graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.6:
+graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6:
version "4.2.11"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
@@ -4735,6 +4797,11 @@ jiti@2.6.1:
resolved "https://registry.yarnpkg.com/jiti/-/jiti-2.6.1.tgz#178ef2fc9a1a594248c20627cd820187a4d78d92"
integrity sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==
+jiti@^2.6.1:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/jiti/-/jiti-2.7.0.tgz#974228f2f4ca2bc21885a1797b45fea68e950c64"
+ integrity sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==
+
jose@^6.1.3:
version "6.2.3"
resolved "https://registry.yarnpkg.com/jose/-/jose-6.2.3.tgz#0975197ad973251221c658a3cddc4b951a250c2d"
@@ -4954,7 +5021,7 @@ lightningcss-win32-x64-msvc@1.32.0:
resolved "https://registry.yarnpkg.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz#141aa5605645064928902bb4af045fa7d9f4220a"
integrity sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==
-lightningcss@^1.32.0:
+lightningcss@1.32.0, lightningcss@^1.32.0:
version "1.32.0"
resolved "https://registry.yarnpkg.com/lightningcss/-/lightningcss-1.32.0.tgz#b85aae96486dcb1bf49a7c8571221273f4f1e4a9"
integrity sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==
@@ -5823,7 +5890,7 @@ postcss-value-parser@^4.2.0:
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
-postcss@^8.4.49, postcss@^8.5.13, postcss@^8.5.14, postcss@^8.5.6, postcss@^8.5.8:
+postcss@^8, postcss@^8.4.49, postcss@^8.5.10, postcss@^8.5.13, postcss@^8.5.14, postcss@^8.5.6, postcss@^8.5.8:
version "8.5.14"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.14.tgz#a66c2d7808fadf69ebb5b84a03f8bafd76c4919c"
integrity sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==
@@ -6750,6 +6817,16 @@ tagged-tag@^1.0.0:
resolved "https://registry.yarnpkg.com/tagged-tag/-/tagged-tag-1.0.0.tgz#a0b5917c2864cba54841495abfa3f6b13edcf4d6"
integrity sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==
+tailwindcss@4.3.0, tailwindcss@^4:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-4.3.0.tgz#0a874e044a859cf6de413f3a59e76a9bedf05264"
+ integrity sha512-y6nxMGB1nMW9R6k96e5gdIFzcfL/gTJRNaqGes1YvkLnPVXzWgbqFF2yLC0T8G774n24cx3Pe8XrKoniCOAH+Q==
+
+tapable@^2.3.3:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.3.3.tgz#5da7c9992c46038221267985ab28421a8879f160"
+ integrity sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==
+
tar@^7.4.3, tar@^7.5.4:
version "7.5.15"
resolved "https://registry.yarnpkg.com/tar/-/tar-7.5.15.tgz#afe6d1316cddf614a566e3813e42fe01aed46fee"
@@ -6835,12 +6912,12 @@ tr46@^6.0.0:
dependencies:
punycode "^2.3.1"
-ts-api-utils@^2.1.0, ts-api-utils@^2.4.0, ts-api-utils@^2.5.0:
+ts-api-utils@^2.1.0, ts-api-utils@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.5.0.tgz#4acd4a155e22734990a5ed1fe9e97f113bcb37c1"
integrity sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==
-tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0:
+tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0, tslib@^2.8.1:
version "2.8.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
@@ -6922,15 +6999,15 @@ typed-array-length@^1.0.7:
possible-typed-array-names "^1.0.0"
reflect.getprototypeof "^1.0.6"
-typescript-eslint@8.56.1:
- version "8.56.1"
- resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.56.1.tgz#15a9fcc5d2150a0d981772bb36f127a816fe103f"
- integrity sha512-U4lM6pjmBX7J5wk4szltF7I1cGBHXZopnAXCMXb3+fZ3B/0Z3hq3wS/CCUB2NZBNAExK92mCU2tEohWuwVMsDQ==
+typescript-eslint@8.59.2:
+ version "8.59.2"
+ resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.59.2.tgz#e24b4f7232e20112e40572dba162a829a738ce98"
+ integrity sha512-pJw051uomb3ZeCzGTpRb8RbEqB5Y4WWet8gl/GcTlU35BSx0PVdZ86/bqkQCyKKuraVQEK7r6kBHQXF+fBhkoQ==
dependencies:
- "@typescript-eslint/eslint-plugin" "8.56.1"
- "@typescript-eslint/parser" "8.56.1"
- "@typescript-eslint/typescript-estree" "8.56.1"
- "@typescript-eslint/utils" "8.56.1"
+ "@typescript-eslint/eslint-plugin" "8.59.2"
+ "@typescript-eslint/parser" "8.59.2"
+ "@typescript-eslint/typescript-estree" "8.59.2"
+ "@typescript-eslint/utils" "8.59.2"
typescript@~6.0.3:
version "6.0.3"