From 845869486614df0b2037c7fa043b701e91e22e1a Mon Sep 17 00:00:00 2001 From: matt_ed Date: Wed, 22 Apr 2026 12:20:58 -0700 Subject: [PATCH] Initialize Vue 3 portfolio site with Vite, Tailwind CSS, and GSAP. Add Docker support and GitHub Actions for deployment. Include essential project files, configurations, and a Product Requirements Document (PRD). --- .dockerignore | 12 + .env.example | 2 + .github/workflows/pages.yml | 44 + .gitignore | 16 + .vscode/extensions.json | 4 + .vscode/settings.json | 7 + Dockerfile | 25 + PRD/PRDs/Bio Site PRD.md | 118 ++ README.md | 110 ++ docker-compose.yml | 12 + docker/nginx/default.conf | 22 + index.html | 38 + package-lock.json | 2436 ++++++++++++++++++++++++++ package.json | 25 + postcss.config.js | 6 + public/avatar.svg | 36 + public/favicon.svg | 8 + public/me.jpg | Bin 0 -> 79368 bytes public/og-image.svg | 14 + public/old-favicon.svg | 5 + public/resume.pdf | Bin 0 -> 91994 bytes public/robots.txt | 2 + src/App.vue | 31 + src/components/ContactFooter.vue | 57 + src/components/ExperienceSection.vue | 74 + src/components/FakeTerminal.vue | 68 + src/components/HeroSection.vue | 98 ++ src/components/InterestsSection.vue | 61 + src/components/ProjectGrid.vue | 61 + src/components/SiteHeader.vue | 47 + src/components/SkillMatrix.vue | 49 + src/components/ThemeToggle.vue | 45 + src/components/WaveBackground.vue | 47 + src/composables/useSectionReveal.ts | 42 + src/composables/useTheme.ts | 48 + src/content/experience.ts | 121 ++ src/content/projects.ts | 35 + src/content/site.ts | 11 + src/content/skills.ts | 103 ++ src/main.ts | 7 + src/style.css | 35 + src/vite-env.d.ts | 7 + tailwind.config.ts | 100 ++ tsconfig.app.json | 25 + tsconfig.json | 7 + tsconfig.node.json | 20 + vite.config.ts | 14 + 47 files changed, 4155 insertions(+) create mode 100644 .dockerignore create mode 100644 .env.example create mode 100644 .github/workflows/pages.yml create mode 100644 .gitignore create mode 100644 .vscode/extensions.json create mode 100644 .vscode/settings.json create mode 100644 Dockerfile create mode 100644 PRD/PRDs/Bio Site PRD.md create mode 100644 README.md create mode 100644 docker-compose.yml create mode 100644 docker/nginx/default.conf create mode 100644 index.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 postcss.config.js create mode 100644 public/avatar.svg create mode 100644 public/favicon.svg create mode 100644 public/me.jpg create mode 100644 public/og-image.svg create mode 100644 public/old-favicon.svg create mode 100644 public/resume.pdf create mode 100644 public/robots.txt create mode 100644 src/App.vue create mode 100644 src/components/ContactFooter.vue create mode 100644 src/components/ExperienceSection.vue create mode 100644 src/components/FakeTerminal.vue create mode 100644 src/components/HeroSection.vue create mode 100644 src/components/InterestsSection.vue create mode 100644 src/components/ProjectGrid.vue create mode 100644 src/components/SiteHeader.vue create mode 100644 src/components/SkillMatrix.vue create mode 100644 src/components/ThemeToggle.vue create mode 100644 src/components/WaveBackground.vue create mode 100644 src/composables/useSectionReveal.ts create mode 100644 src/composables/useTheme.ts create mode 100644 src/content/experience.ts create mode 100644 src/content/projects.ts create mode 100644 src/content/site.ts create mode 100644 src/content/skills.ts create mode 100644 src/main.ts create mode 100644 src/style.css create mode 100644 src/vite-env.d.ts create mode 100644 tailwind.config.ts create mode 100644 tsconfig.app.json create mode 100644 tsconfig.json create mode 100644 tsconfig.node.json create mode 100644 vite.config.ts diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..70713f8 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,12 @@ +node_modules +dist +.git +.github +*.md +!README.md +.DS_Store +.env +.env.* +!.env.example +.cursor +PRD diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..1d45256 --- /dev/null +++ b/.env.example @@ -0,0 +1,2 @@ +# Optional: GitHub Pages project site base path (include slashes, e.g. /bio/) +# VITE_BASE=/bio/ diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml new file mode 100644 index 0000000..b0b45f2 --- /dev/null +++ b/.github/workflows/pages.yml @@ -0,0 +1,44 @@ +# GitHub Pages: set repository variable or secret VITE_BASE to /repo-name/ for project sites. +# User site (username.github.io) uses default "/" — omit VITE_BASE. +name: Deploy static site to GitHub Pages + +on: + push: + branches: ["main"] + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: "pages" + cancel-in-progress: true + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: "22" + cache: "npm" + - run: npm install + - run: npm run build + env: + VITE_BASE: ${{ vars.VITE_BASE }} + - uses: actions/upload-pages-artifact@v3 + with: + path: dist + + deploy: + needs: build + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - id: deployment + uses: actions/deploy-pages@v4 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a1d1120 --- /dev/null +++ b/.gitignore @@ -0,0 +1,16 @@ +node_modules +dist +*.local +.DS_Store +.vscode/* +!.vscode/extensions.json +!.vscode/settings.json +.idea +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +.env +.env.* +!.env.example diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..8eea8ee --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,4 @@ +{ + "recommendations": ["Vue.volar"], + "unwantedRecommendations": ["octref.vetur"] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..3892134 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "typescript.tsdk": "node_modules/typescript/lib", + "typescript.enablePromptUseWorkspaceTsdk": true, + "[vue]": { + "editor.defaultFormatter": "Vue.volar" + } +} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..43eac82 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,25 @@ +# --- build --- +FROM node:22-alpine AS build + +WORKDIR /app + +# Default `/` is correct for serving at container root. Override only if you reverse-proxy under a subpath. +ARG VITE_BASE=/ +ENV VITE_BASE=${VITE_BASE} + +COPY package.json package-lock.json* ./ +RUN npm ci + +COPY . . +RUN npm run build + +# --- run --- +FROM nginx:1.27-alpine + +COPY docker/nginx/default.conf /etc/nginx/conf.d/default.conf +COPY --from=build /app/dist /usr/share/nginx/html + +EXPOSE 80 + +HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ + CMD wget -qO- http://127.0.0.1/ > /dev/null || exit 1 diff --git a/PRD/PRDs/Bio Site PRD.md b/PRD/PRDs/Bio Site PRD.md new file mode 100644 index 0000000..5497118 --- /dev/null +++ b/PRD/PRDs/Bio Site PRD.md @@ -0,0 +1,118 @@ +This **Product Requirements Document (PRD)** outlines a professional, visually dynamic portfolio site designed to showcase a high-level blend of technical leadership and hands-on engineering. + +* * * + +# PRD: Professional Portfolio & Technical Showcase + +## 1\. Project Overview + +A centralized, modern web presence that serves as a professional hub. The site must balance the authority of a **Senior Solutions Architect** with the creative technicality of a **Full-Stack Developer**, all while maintaining an aesthetic rooted in the North County San Diego coastline. + +## 2\. Visual Identity & Brand + +- **Color Palette:** "SoCal Seaside" + + - **Primary:** Deep Ocean Blues and Slate (for text and structural elements). + + - **Secondary:** Coastal Teals and Sky Blues (for accents and hover states). + + - **Highlights:** Warm Gold and Soft Sand (for CTAs, borders, or highlights—mimicking a sunset over the Pacific). + +- **Design Language:** Clean, minimalist, and high-contrast. Use glassmorphism (frosted glass) effects for cards to keep the feeling "light" and "airy." + +- **Dynamic Elements:** \* Subtle animated background (e.g., gentle CSS waves or a particle system representing "data flow"). + + - Interactive "Skill Clouds" or a dynamic terminal-style window. + +## 3\. Core Features & Functional Requirements + +### 3.1. Hero Section + +- **Objective:** Immediate impact and role identification. + +- **Content:** Name, high-level title (Software Developer | Solutions Architect), and a punchy value proposition. + +- **Visual:** A professional headshot or a high-end stylized graphic, paired with a "Quick Links" bar (LinkedIn, GitHub, Email icons). + + +### 3.2. Technical Skill Matrix + +- **Objective:** Display a broad stack at a glance. + +- **Categories:** \* **Core Tech:** (e.g., Vue.js, Python, Node.js). + + - **Infrastructure:** (e.g., Proxmox, Docker, WireGuard). + + - **AI/LLM:** (e.g., Gemini API, Ollama, RAG development). + + - **Sales Engineering:** (e.g., Technical Demos, PRD creation, Solution Architecture). + + +### 3.3. Project & Demo Gallery (The "Home Lab" Showcase) + +- **Objective:** Prove technical depth through live examples. + +- **Structure:** Grid layout of "Project Cards." + +- **Specific Items:** + + - **LoreKeeper:** Story-writing assistant (Highlighting Vue/Python/AI). + + - **Home Assistant Dashboard:** Custom Vue 3 dashboard. + + - **Test Demo Sites:** Links to external subdomains or containers hosting specific proof-of-concepts. + + +### 3.4. Experience & Education (Digital Resume) + +- **Objective:** Provide the "paper" trail. + +- **Feature:** An interactive timeline or accordion-style list of roles (notably LambdaTest and previous senior SE positions). + +- **Download:** A prominent "Download PDF Resume" button. + + +### 3.5. Interests (The Human Element) + +- **Objective:** Culture fit and personality. + +- **Content:** Brief highlights of gardening (Meyer lemons), long-distance running, and passion for storytelling/One Piece. + + +* * * + +## 4\. Technical Stack Recommendations + +- **Frontend:** **Vue 3 (Vite)** for speed and familiarity. + +- **Styling:** **Tailwind CSS** (perfect for rapid implementation of the SoCal color profile). + +- **Animations:** **Framer Motion** (for Vue) or **GSAP** for high-end scroll interactions. + +- **Hosting:** Hosted on your home lab (via **Cloudflare Tunnel** or **WireGuard**) to demonstrate infrastructure skills, or **Vercel** for 99.9% uptime. + + +## 5\. Information Architecture (Site Map) + +1. **Home (Single Page Scroll):** + + - Hero -> Skills -> Work/Projects -> Experience -> Interests -> Contact. +2. **Navigation:** + + - Sticky header with "Jump to" links. + + - Dark/Light mode toggle (styled as Sun/Moon). + + +* * * + +## 6\. Success Metrics + +- **Performance:** Lighthouse score of 90+ for Performance and SEO. + +- **Responsiveness:** Perfect rendering on mobile (for recruiters on the go) and ultrawide monitors (for engineers). + +- **Engagement:** Successful click-throughs to the GitHub and live Demo sites. + + +Would you like to dive deeper into the specific Vue components for that dynamic Home Assistant dashboard link, or perhaps refine the wording for the professional "About" section? \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..81a8d88 --- /dev/null +++ b/README.md @@ -0,0 +1,110 @@ +# Bio portfolio (static) + +Single-page portfolio aligned with [PRD/PRDs/Bio Site PRD.md](PRD/PRDs/Bio%20Site%20PRD.md): Vue 3, Vite, Tailwind, GSAP scroll reveals, static `dist/` output for free static hosts. + +## Prerequisites + +- Node.js 20+ (22 recommended for CI) + +## Local development + +```bash +npm install +npm run dev +``` + +Open the URL Vite prints (usually `http://localhost:5173`). + +## Production build + +```bash +npm run build +npm run preview +``` + +Artifacts are written to `dist/`. Deploy that folder to **Cloudflare Pages**, **Netlify**, **Vercel**, or **GitHub Pages**. + +## Docker (static site in a container) + +The app is still a **static** build; the container only runs **nginx** to serve `dist/`. No Node at runtime. + +### Build and run + +```bash +docker build -t bio-site . +docker run --rm -p 8080:80 bio-site +``` + +Open `http://localhost:8080`. + +### Compose (handy defaults) + +```bash +docker compose up -d --build +``` + +By default this maps **host `8080` → container `80`**. Override the host port: + +```bash +HOST_PORT=3000 docker compose up -d --build +``` + +### `VITE_BASE` inside Docker + +- For **http://your-server/`** (site at root): use the default **`/`** (do not set `VITE_BASE`, or set `VITE_BASE=/`). +- For **GitHub Pages–style subpaths** behind a path-based reverse proxy only: build with e.g. `docker build --build-arg VITE_BASE=/bio/ -t bio-site .` or set `VITE_BASE` in `docker-compose.yml` / `.env` next to compose. + +Mismatching `VITE_BASE` and where nginx actually serves the app is the most common reason assets return 404. + +### Hosting on your LAN (Linux server) + +1. **Install Docker** on the server (Docker Engine + Compose plugin, or Docker Desktop on a workstation acting as a host). +2. **Copy the project** (or clone the repo) onto the machine and run `docker compose up -d --build` from the repo root. +3. **Find the server’s LAN IP**, e.g. `ip -br a` or `hostname -I`. +4. From another device on the **same network**, open `http://:8080` (or whatever `HOST_PORT` you chose). +5. **Firewall**: allow the host port, e.g. with UFW: `sudo ufw allow 8080/tcp comment 'bio static'` then `sudo ufw reload` (adjust port to match `HOST_PORT`). +6. **Optional**: put **Caddy**, **Traefik**, or **nginx** on the host in front of the container for HTTPS, auth, or a single entrypoint on 443 while the container stays on an internal port. + +The container listens on **all interfaces** inside the host’s Docker publish rules; binding to LAN-only is usually done with host firewall rules or by placing a reverse proxy on the edge. + +## Customize content + +| What | Where | +|------|--------| +| Name, links, email, tagline | `src/content/site.ts` | +| Skills | `src/content/skills.ts` | +| Projects | `src/content/projects.ts` | +| Roles | `src/content/experience.ts` | +| Headshot | Replace `public/avatar.svg` with your image (WebP/AVIF or optimized JPG/PNG under `public/` — update `HeroSection.vue` if you change the filename). | +| Resume PDF | Add `public/resume.pdf` (the Experience section links to it). | +| SEO / social | Update ``, `<meta name="description">`, Open Graph/Twitter tags, and `og:url` in `index.html` to match your real domain. | + +## GitHub Pages (project site) + +If the site is served from `https://username.github.io/repo-name/`, Vite needs a **base path**: + +1. In the repo, add a variable **`VITE_BASE`** (Settings → Secrets and variables → Actions → Variables) with value `/repo-name/` (leading slash, trailing slash optional). +2. Enable GitHub Pages from **GitHub Actions** using the included workflow (Settings → Pages → Build and deployment → Source: GitHub Actions). +3. The workflow [`.github/workflows/pages.yml`](.github/workflows/pages.yml) runs `npm install`, `npm run build` with `VITE_BASE`, and publishes `dist`. + +For a **user** site (`username.github.io` with the site at the root of that repo), leave `VITE_BASE` unset so the site uses `/`. + +## Environment variable (local) + +Create `.env.production` (or `.env`) if you want to test a non-root base locally: + +```bash +VITE_BASE=/repo-name/ +``` + +Then `npm run build` and `npm run preview`. + +## Lighthouse / performance notes + +- Hero image uses `fetchpriority="high"` and explicit `width` / `height`. +- GSAP + ScrollTrigger load **on demand** per section via dynamic `import()` to keep the initial JS smaller. +- Google Fonts load from `index.html`; self-hosting fonts is an optional future optimization. + +## License + +Private / personal use — adjust as you like. diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..7bfc634 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,12 @@ +services: + web: + build: + context: . + dockerfile: Dockerfile + args: + # Leave default `/` when the site is at the root of the hostname (typical home LAN). + # Set e.g. `/bio/` only if you serve behind a path-prefix reverse proxy. + VITE_BASE: ${VITE_BASE:-/} + ports: + - "${HOST_PORT:-8080}:80" + restart: unless-stopped diff --git a/docker/nginx/default.conf b/docker/nginx/default.conf new file mode 100644 index 0000000..4096528 --- /dev/null +++ b/docker/nginx/default.conf @@ -0,0 +1,22 @@ +server { + listen 80; + listen [::]:80; + server_name _; + root /usr/share/nginx/html; + index index.html; + + # SPA / static: serve files if present, else index.html + location / { + try_files $uri $uri/ /index.html; + } + + # Cache hashed assets from Vite + location /assets/ { + add_header Cache-Control "public, max-age=31536000, immutable"; + try_files $uri =404; + } + + gzip on; + gzip_types text/css application/javascript application/json image/svg+xml; + gzip_min_length 256; +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..5640ed4 --- /dev/null +++ b/index.html @@ -0,0 +1,38 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8" /> + <link rel="icon" type="image/svg+xml" href="/favicon.svg" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <meta + name="description" + content="Software Developer and Solutions Architect — technical leadership, full-stack engineering, and solution architecture." + /> + <meta property="og:type" content="website" /> + <meta property="og:title" content="Portfolio — Developer & Solutions Architect" /> + <meta + property="og:description" + content="Software Developer and Solutions Architect — technical leadership, full-stack engineering, and solution architecture." + /> + <meta property="og:url" content="https://example.com" /> + <meta property="og:image" content="/og-image.svg" /> + <meta name="twitter:card" content="summary_large_image" /> + <meta name="twitter:title" content="Portfolio — Developer & Solutions Architect" /> + <meta + name="twitter:description" + content="Software Developer and Solutions Architect — technical leadership, full-stack engineering, and solution architecture." + /> + <meta name="twitter:image" content="/og-image.svg" /> + <title>Portfolio — Developer & Solutions Architect + + + + + +
+ + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..c89264e --- /dev/null +++ b/package-lock.json @@ -0,0 +1,2436 @@ +{ + "name": "bio-site", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "bio-site", + "version": "0.0.0", + "dependencies": { + "gsap": "^3.12.7", + "vue": "^3.5.13" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^5.2.1", + "@vue/tsconfig": "^0.7.0", + "autoprefixer": "^10.4.20", + "postcss": "^8.4.49", + "tailwindcss": "^3.4.16", + "typescript": "~5.6.3", + "vite": "^6.0.3", + "vue-tsc": "^2.1.10" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", + "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.2.tgz", + "integrity": "sha512-dnlp69efPPg6Uaw2dVqzWRfAWRnYVb1XJ8CyyhIbZeaq4CA5/mLeZ1IEt9QqQxmbdvagjLIm2ZL8BxXv5lH4Yw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.2.tgz", + "integrity": "sha512-OqZTwDRDchGRHHm/hwLOL7uVPB9aUvI0am/eQuWMNyFHf5PSEQmyEeYYheA0EPPKUO/l0uigCp+iaTjoLjVoHg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.2.tgz", + "integrity": "sha512-UwRE7CGpvSVEQS8gUMBe1uADWjNnVgP3Iusyda1nSRwNDCsRjnGc7w6El6WLQsXmZTbLZx9cecegumcitNfpmA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.2.tgz", + "integrity": "sha512-gjEtURKLCC5VXm1I+2i1u9OhxFsKAQJKTVB8WvDAHF+oZlq0GTVFOlTlO1q3AlCTE/DF32c16ESvfgqR7343/g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.2.tgz", + "integrity": "sha512-Bcl6CYDeAgE70cqZaMojOi/eK63h5Me97ZqAQoh77VPjMysA/4ORQBRGo3rRy45x4MzVlU9uZxs8Uwy7ZaKnBw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.2.tgz", + "integrity": "sha512-LU+TPda3mAE2QB0/Hp5VyeKJivpC6+tlOXd1VMoXV/YFMvk/MNk5iXeBfB4MQGRWyOYVJ01625vjkr0Az98OJQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.2.tgz", + "integrity": "sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.2.tgz", + "integrity": "sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.2.tgz", + "integrity": "sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZkxtGqXcXwO8Rg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.2.tgz", + "integrity": "sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9KiiQT/TXT1yAWxTA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.2.tgz", + "integrity": "sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.2.tgz", + "integrity": "sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.2.tgz", + "integrity": "sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.2.tgz", + "integrity": "sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.2.tgz", + "integrity": "sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.2.tgz", + "integrity": "sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.2.tgz", + "integrity": "sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.2.tgz", + "integrity": "sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE90VweJgIYQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.2.tgz", + "integrity": "sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7AnVlWQSKLTnw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.2.tgz", + "integrity": "sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.2.tgz", + "integrity": "sha512-NetAg5iO2uN7eB8zE5qrZ3CSil+7IJt4WDFLcC75Ymywq1VZVD6qJ6EvNLjZ3rEm6gB7XW5JdT60c6MN35Z85Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.2.tgz", + "integrity": "sha512-NCYhOotpgWZ5kdxCZsv6Iudx0wX8980Q/oW4pNFNihpBKsDbEA1zpkfxJGC0yugsUuyDZ7gL37dbzwhR0VI7pQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.2.tgz", + "integrity": "sha512-RXsaOqXxfoUBQoOgvmmijVxJnW2IGB0eoMO7F8FAjaj0UTywUO/luSqimWBJn04WNgUkeNhh7fs7pESXajWmkg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.2.tgz", + "integrity": "sha512-qdAzEULD+/hzObedtmV6iBpdL5TIbKVztGiK7O3/KYSf+HIzU257+MX1EXJcyIiDbMAqmbwaufcYPvyRryeZtA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.2.tgz", + "integrity": "sha512-Nd/SgG27WoA9e+/TdK74KnHz852TLa94ovOYySo/yMPuTmpckK/jIF2jSwS3g7ELSKXK13/cVdmg1Z/DaCWKxA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true + }, + "node_modules/@vitejs/plugin-vue": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz", + "integrity": "sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==", + "dev": true, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@volar/language-core": { + "version": "2.4.15", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.15.tgz", + "integrity": "sha512-3VHw+QZU0ZG9IuQmzT68IyN4hZNd9GchGPhbD9+pa8CVv7rnoOZwo7T8weIbrRmihqy3ATpdfXFnqRrfPVK6CA==", + "dev": true, + "dependencies": { + "@volar/source-map": "2.4.15" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.15", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.15.tgz", + "integrity": "sha512-CPbMWlUN6hVZJYGcU/GSoHu4EnCHiLaXI9n8c9la6RaI9W5JHX+NqG+GSQcB0JdC2FIBLdZJwGsfKyBB71VlTg==", + "dev": true + }, + "node_modules/@volar/typescript": { + "version": "2.4.15", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.15.tgz", + "integrity": "sha512-2aZ8i0cqPGjXb4BhkMsPYDkkuc2ZQ6yOpqwAuNwUoncELqoy5fRgOQtLR9gB0g902iS0NAkvpIzs27geVyVdPg==", + "dev": true, + "dependencies": { + "@volar/language-core": "2.4.15", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.32", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.32.tgz", + "integrity": "sha512-4x74Tbtqnda8s/NSD6e1Dr5p1c8HdMU5RWSjMSUzb8RTcUQqevDCxVAitcLBKT+ie3o0Dl9crc/S/opJM7qBGQ==", + "dependencies": { + "@babel/parser": "^7.29.2", + "@vue/shared": "3.5.32", + "entities": "^7.0.1", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.32", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.32.tgz", + "integrity": "sha512-ybHAu70NtiEI1fvAUz3oXZqkUYEe5J98GjMDpTGl5iHb0T15wQYLR4wE3h9xfuTNA+Cm2f4czfe8B4s+CCH57Q==", + "dependencies": { + "@vue/compiler-core": "3.5.32", + "@vue/shared": "3.5.32" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.32", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.32.tgz", + "integrity": "sha512-8UYUYo71cP/0YHMO814TRZlPuUUw3oifHuMR7Wp9SNoRSrxRQnhMLNlCeaODNn6kNTJsjFoQ/kqIj4qGvya4Xg==", + "dependencies": { + "@babel/parser": "^7.29.2", + "@vue/compiler-core": "3.5.32", + "@vue/compiler-dom": "3.5.32", + "@vue/compiler-ssr": "3.5.32", + "@vue/shared": "3.5.32", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.8", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.32", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.32.tgz", + "integrity": "sha512-Gp4gTs22T3DgRotZ8aA/6m2jMR+GMztvBXUBEUOYOcST+giyGWJ4WvFd7QLHBkzTxkfOt8IELKNdpzITLbA2rw==", + "dependencies": { + "@vue/compiler-dom": "3.5.32", + "@vue/shared": "3.5.32" + } + }, + "node_modules/@vue/compiler-vue2": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", + "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/@vue/language-core": { + "version": "2.2.12", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.2.12.tgz", + "integrity": "sha512-IsGljWbKGU1MZpBPN+BvPAdr55YPkj2nB/TBNGNC32Vy2qLG25DYu/NBN2vNtZqdRbTRjaoYrahLrToim2NanA==", + "dev": true, + "dependencies": { + "@volar/language-core": "2.4.15", + "@vue/compiler-dom": "^3.5.0", + "@vue/compiler-vue2": "^2.7.16", + "@vue/shared": "^3.5.0", + "alien-signals": "^1.0.3", + "minimatch": "^9.0.3", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.32", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.32.tgz", + "integrity": "sha512-/ORasxSGvZ6MN5gc+uE364SxFdJ0+WqVG0CENXaGW58TOCdrAW76WWaplDtECeS1qphvtBZtR+3/o1g1zL4xPQ==", + "dependencies": { + "@vue/shared": "3.5.32" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.32", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.32.tgz", + "integrity": "sha512-pDrXCejn4UpFDFmMd27AcJEbHaLemaE5o4pbb7sLk79SRIhc6/t34BQA7SGNgYtbMnvbF/HHOftYBgFJtUoJUQ==", + "dependencies": { + "@vue/reactivity": "3.5.32", + "@vue/shared": "3.5.32" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.32", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.32.tgz", + "integrity": "sha512-1CDVv7tv/IV13V8Nip1k/aaObVbWqRlVCVezTwx3K07p7Vxossp5JU1dcPNhJk3w347gonIUT9jQOGutyJrSVQ==", + "dependencies": { + "@vue/reactivity": "3.5.32", + "@vue/runtime-core": "3.5.32", + "@vue/shared": "3.5.32", + "csstype": "^3.2.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.32", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.32.tgz", + "integrity": "sha512-IOjm2+JQwRFS7W28HNuJeXQle9KdZbODFY7hFGVtnnghF51ta20EWAZJHX+zLGtsHhaU6uC9BGPV52KVpYryMQ==", + "dependencies": { + "@vue/compiler-ssr": "3.5.32", + "@vue/shared": "3.5.32" + }, + "peerDependencies": { + "vue": "3.5.32" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.32", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.32.tgz", + "integrity": "sha512-ksNyrmRQzWJJ8n3cRDuSF7zNNontuJg1YHnmWRJd2AMu8Ij2bqwiiri2lH5rHtYPZjj4STkNcgcmiQqlOjiYGg==" + }, + "node_modules/@vue/tsconfig": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.7.0.tgz", + "integrity": "sha512-ku2uNz5MaZ9IerPPUyOHzyjhXoX2kVJaVf7hL315DC17vS6IiZRmmCPfggNbU16QTvM80+uYYy3eYJB59WCtvg==", + "dev": true, + "peerDependencies": { + "typescript": "5.x", + "vue": "^3.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vue": { + "optional": true + } + } + }, + "node_modules/alien-signals": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-1.0.13.tgz", + "integrity": "sha512-OGj9yyTnJEttvzhTUWuscOvtqxq5vrhF7vL9oS0xJ2mK0ItPYP1/y+vCFebfxoEyAz0++1AIwJ5CMr+Fk3nDmg==", + "dev": true + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/autoprefixer": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.5.0.tgz", + "integrity": "sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.28.2", + "caniuse-lite": "^1.0.30001787", + "fraction.js": "^5.3.4", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.20", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.20.tgz", + "integrity": "sha512-1AaXxEPfXT+GvTBJFuy4yXVHWJBXa4OdbIebGN/wX5DlsIkU0+wzGnd2lOzokSk51d5LUmqjgBLRLlypLUqInQ==", + "dev": true, + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001788", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001788.tgz", + "integrity": "sha512-6q8HFp+lOQtcf7wBK+uEenxymVWkGKkjFpCvw5W25cmMwEDU45p1xQFBQv8JDlMMry7eNxyBaR+qxgmTUZkIRQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.5.340", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.340.tgz", + "integrity": "sha512-908qahOGocRMinT2nM3ajCEM99H4iPdv84eagPP3FfZy/1ZGeOy2CZYzjhms81ckOPCXPlW7LkY4XpxD8r1DrA==", + "dev": true + }, + "node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.12", + "@esbuild/android-arm": "0.25.12", + "@esbuild/android-arm64": "0.25.12", + "@esbuild/android-x64": "0.25.12", + "@esbuild/darwin-arm64": "0.25.12", + "@esbuild/darwin-x64": "0.25.12", + "@esbuild/freebsd-arm64": "0.25.12", + "@esbuild/freebsd-x64": "0.25.12", + "@esbuild/linux-arm": "0.25.12", + "@esbuild/linux-arm64": "0.25.12", + "@esbuild/linux-ia32": "0.25.12", + "@esbuild/linux-loong64": "0.25.12", + "@esbuild/linux-mips64el": "0.25.12", + "@esbuild/linux-ppc64": "0.25.12", + "@esbuild/linux-riscv64": "0.25.12", + "@esbuild/linux-s390x": "0.25.12", + "@esbuild/linux-x64": "0.25.12", + "@esbuild/netbsd-arm64": "0.25.12", + "@esbuild/netbsd-x64": "0.25.12", + "@esbuild/openbsd-arm64": "0.25.12", + "@esbuild/openbsd-x64": "0.25.12", + "@esbuild/openharmony-arm64": "0.25.12", + "@esbuild/sunos-x64": "0.25.12", + "@esbuild/win32-arm64": "0.25.12", + "@esbuild/win32-ia32": "0.25.12", + "@esbuild/win32-x64": "0.25.12" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fraction.js": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/gsap": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/gsap/-/gsap-3.15.0.tgz", + "integrity": "sha512-dMW4CWBTUK1AEEDeZc1g4xpPGIrSf9fJF960qbTZmN/QwZIWY5wgliS6JWl9/25fpTGJrMRtSjGtOmPnfjZB+A==" + }, + "node_modules/hasown": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz", + "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "dev": true + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.37", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.37.tgz", + "integrity": "sha512-1h5gKZCF+pO/o3Iqt5Jp7wc9rH3eJJ0+nh/CIoiRwjRxde/hAHyLPXYN4V3CqKAbiZPSeJFSWHmJsbkicta0Eg==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + }, + "node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.10.tgz", + "integrity": "sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", + "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.2.tgz", + "integrity": "sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.2", + "@rollup/rollup-android-arm64": "4.60.2", + "@rollup/rollup-darwin-arm64": "4.60.2", + "@rollup/rollup-darwin-x64": "4.60.2", + "@rollup/rollup-freebsd-arm64": "4.60.2", + "@rollup/rollup-freebsd-x64": "4.60.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.2", + "@rollup/rollup-linux-arm-musleabihf": "4.60.2", + "@rollup/rollup-linux-arm64-gnu": "4.60.2", + "@rollup/rollup-linux-arm64-musl": "4.60.2", + "@rollup/rollup-linux-loong64-gnu": "4.60.2", + "@rollup/rollup-linux-loong64-musl": "4.60.2", + "@rollup/rollup-linux-ppc64-gnu": "4.60.2", + "@rollup/rollup-linux-ppc64-musl": "4.60.2", + "@rollup/rollup-linux-riscv64-gnu": "4.60.2", + "@rollup/rollup-linux-riscv64-musl": "4.60.2", + "@rollup/rollup-linux-s390x-gnu": "4.60.2", + "@rollup/rollup-linux-x64-gnu": "4.60.2", + "@rollup/rollup-linux-x64-musl": "4.60.2", + "@rollup/rollup-openbsd-x64": "4.60.2", + "@rollup/rollup-openharmony-arm64": "4.60.2", + "@rollup/rollup-win32-arm64-msvc": "4.60.2", + "@rollup/rollup-win32-ia32-msvc": "4.60.2", + "@rollup/rollup-win32-x64-gnu": "4.60.2", + "@rollup/rollup-win32-x64-msvc": "4.60.2", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sucrase": { + "version": "3.35.1", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", + "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "tinyglobby": "^0.2.11", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", + "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", + "dev": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.7", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", + "dev": true, + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "devOptional": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/vite": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.2.tgz", + "integrity": "sha512-2N/55r4JDJ4gdrCvGgINMy+HH3iRpNIz8K6SFwVsA+JbQScLiC+clmAxBgwiSPgcG9U15QmvqCGWzMbqda5zGQ==", + "dev": true, + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/vscode-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz", + "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", + "dev": true + }, + "node_modules/vue": { + "version": "3.5.32", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.32.tgz", + "integrity": "sha512-vM4z4Q9tTafVfMAK7IVzmxg34rSzTFMyIe0UUEijUCkn9+23lj0WRfA83dg7eQZIUlgOSGrkViIaCfqSAUXsMw==", + "dependencies": { + "@vue/compiler-dom": "3.5.32", + "@vue/compiler-sfc": "3.5.32", + "@vue/runtime-dom": "3.5.32", + "@vue/server-renderer": "3.5.32", + "@vue/shared": "3.5.32" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-tsc": { + "version": "2.2.12", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.2.12.tgz", + "integrity": "sha512-P7OP77b2h/Pmk+lZdJ0YWs+5tJ6J2+uOQPo7tlBnY44QqQSPYvS0qVT4wqDJgwrZaLe47etJLLQRFia71GYITw==", + "dev": true, + "dependencies": { + "@volar/typescript": "2.4.15", + "@vue/language-core": "2.2.12" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": ">=5.0.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..2b498e8 --- /dev/null +++ b/package.json @@ -0,0 +1,25 @@ +{ + "name": "bio-site", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vue-tsc --noEmit && vite build", + "preview": "vite preview" + }, + "dependencies": { + "gsap": "^3.12.7", + "vue": "^3.5.13" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^5.2.1", + "@vue/tsconfig": "^0.7.0", + "autoprefixer": "^10.4.20", + "postcss": "^8.4.49", + "tailwindcss": "^3.4.16", + "typescript": "~5.6.3", + "vite": "^6.0.3", + "vue-tsc": "^2.1.10" + } +} diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..2aa7205 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/public/avatar.svg b/public/avatar.svg new file mode 100644 index 0000000..03771e8 --- /dev/null +++ b/public/avatar.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + Replace with photo + + diff --git a/public/favicon.svg b/public/favicon.svg new file mode 100644 index 0000000..5e3ad25 --- /dev/null +++ b/public/favicon.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/me.jpg b/public/me.jpg new file mode 100644 index 0000000000000000000000000000000000000000..61d1f739dee04eee1144ec07897aa83818e2c4f9 GIT binary patch literal 79368 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�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 aokko+5$E9N + + + + + + + + Portfolio + Developer & Solutions Architect + Vue � TypeScript � Infrastructure � AI + + + diff --git a/public/old-favicon.svg b/public/old-favicon.svg new file mode 100644 index 0000000..9ac03b1 --- /dev/null +++ b/public/old-favicon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/resume.pdf b/public/resume.pdf new file mode 100644 index 0000000000000000000000000000000000000000..787f11edcf3a177009145d339545a50666f56e73 GIT binary patch literal 91994 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

VMLsZ)p6;g)w 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�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%0DA(`;D9A6im@en0PfcX@wq$*lHgTo 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 literal 0 HcmV?d00001 diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..c2a49f4 --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Allow: / diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..7c94b1e --- /dev/null +++ b/src/App.vue @@ -0,0 +1,31 @@ + + + diff --git a/src/components/ContactFooter.vue b/src/components/ContactFooter.vue new file mode 100644 index 0000000..a2a8a53 --- /dev/null +++ b/src/components/ContactFooter.vue @@ -0,0 +1,57 @@ + + + diff --git a/src/components/ExperienceSection.vue b/src/components/ExperienceSection.vue new file mode 100644 index 0000000..ae8af3f --- /dev/null +++ b/src/components/ExperienceSection.vue @@ -0,0 +1,74 @@ + + + diff --git a/src/components/FakeTerminal.vue b/src/components/FakeTerminal.vue new file mode 100644 index 0000000..ce0e488 --- /dev/null +++ b/src/components/FakeTerminal.vue @@ -0,0 +1,68 @@ + + + diff --git a/src/components/HeroSection.vue b/src/components/HeroSection.vue new file mode 100644 index 0000000..4354cce --- /dev/null +++ b/src/components/HeroSection.vue @@ -0,0 +1,98 @@ + + + diff --git a/src/components/InterestsSection.vue b/src/components/InterestsSection.vue new file mode 100644 index 0000000..dd28383 --- /dev/null +++ b/src/components/InterestsSection.vue @@ -0,0 +1,61 @@ + + + diff --git a/src/components/ProjectGrid.vue b/src/components/ProjectGrid.vue new file mode 100644 index 0000000..9a22080 --- /dev/null +++ b/src/components/ProjectGrid.vue @@ -0,0 +1,61 @@ + + + diff --git a/src/components/SiteHeader.vue b/src/components/SiteHeader.vue new file mode 100644 index 0000000..e53f5ea --- /dev/null +++ b/src/components/SiteHeader.vue @@ -0,0 +1,47 @@ + + + diff --git a/src/components/SkillMatrix.vue b/src/components/SkillMatrix.vue new file mode 100644 index 0000000..83c960c --- /dev/null +++ b/src/components/SkillMatrix.vue @@ -0,0 +1,49 @@ + + + diff --git a/src/components/ThemeToggle.vue b/src/components/ThemeToggle.vue new file mode 100644 index 0000000..4fdf4fc --- /dev/null +++ b/src/components/ThemeToggle.vue @@ -0,0 +1,45 @@ + + + diff --git a/src/components/WaveBackground.vue b/src/components/WaveBackground.vue new file mode 100644 index 0000000..03bc7ae --- /dev/null +++ b/src/components/WaveBackground.vue @@ -0,0 +1,47 @@ + + + diff --git a/src/composables/useSectionReveal.ts b/src/composables/useSectionReveal.ts new file mode 100644 index 0000000..9a2b872 --- /dev/null +++ b/src/composables/useSectionReveal.ts @@ -0,0 +1,42 @@ +import { type Ref, onMounted, onUnmounted } from "vue"; + +type RevealTween = { + scrollTrigger?: { kill: () => void } | null; + kill: () => void; +}; + +/** + * Lazy-loaded GSAP reveal to keep initial bundle smaller. + */ +export function useSectionReveal(target: Ref) { + let tween: RevealTween | null = null; + + onMounted(async () => { + const el = target.value; + if (!el) return; + + const [{ gsap }, { default: ScrollTrigger }] = await Promise.all([ + import("gsap"), + import("gsap/ScrollTrigger"), + ]); + gsap.registerPlugin(ScrollTrigger); + + tween = gsap.from(el, { + opacity: 0, + y: 28, + duration: 0.65, + ease: "power2.out", + scrollTrigger: { + trigger: el, + start: "top 90%", + once: true, + }, + }) as RevealTween; + }); + + onUnmounted(() => { + tween?.scrollTrigger?.kill(); + tween?.kill(); + tween = null; + }); +} diff --git a/src/composables/useTheme.ts b/src/composables/useTheme.ts new file mode 100644 index 0000000..86a8259 --- /dev/null +++ b/src/composables/useTheme.ts @@ -0,0 +1,48 @@ +import { ref } from "vue"; + +const STORAGE_KEY = "bio-theme"; +const isDark = ref(false); + +function applyDarkClass(value: boolean) { + if (typeof document === "undefined") return; + const root = document.documentElement; + if (value) root.classList.add("dark"); + else root.classList.remove("dark"); +} + +function readInitial(): boolean { + if (typeof window === "undefined") return false; + try { + const stored = localStorage.getItem(STORAGE_KEY); + if (stored === "dark") return true; + if (stored === "light") return false; + } catch { + /* ignore */ + } + return window.matchMedia?.("(prefers-color-scheme: dark)")?.matches ?? false; +} + +/** Call once before mounting the app to avoid a flash of wrong theme. */ +export function initTheme() { + const dark = readInitial(); + isDark.value = dark; + applyDarkClass(dark); +} + +export function useTheme() { + function setTheme(dark: boolean) { + isDark.value = dark; + applyDarkClass(dark); + try { + localStorage.setItem(STORAGE_KEY, dark ? "dark" : "light"); + } catch { + /* ignore */ + } + } + + function toggleTheme() { + setTheme(!isDark.value); + } + + return { isDark, setTheme, toggleTheme }; +} diff --git a/src/content/experience.ts b/src/content/experience.ts new file mode 100644 index 0000000..805c131 --- /dev/null +++ b/src/content/experience.ts @@ -0,0 +1,121 @@ +export type Role = { + id: string; + company: string; + title: string; + period: string; + highlights: string[]; +}; + +// export const roles: Role[] = [ +// { +// id: "lambdatest", +// company: "LambdaTest", +// title: "Senior Solutions Engineer (example)", +// period: "20XX — Present", +// highlights: [ +// "Led technical discovery workshops and architecture reviews with enterprise teams.", +// "Built repeatable demo environments and collateral aligned to buyer journeys.", +// ], +// }, +// { +// id: "prior-se", +// company: "Previous employer", +// title: "Senior Sales Engineer", +// period: "20XX — 20XX", +// highlights: [ +// "Owned end-to-end technical sales cycles from discovery to security review.", +// "Partnered with product on roadmap feedback from the field.", +// ], +// }, +// ]; + +export const roles: Role[] = [ + { + id: "freelance", + company: "Independent Contractor / Architect", + title: "Full-Stack Developer & Project Manager", + period: "2003 — Present", + highlights: [ + "Architected and deployed end-to-end SaaS projects and mobile applications, managing the full development lifecycle. [cite: 393]", + "Led technical research into AI/ML models and defined architectural requirements for cloud-native projects. [cite: 394]", + "Managed personnel and budgets for diverse technical projects to ensure on-time delivery. [cite: 395]", + "Utilized AWS and GCP for scalable infrastructure and high-performance React/Python codebases. [cite: 396, 397]" + ], + }, + { + id: "pubnub", + company: "PubNub Inc", + title: "Senior Solutions Architect", + period: "2021 — 2025", + highlights: [ + "Served as the lead technical expert for pre-sales and post-sales engagements with enterprise and startup clients. [cite: 401]", + "Consulted on SDK usage and architectural design patterns for Fintech, MedTech, and IoT industries. [cite: 402]", + "Translated complex customer requirements into actionable product feedback for Engineering and Product teams. [cite: 404]", + "Conducted technical deep-dives and security reviews for C-level executives and engineering teams. [cite: 405]", + "Represented the company at industry trade shows to demonstrate the value of real-time communication PaaS. [cite: 301]" + ], + }, + { + id: "ebrevia", + company: "eBrevia LLC", + title: "Sales Engineer", + period: "2020 — 2021", + highlights: [ + "Secured major client accounts through technical RFP/RFI assessments and compliance documentation. [cite: 411]", + "Addressed complex security and product architecture concerns during SOC 2 compliance reviews. [cite: 412]", + "Bridged communication between clients and product teams to facilitate custom feature implementations. [cite: 413]", + "Delivered compelling demonstrations of machine learning capabilities for legal and technical stakeholders. [cite: 414]" + ], + }, + { + id: "priceline", + company: "Priceline.com LLC", + title: "Senior Software Engineer / Lead Engineer", + period: "2017 — 2019", + highlights: [ + "Directed front-end development for the company's first internationalization (i18n) and localization effort. [cite: 418]", + "Spearheaded the migration of legacy Angular applications to a modern React/Redux framework. [cite: 420]", + "Coordinated server migrations to the cloud and analyzed impacts on global system performance. [cite: 70]", + "Presented strategic findings on internationalization best practices to the CTO and technical leadership. [cite: 421]", + "Mentored junior engineers in maintaining core products and adopting lean development practices. [cite: 71, 72]" + ], + }, + { + id: "dealflicks", + company: "Dealflicks Inc.", + title: "Software/Web Developer & System Admin", + period: "2013 — 2016", + highlights: [ + "Engineered and managed a full-stack website on AWS using Python frameworks Tornado and Django. [cite: 81]", + "Developed a RESTful API in Go and an automated movie showtime scraping feeder. [cite: 83, 84]", + "Built a gift card product catalog and an automated drip email campaign system to drive engagement. [cite: 85, 98]", + "Managed cloud deployments via Fabric and configured secure VPC/VPN staging environments. [cite: 87, 88]", + "Developed a partner web portal using the Java/Scala Play Framework for theater performance metrics. [cite: 94]" + ], + }, + { + id: "canara", + company: "Canara Inc. (formerly Intellibatt)", + title: "Software & Web Developer", + period: "2012 — 2013", + highlights: [ + "Engineered real-time NOC sites for continuous alarm reporting and massive power data stream monitoring. [cite: 106, 107]", + "Built and deployed co-location servers and maintained network firewalls using pfSense. [cite: 101, 102]", + "Developed automated data collection scripts for network mini-computers monitoring power lines. [cite: 109]", + "Maintained large-scale databases and executed complex queries for cross-departmental operations. [cite: 110]", + "Resolved internal IT infrastructure issues across mailboxes, telephony, and computing systems. [cite: 103]" + ], + }, + { + id: "intrepid", + company: "Intrepid / Anonymizer", + title: "System Engineer / Web Developer", + period: "2005 — 2012", + highlights: [ + "Developed and maintained highly secure web applications focused on anonymity and information assurance. [cite: 190, 276]", + "Architected secure network infrastructures utilizing encryption standards such as AES, SSL/TLS, and RSA. [cite: 139, 198]", + "Managed and configured complex routing and firewall environments with pfSense and Juniper JUNOS. [cite: 134, 135, 202]", + "Collaborated on specialized hardware and software monitoring solutions for high-security environments. [cite: 198, 276]" + ], + } +]; \ No newline at end of file diff --git a/src/content/projects.ts b/src/content/projects.ts new file mode 100644 index 0000000..d9ce2ed --- /dev/null +++ b/src/content/projects.ts @@ -0,0 +1,35 @@ +export type Project = { + id: string; + title: string; + blurb: string; + stack: string[]; + href: string; + cta: string; +}; + +export const projects: Project[] = [ + { + id: "lorekeeper", + title: "LoreKeeper", + blurb: "Story-writing assistant combining Vue, Python, and AI workflows.", + stack: ["Vue", "Python", "AI"], + href: "#", + cta: "View project", + }, + { + id: "ha", + title: "Home Assistant Dashboard", + blurb: "Custom Vue 3 dashboard for home automation visibility and control.", + stack: ["Vue 3", "HA API"], + href: "#", + cta: "Live demo", + }, + { + id: "demos", + title: "Test Demo Sites", + blurb: "Proof-of-concepts and experiments hosted on subdomains or lab containers.", + stack: ["Containers", "Tunneling"], + href: "#", + cta: "Browse demos", + }, +]; diff --git a/src/content/site.ts b/src/content/site.ts new file mode 100644 index 0000000..a773676 --- /dev/null +++ b/src/content/site.ts @@ -0,0 +1,11 @@ +/** Replace with your public URLs and copy. */ +export const site = { + name: "Matthew Edwards", + titleLine: "Software Developer | Solutions Architect", + tagline: + "I bridge product vision and reliable systems — from developing full-stack applications and architecting scalable systems, to understanding business needs and offering solutions that meet them.", + email: "matthew.ed@gmail.com", + linkedinUrl: "https://www.linkedin.com/in/matthew-edwards-643ba95/", + githubUrl: "https://github.com/lvbronco/", + ogUrl: "https://beachho.us", +} as const; diff --git a/src/content/skills.ts b/src/content/skills.ts new file mode 100644 index 0000000..e1d0557 --- /dev/null +++ b/src/content/skills.ts @@ -0,0 +1,103 @@ +export type SkillCategory = { + id: string; + label: string; + items: string[]; +}; + +// export const skillCategories: SkillCategory[] = [ +// { +// id: "core", +// label: "Core Tech", +// items: ["Vue.js", "TypeScript", "Python", "Node.js", "REST APIs"], +// }, +// { +// id: "infra", +// label: "Infrastructure", +// items: ["Proxmox", "Docker", "WireGuard", "Linux", "CI/CD"], +// }, +// { +// id: "ai", +// label: "AI / LLM", +// items: ["Gemini API", "Ollama", "RAG patterns", "Prompt tooling"], +// }, +// { +// id: "sales", +// label: "Sales Engineering", +// items: ["Technical demos", "PRD creation", "Solution architecture", "POC delivery"], +// }, +// ]; + +export const skillCategories: SkillCategory[] = [ + { + id: "core", + label: "Core Tech", + items: [ + "Python (Async/Pydantic)", // The non-negotiable base for AI engineering in 2026 + "React & TypeScript", // Current industry standard for type-safe frontends + "i18n & Global Expansion", // Your unique enterprise differentiator + "Go (Microservices)", // High-performance backend trend + "System Design & Scalability", // Critical for Senior/Lead level assessment + "REST & GraphQL", // Modern API connectivity standards + "Java/Scala (Play Framework)", // + "Performance Optimization", // Crucial for user retention and SEO + "Unit/Integration Testing", // + "Cross-Platform Development", // + "Modern CSS/Tailwind", // + "Legacy Migration Strategy" // A key business-value skill for senior devs + ], + }, + { + id: "infra", + label: "Infrastructure", + items: [ + "Platform Engineering", // 2026 trend moving beyond basic DevOps + "AWS & GCP Cloud Native", // Core demand for cloud-first organizations + "Infrastructure as Code (IaC)", // Managing systems via code (Terraform/Ansible) + "Proxmox & Home Lab", // Your advanced self-hosted edge + "Kubernetes & Docker", // Now a "required" skill for most infra roles + "Zero-Trust Networking", // Modern security trend for distributed teams + "CI/CD & GitOps", // Automated deployment standard + "SRE & High Availability", // Merging ops and software for resilience + "Cloud Security (DevSecOps)", // Integrating security into the dev pipeline + "Monitoring (Splunk/ELK)", // + "Serverless Computing", // + "Hybrid-Cloud Orchestration" // + ], + }, + { + id: "ai", + label: "AI / LLM", + items: [ + "Agentic AI Frameworks", // Using LangChain/LangGraph for autonomous systems + "MCP (Model Context Protocol)", // The 2026 standard for connecting LLMs to tools + "RAG & Data Activation", // Efficient retrieval-augmented generation + "Prompt Engineering", // Refining model behavior + "MLOps & Model Deployment", // Operationalizing AI at scale + "Gemini & OpenAI SDKs", // Leading API platforms + "Local LLM Optimization", // Privacy and cost-focused local execution + "Structured Output Mastery", // Using Pydantic for reliable AI data + "AI Security & Ethics", // Managing bias and safety + "Vector DBs (Pinecone/Chroma)", // + "Function Calling & Tool Use", // + "AI Product Management" // Bridging the gap from model to product + ], + }, + { + id: "sales", + label: "Sales Engineering", + items: [ + "Solution Storytelling", // Translating features into business outcomes + "Technical Discovery", // Deep qualification of customer needs + "SOC 2 & Cybersecurity Reviews", // Critical for closing enterprise deals + "POC Delivery & Management", // Demonstrating value in live environments + "RFP/RFI Technical Strategy", // Winning high-stakes competitive bids + "Consultative Selling", // Acting as a trusted technical advisor + "Stakeholder Management", // Navigating complex political dynamics in accounts + "Cross-Functional Liaison", // Linking Sales, Product, and Engineering + "Public Speaking & Demos", // Trade shows and executive presentations + "API & Integration Strategy", // + "CRM & Pipeline Hygiene", // Strategic use of Salesforce + "Sales Enablement Content" // Creating guides and demos that scale + ], + }, +]; \ No newline at end of file diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..75e38b8 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,7 @@ +import { createApp } from "vue"; +import App from "./App.vue"; +import { initTheme } from "./composables/useTheme"; +import "./style.css"; + +initTheme(); +createApp(App).mount("#app"); diff --git a/src/style.css b/src/style.css new file mode 100644 index 0000000..711596c --- /dev/null +++ b/src/style.css @@ -0,0 +1,35 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + html { + scroll-behavior: smooth; + } + + body { + @apply font-sans antialiased text-slate-ink bg-sand-warm dark:bg-ocean-950 dark:text-coast-foam; + } + + ::selection { + @apply bg-coast-teal/30 text-ocean-950; + } + + .dark ::selection { + @apply bg-sunset-gold/30 text-ocean-950; + } +} + +@layer components { + .glass-card { + @apply rounded-2xl border border-white/40 bg-white/55 shadow-glass backdrop-blur-xl dark:border-white/10 dark:bg-ocean-900/50 dark:shadow-glass-dark; + } + + .section-inner { + @apply mx-auto w-full max-w-6xl px-4 sm:px-6 lg:px-8; + } + + .focus-ring { + @apply focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-coast-deep dark:focus-visible:outline-sunset-gold; + } +} diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts new file mode 100644 index 0000000..cd39087 --- /dev/null +++ b/src/vite-env.d.ts @@ -0,0 +1,7 @@ +/// + +declare module "*.vue" { + import type { DefineComponent } from "vue"; + const component: DefineComponent; + export default component; +} diff --git a/tailwind.config.ts b/tailwind.config.ts new file mode 100644 index 0000000..f14ed64 --- /dev/null +++ b/tailwind.config.ts @@ -0,0 +1,100 @@ +import type { Config } from "tailwindcss"; + +export default { + content: ["./index.html", "./src/**/*.{vue,js,ts,jsx,tsx}"], + darkMode: "class", + theme: { + extend: { + colors: { + ocean: { + // Derived from Logo Blue (#075985) + 950: "#021526", // Deep midnight base + 900: "#032d45", // Darker navy + 800: "#054161", // Deep ocean + 700: "#064e75", // Slightly darker than logo + 600: "#075985", // [LOGO MATCH: Ocean Blue] + 500: "#0ea5e9", // Bright accent + }, + slate: { + ink: "#0f172a", // Darker, cooler slate to match the new Ocean 950 + mist: "#94a3b8", // Lightened for better contrast on dark blues + }, + coast: { + teal: "#2dd4bf", // Keep for pop + deep: "#0d9488", + sky: "#38bdf8", + foam: "#E0F2FE", // [LOGO MATCH: Seafoam/Sky] + }, + sand: { + DEFAULT: "#D2B48C", // [LOGO MATCH: Sand] + warm: "#f3e1c7", // Lighter tint for backgrounds/cards + }, + sunset: { + gold: "#FB8524", // [LOGO MATCH: Sunset Gold] + amber: "#f59e0b", + }, + }, + // colors: { + // ocean: { + // 950: "#0a1628", + // 900: "#0f2137", + // 800: "#152a45", + // 700: "#1c3554", + // 600: "#244468", + // }, + // slate: { + // ink: "#1e293b", + // mist: "#64748b", + // }, + // coast: { + // teal: "#2dd4bf", + // deep: "#0d9488", + // sky: "#38bdf8", + // foam: "#7dd3fc", + // }, + // sand: { + // DEFAULT: "#e8d5b7", + // warm: "#f4e4c1", + // }, + // sunset: { + // gold: "#d4a574", + // amber: "#f59e0b", + // }, + // }, + fontFamily: { + sans: [ + "DM Sans", + "system-ui", + "-apple-system", + "Segoe UI", + "Roboto", + "sans-serif", + ], + display: ["Outfit", "DM Sans", "system-ui", "sans-serif"], + mono: ["JetBrains Mono", "ui-monospace", "monospace"], + }, + backgroundImage: { + "gradient-radial": "radial-gradient(var(--tw-gradient-stops))", + }, + boxShadow: { + glass: "0 8px 32px rgba(15, 33, 55, 0.12)", + "glass-dark": "0 8px 32px rgba(0, 0, 0, 0.35)", + }, + animation: { + wave: "wave 18s ease-in-out infinite", + float: "float 6s ease-in-out infinite", + }, + keyframes: { + wave: { + "0%, 100%": { transform: "translateX(0) scaleY(1)" }, + "50%": { transform: "translateX(-4%) scaleY(1.02)" }, + }, + float: { + "0%, 100%": { transform: "translateY(0)" }, + "50%": { transform: "translateY(-6px)" }, + }, + }, + }, + }, + plugins: [], +} satisfies Config; diff --git a/tsconfig.app.json b/tsconfig.app.json new file mode 100644 index 0000000..edd5a65 --- /dev/null +++ b/tsconfig.app.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "target": "ES2022", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2022", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "preserve", + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true, + "resolveJsonModule": true, + "isolatedModules": true, + "types": ["vite/client"] + }, + "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"] +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..1ffef60 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,7 @@ +{ + "files": [], + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ] +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..a31c1bd --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "ES2023", + "lib": ["ES2023"], + "module": "ESNext", + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "moduleDetection": "force", + "noEmit": true, + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..584e18b --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,14 @@ +import { defineConfig } from "vite"; +import vue from "@vitejs/plugin-vue"; + +function viteBase(): string { + const raw = process.env.VITE_BASE?.trim(); + if (!raw) return "/"; + return raw.endsWith("/") ? raw : `${raw}/`; +} + +// For GitHub Pages project sites: VITE_BASE=/repo-name/ (trailing slash optional) +export default defineConfig({ + plugins: [vue()], + base: viteBase(), +});