From 95ee3873199e42767669e6ffa97795175f02ed1d Mon Sep 17 00:00:00 2001 From: BootySaturn Date: Sat, 20 Jun 2026 10:45:56 -0400 Subject: [PATCH 1/2] chore: scaffold Next.js project + phased-workflow docs First real commit of the perspective-room redesign: Next.js + TypeScript config, ESLint/PostCSS, package manifests, and the phased-workflow docs (plan, phase 1 file, decision log ADRs 0001-0006, handoffs). Removes the old standalone HTML portfolio. Co-Authored-By: Claude Opus 4.8 --- .claude/launch.json | 11 + .gitignore | 13 + AGENTS.md | 5 + CLAUDE.md | 30 + ...sco Cardenas - Portfolio (standalone).html | 184 - README.md | 57 +- docs/00_plan.md | 82 + docs/01_room-shell-and-camera.md | 143 + .../handoffs/2026-06-18_v1-polish-and-ship.md | 48 + .../handoffs/2026-06-19_phase1-built.md | 98 + .../2026-06-19_phase1-ceiling-and-leftwall.md | 104 + .../handoffs/2026-06-19_redesign-planned.md | 65 + .../handoffs/2026-06-20_phase1-closeout.md | 65 + docs/decisions/0001-lightweight-workflow.md | 30 + .../0002-perspective-room-redesign.md | 45 + .../0003-full-workflow-handson-execution.md | 34 + .../0004-room-materials-and-desktop-first.md | 31 + .../0005-camera-travels-between-walls.md | 42 + .../0006-camera-tour-order-and-left-wall.md | 50 + eslint.config.mjs | 18 + next-env.d.ts | 6 + next.config.ts | 7 + package-lock.json | 6817 +++++++++++++++++ package.json | 26 + postcss.config.mjs | 7 + tsconfig.json | 34 + 26 files changed, 7865 insertions(+), 187 deletions(-) create mode 100644 .claude/launch.json create mode 100644 AGENTS.md create mode 100644 CLAUDE.md delete mode 100644 Francisco Cardenas - Portfolio (standalone).html create mode 100644 docs/00_plan.md create mode 100644 docs/01_room-shell-and-camera.md create mode 100644 docs/artifacts/handoffs/2026-06-18_v1-polish-and-ship.md create mode 100644 docs/artifacts/handoffs/2026-06-19_phase1-built.md create mode 100644 docs/artifacts/handoffs/2026-06-19_phase1-ceiling-and-leftwall.md create mode 100644 docs/artifacts/handoffs/2026-06-19_redesign-planned.md create mode 100644 docs/artifacts/handoffs/2026-06-20_phase1-closeout.md create mode 100644 docs/decisions/0001-lightweight-workflow.md create mode 100644 docs/decisions/0002-perspective-room-redesign.md create mode 100644 docs/decisions/0003-full-workflow-handson-execution.md create mode 100644 docs/decisions/0004-room-materials-and-desktop-first.md create mode 100644 docs/decisions/0005-camera-travels-between-walls.md create mode 100644 docs/decisions/0006-camera-tour-order-and-left-wall.md create mode 100644 eslint.config.mjs create mode 100644 next-env.d.ts create mode 100644 next.config.ts create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 postcss.config.mjs create mode 100644 tsconfig.json diff --git a/.claude/launch.json b/.claude/launch.json new file mode 100644 index 0000000..e8add2a --- /dev/null +++ b/.claude/launch.json @@ -0,0 +1,11 @@ +{ + "version": "0.0.1", + "configurations": [ + { + "name": "portfolio-dev", + "runtimeExecutable": "npm", + "runtimeArgs": ["run", "dev"], + "port": 3000 + } + ] +} diff --git a/.gitignore b/.gitignore index 98794cf..79673ae 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,16 @@ skills-lock.json # Personal files — kept on this computer only, never published claudecode_jumpstart.docx + +# Resumes — contain personal contact info; never publish to the public repo +*Resume* +*resume* + +# Private folder — everything in here stays on this computer, never published +Private Random Stuff/ + +# Personal photo used on the resume — keep private +headshot.* + +# Session handoff notes — local only, never published +SESSION_TURNOVER.md diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..8bd0e39 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,5 @@ + +# This is NOT the Next.js you know + +This version has breaking changes — APIs, conventions, and file structure may all differ from your training data. Read the relevant guide in `node_modules/next/dist/docs/` before writing any code. Heed deprecation notices. + diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..dedf75d --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,30 @@ + +# Portfolio — Francisco Cardenas + +@AGENTS.md + +## Active phase +**Perspective-room redesign** (ADR-0002). **Phase 1: Room shell & camera — done** (signed off 2026-06-20; left-wall glitch fixed, global pull-back, left→right tour order — ADR-0006). Next: **Phase 2 — Hero objects: poster + flag** (planned, not started). + +## Pointers +- Plan: [docs/00_plan.md](docs/00_plan.md) +- Decision log: [docs/decisions/](docs/decisions/) +- Current turnover: [docs/artifacts/handoffs/2026-06-20_phase1-closeout.md](docs/artifacts/handoffs/2026-06-20_phase1-closeout.md) + +## Phase index +| # | Name | Status | Closeout date | Phase file | +|---|------|--------|---------------|------------| +| 1 | Room shell & camera | done | 2026-06-20 | [docs/01_room-shell-and-camera.md](docs/01_room-shell-and-camera.md) | +| 2 | Hero objects: poster + flag | planned | — | tracked in [docs/00_plan.md](docs/00_plan.md) | +| 3 | Furnish & populate sections | planned | — | tracked in [docs/00_plan.md](docs/00_plan.md) | +| 4 | Lighting, polish, responsive, a11y | planned | — | tracked in [docs/00_plan.md](docs/00_plan.md) | +| 5 | Content finalize & ship | planned | — | tracked in [docs/00_plan.md](docs/00_plan.md) | + +## Standing rules +- **Full planning, hands-on execution (ADR-0003, supersedes ADR-0001):** locked plan + phases + decision log + handoffs, but build in the main session (no orchestration subagents) for the live-preview design loop. Commit per phase. +- Redesign = looks-3D perspective room assembled in the browser (CSS 3D), NOT real-time 3D (ADR-0002). +- All paths use forward slashes. +- Free-tier services only (Vercel hobby); CC0 assets only — no paid SaaS without an ADR. +- Don't commit/push/deploy until Francisco says so. +- Turbopack cache goes stale on CSS/font edits — stop server, `rm -rf .next`, restart. +- `Private Random Stuff/` is git-ignored (résumés, references, raw textures) — never commit it. diff --git a/Francisco Cardenas - Portfolio (standalone).html b/Francisco Cardenas - Portfolio (standalone).html deleted file mode 100644 index 78be0c4..0000000 --- a/Francisco Cardenas - Portfolio (standalone).html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - Francisco Cardenas — Construction Engineering - - - - -
- - - - - - - - FC - -
-
Unpacking...
- - - - - - - - - - \ No newline at end of file diff --git a/README.md b/README.md index 317161b..b9c7727 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,56 @@ -# Projects +# Francisco Cardenas — Portfolio -Personal portfolio website. +Personal portfolio website — **"The Drawing Set"**, an interactive architectural +drawing sheet you drag across, with a slide-out detail panel and a one-page résumé view. -🚧 **Under construction** — building with Next.js. +Built with Next.js, React, TypeScript, and Tailwind CSS. + +## Run locally + +``` +npm install +npm run dev +``` + +Open http://localhost:3000. + +## Edit content (the easy part) + +**Almost everything you'd want to change — your name, wording, jobs, skills, +links, and which photo goes where — lives in ONE file:** + +``` +src/content/site.ts +``` + +Open it, change the text between the `"quotes"`, save, and the site updates. You +do not need to touch any other file for normal edits. + +## Edit images + +Photos live in: + +``` +public/images/ +``` + +To swap a photo, drop the new image into `public/images/` and update the matching +path in `src/content/site.ts`. To replace a photo without changing any code, give +the new file the **same filename** as the old one. + +## How it's organized + +- `src/content/site.ts` — all the editable text, links, and image paths. +- `src/components/Portfolio.tsx` — the interactive blueprint design (you rarely edit this). +- `src/app/globals.css` — the colors and styles. The four color themes are at the very top. +- `src/app/layout.tsx` — fonts and the browser tab title. + +## Build + +``` +npm run build +``` + +## Deploy + +Hosted on Vercel. Every push to `main` redeploys the live site automatically. diff --git a/docs/00_plan.md b/docs/00_plan.md new file mode 100644 index 0000000..a232f96 --- /dev/null +++ b/docs/00_plan.md @@ -0,0 +1,82 @@ +# Portfolio — Plan + +> **Redesign in progress (ADR-0002).** The site is being rebuilt from a flat 2D elevation into a +> perspective room. Running full planning, hands-on execution (ADR-0003). + +## Product summary +Francisco Cardenas's personal **portfolio website** — a **room you peer into**, rendered with real +perspective depth and warm, cozy evening light, that an employer scrolls through to **focus on and +inspect personal objects** which tell his story (who he is, work he's done, goals ahead). Personal +but professional. For: employers and recruiters in civil engineering / construction. **v1 success = +live on Vercel, reads convincingly as a real lived-in room on desktop and mobile, gives a glimpse of +Francisco while staying professional, LinkedIn + email correct.** + +## Look & feel (from ADR-0002 + Q&A 2026-06-19) +- **Approach:** perspective room *assembled in the browser* — looks 3D, but not real-time 3D. +- **Camera:** fixed corner-of-room view; scrolling glides/zooms focus between objects. +- **Mood:** warm evening — lamps & string lights, soft shadows, cozy. +- **Detail:** lived-in but curated (personal, still reads professional). +- **Color:** the 4-theme system is dropped; one basic warm/cozy scheme for now (Francisco, 2026-06-19; revisit later). +- **References:** `Private Random Stuff/Rooms/` (Life is Strange / Edith Finch energy — *look only, + not content*). Honest target: a stylized-realistic interpretation, not a pixel-match to AAA renders. +- **Keep:** the Spider-Verse poster; a realistic Colombian flag; all current sections. + +## Stack +- Runtime / language: Node + TypeScript +- Framework: Next.js (unconventional version — see AGENTS.md; read `node_modules/next/dist/docs/` first) +- Styling: plain CSS (`src/app/globals.css`) — perspective via **CSS 3D transforms**; no UI library, no WebGL +- Dev server: Turbopack +- Database: none — content static in `src/content/site.ts` +- Auth: none +- Hosting / deployment: Vercel (hobby / free tier) +- Repo: github.com/BootySaturn/Projects (origin/main) +- Assets: CC0 only (Poly Haven, ambientCG, similar). Source maps/cutouts, downscale to web tiles + (sharp) into `public/textures/` & `public/images/`. Originals stay in git-ignored `Private Random Stuff/`. + +## Data model +Static only. Text/links live in `src/content/site.ts`. No database, no CMS, no user data. + +## Browser / device targets +Modern evergreen browsers, desktop + mobile responsive. + +## Cross-cutting decisions +- Budget: free tier only (Vercel hobby); CC0 assets only. +- Data sensitivity: none beyond public contact info (email, LinkedIn — confirmed public 2026-06-18). +- Regulatory / offline / i18n: none. +- Accessibility: target **WCAG 2.1 AA** (alt text, contrast, keyboard navigation) — Phase 4. +- Workflow: full planning + decision log + handoffs; **hands-on execution in the main session** + (ADR-0003). Go-all-in on usage. Commit per phase; push/deploy only on Francisco's say-so. + +## Out of scope (v1) +- Real-time / free-roam 3D (game engine, WebGL) +- CMS / accounts / analytics / blog / contact-form backend +- i18n / localization + +## Definition of Done (project-wide) +- [ ] Reads convincingly as a real, lived-in perspective room (depth + warm light) on desktop AND mobile. +- [ ] Every section reachable by focusing/inspecting its object; poster + realistic flag present. +- [ ] LinkedIn + email correct and live. (confirmed 2026-06-18) +- [ ] WCAG 2.1 AA basics: alt text, readable contrast, keyboard-navigable. +- [ ] No leftover `TODO`/`FIXME` in shipped code; assets reasonably optimized for web. +- [ ] README explains what the site is + how to run/deploy. +- [ ] Committed, pushed, deployed live on Vercel. + +## Phase list +| # | Name | Objective | Complexity | Status | +|---|------|-----------|-----------|--------| +| 1 | Room shell & camera | Build the perspective room shell (walls + floor in CSS 3D, warm lighting) and the fixed-camera, scroll-to-focus navigation. **De-risks the approach.** | L | done (2026-06-20) | +| 2 | Hero objects: poster + flag | Place the Spider-Verse poster and a realistic Colombian flag on the wall in correct perspective; wire the inspect/zoom-into-object interaction. | M | planned | +| 3 | Furnish & populate sections | Add the remaining room objects (sourced CC0 furniture/props) mapped to the sections; each opens its content. | L | planned | +| 4 | Lighting, polish, responsive, a11y | Final lighting/shadow/depth pass, mobile layout, performance (asset budgets), accessibility. | M | planned | +| 5 | Content finalize & ship | Lock content/copy, README, commit, push, deploy to Vercel. | S | planned | + +> Phase files: `docs/0N_.md`. Phase 1 skeleton at [docs/01_room-shell-and-camera.md](01_room-shell-and-camera.md). +> Prior v1 polish (photo brick/wood, poster, fabric flag, zoom-into-object interaction) carries +> forward as inputs/assets to the redesign. + +## Deferred questions +| # | Question | Status / revisit | +|---|----------|------------------| +| 1 | Exact object → section mapping (which item opens which section) | OPEN — Claude proposes in Phase 3, Francisco tweaks | +| 2 | Which personal props to include | RESOLVED (2026-06-19) — carry over the existing objects (bed, desk, dresser, shelf, hard hat, skates, soccer ball, window, door, etc.); Francisco will revise later | +| 3 | Color themes | RESOLVED (2026-06-19) — drop the 4-theme system; use one basic warm/cozy scheme for now, revisit later | diff --git a/docs/01_room-shell-and-camera.md b/docs/01_room-shell-and-camera.md new file mode 100644 index 0000000..26e66dd --- /dev/null +++ b/docs/01_room-shell-and-camera.md @@ -0,0 +1,143 @@ +# Phase 1: Room shell & camera + +## Locked plan +(Frozen at plan time. Design changes during execution are recorded as ADRs in `docs/decisions/`.) + +### Objective +Build a convincing perspective **room shell** (walls + floor in real depth) with warm cozy lighting, +and the **fixed-camera, scroll-to-focus** navigation — proving the assembled-perspective approach +(ADR-0002) before any furnishing. + +### Inputs +- ADR-0002 (perspective room), ADR-0003 (workflow mode), ADR-0004 (materials + desktop-first), Q&A answers (2026-06-19). +- References: `Private Random Stuff/Rooms/Room 1–3.jpg` (look only). +- Existing assets: existing scene/scroll engine in `src/components/Portfolio.tsx`; zoom-into-object + interaction + globals.css. NOTE (ADR-0004): the brick/wood photo textures are **dropped** — do not + reuse them. +- CC0 sources only if plain CSS material can't sell a normal nice room (Poly Haven, ambientCG). + +### Skills to load +- `frontend-design` (aesthetic direction for the perspective scene + lighting). + +### Steps +1. Spike a CSS 3D room shell: back wall + one side wall + floor as planes under a shared + `perspective`, fixed corner camera. Confirm depth reads correctly (de-risk gate). +2. Surface the planes as a **normal nice room** (ADR-0004): painted/plaster walls in a warm neutral + + a tasteful plain floor, done with CSS color/gradient/shadow (no brick/wood photo tiles). Add + warm evening lighting (directional gradients, soft contact shadow at wall/floor, lamp/string-light glow). +3. Replace the flat horizontal pan with a **scroll-driven focus** controller: scrolling moves the + camera focus/zoom between a set of named focus points (placeholder anchors for now). +4. Remove the 4-theme system (RESOLVED 2026-06-19) — strip the Field/Dusk × Light/Dark toggles and + per-theme vars; settle on one basic warm/cozy scheme. + +### Tests that must pass +- No console errors; dev server renders the room shell. +- Scroll moves focus smoothly between placeholder anchors; reduced-motion respected. + +### Acceptance criteria (functional and visual) +- Functional: the empty room shell renders with real perspective depth; scroll-to-focus works on + desktop (primary, per ADR-0004) and does not break on mobile. +- Visual: reads as a believable corner of a warm, cozy room (depth + light), not a flat panel — + judged in the live preview against the references' *feel*. + +### Definition of done +Project-wide DoD (shell-relevant items) plus: the perspective approach is validated (or an ADR +records a pivot away from CSS 3D), and the scroll-to-focus mechanism is in place. + +### Complexity / token weight +L — the riskiest phase (validates the whole approach). Hands-on in the main session with frequent +preview checks. + +### Estimated time +1–2 sessions. + +### Dependencies on other phases +- Depends on: none (first redesign phase). +- Required by: Phase 2 (objects placed on the shell), Phase 3 (furnishing). + +## Execution log +(Append-only during execution.) + +### 2026-06-19 — built & validated in the live preview +- **Scene layer rebuilt** (`src/components/Portfolio.tsx`, `src/app/globals.css`): replaced the flat + horizontal-pan "Drawing Set" scene with a CSS-3D room. `.stage` holds the `perspective` + (1180px, `perspective-origin: 37% 39%` → corner view); `.camera` (preserve-3d) is the moving rig; + `.room` (preserve-3d) carries five inward-facing surfaces (back / left / right walls + floor + + ceiling). First built with the outward-facing cube formula → every non-back face showed its + **backface** (mirrored text); fixed by rebuilding faces inward (`translate… rotate…`). +- **Materials (ADR-0004):** painted warm-greige walls + plain wood floor (subtle CSS plank gradient), + warm key-light + lamp glow, contact shadows at the wall/floor seams, camera vignette. No brick/wood + photo textures. +- **Scroll-to-focus camera:** rAF engine eases a float focus index; wheel / arrows+PageUp/Dn+Home/End / + vertical drag all drive it; the camera lerps between per-anchor targets (`--cam-x/y/z/ry/rx`); the + focus rail + the active anchor's glow track it; `prefers-reduced-motion` skips the easing. +- **Themes removed (ADR-0004):** the 4 `[data-palette][data-theme]` blocks + the Field/Dusk × Light/Dark + toggles + `layout.tsx` `data-*` attrs are gone; one warm cozy `:root` scheme. Résumé fast-lane kept & + de-themed. +- **Anchor placement (execution decision, not a plan change):** the fixed corner camera frames the + **back wall** cleanly; the left wall is grazing-angle and the floor/right-wall placeholders + foreshorten/fly off-screen. So all six placeholder anchors sit on the back wall for Phase 1. The rig + already supports `rx`/`ry`, so Phase 2 can move real objects onto the side walls / floor with a + look-down or turn and tune per-object cameras then. +- **Verified (preview, ~961px desktop):** no console errors; all 6 anchors on-screen at full size; + scroll/keys/rail all glide the camera + update focus; résumé opens/closes; mobile (375px) renders + without breaking. Screenshots reviewed. + +### 2026-06-19 — feedback pass: bigger room, pulled back, camera turns between walls +- **Francisco feedback:** liked the render; wanted the camera *farther back*, the view *less straight-on*, + and the room *larger* — then envisioned scrolling that can "go between all the walls" once real objects + are added. +- **Bigger / farther back / angled (look pass 1):** enlarged the room (`--rw/rh/rd` ≈ +30%), raised + perspective to 1340px, and gave `.room` a base `rotateY(-14deg) rotateX(4deg)` so the back wall recedes + into a three-quarter corner instead of sitting flat (one-point) to the camera. Mobile dims scaled to match. +- **Camera turns between walls (ADR-0005):** the engine now lerps yaw/pitch (`--cam-ry/rx`) as well as + translate/zoom, so each anchor's camera **turns to face its wall**. Redistributed the six placeholders: + 3 on the back wall, 1 on the **left** wall, 2 on the **right** wall. + Verified by measurement sweep at ~961px: all six frame on-screen at full height (no slivers); screenshots + of the back-wall establishing view and the right-wall turned view confirm the tour feel. +- **Floor cleared (Francisco feedback):** the floor placeholder read weakly as a flat label, so Involvement + moved up onto the **right wall** (beside Skills — keeps Skills→Involvement a smooth same-wall turn). The + floor is now clean ambiance/depth; real floor presence in Phase 2 should be standing furniture, not a + flat plaque (ADR-0005). +- **Known caveats (carried to Phase 2, see ADR-0005):** per-object framing is viewport-width sensitive + (tuned at 961px); flat floor labels read weakly (real floor = standing 3D furniture). Preview screenshot + tool renders a different viewport than `eval` reads, so framing was validated via DOM measurement. + +### 2026-06-20 — feedback pass: left-wall glitch fixed, pulled back, left→right tour order (ADR-0006) +- **Education "glitch through the wall" fixed.** The left-wall stop was turning the room the wrong way + (`rry:+46`), swinging the wall's **backface** to camera → a mirrored, full-screen wall. Turned the room + the correct way instead (toward the wall, `rry:-55`) so its painted inner face reads square-on; re-framed + (`cam x:420 y:50 z:240`). Verified in the preview: marker reads forward, no clip-through, no console errors. +- **Global pull-back for breathing room.** Added one knob — `--pull` (≈ `-250px`, outermost transform on + `.camera`) — that steps every view back at once (space to furnish in Phase 2) without re-tuning anchors. + Structural CSS change → cleared `.next` and restarted (Turbopack stale-CSS gotcha). +- **Left→right tour order.** The lettered sections were scattered out of sequence, so scrolling zig-zagged. + Laid the six stops across the walls in order: **About = left wall (landing)**, Education/Experience/Skills + = back wall L→R, Involvement/Contact = right wall back→front. Scrolling A→F now sweeps the room with no + backtracking. Verified by stepping the focus rail + screenshots at each end. +- **Francisco signed off** on all three (left-wall fix, spacing, scroll order) in the live preview, 2026-06-20. + +### Tests that must pass — status +- No console errors; room shell renders — **pass.** +- Scroll moves focus smoothly between anchors; reduced-motion respected — **pass.** + +## Closeout +**Status: complete.** Francisco signed off in the live preview on 2026-06-20. + +- **Tests that must pass — both pass** (verified in the preview this session): + - No console errors; the room shell renders. ✓ + - Scroll/keys/drag/rail glide the camera smoothly between anchors; `prefers-reduced-motion` skips the + easing. ✓ +- **Acceptance criteria — met:** reads as a believable warm, cozy corner of a room with real perspective + depth (not a flat panel); scroll-to-focus tours the walls and frames each placeholder; works on desktop + (primary, ADR-0004) and renders on mobile without breaking. The perspective approach (ADR-0002) is + **validated** — Phase 1's de-risk goal is achieved. +- **Decisions landed:** ADR-0005 (camera travels & turns between walls); ADR-0006 (left→right tour order, + left wall via room-rotation, global pull-back). +- **Tech debt carried to Phase 2:** + - Per-object camera framing is **viewport-width sensitive** (tuned ~961px) — harden when real objects land. + - Facing mechanism is **mixed** (left wall = room rotation, right wall = camera yaw) — fine, could unify later. + - Flat floor labels read weakly — real floor presence should be **standing 3D furniture**, not plaques. + - Stray `public/poster-preview.html` (a recovered Spider-Verse poster preview) — **not** committed with + Phase 1; evaluate as a **Phase 2 input** (poster) or delete. +- **Auto-compactions this phase: 0** (threshold ~25%/250K). diff --git a/docs/artifacts/handoffs/2026-06-18_v1-polish-and-ship.md b/docs/artifacts/handoffs/2026-06-18_v1-polish-and-ship.md new file mode 100644 index 0000000..04d4c24 --- /dev/null +++ b/docs/artifacts/handoffs/2026-06-18_v1-polish-and-ship.md @@ -0,0 +1,48 @@ +# Turnover: Phase 1 — v1 polish and ship + +- Created: 2026-06-18 +- Project: C:/Users/Francisco/Desktop/Projects/Portfolio +- Branch: main +- Continues from: SESSION_TURNOVER.md (informal, now superseded by this handoff) + +## 1. Current phase number and status +Phase 1: Polish & ship v1 — in progress. Running lightweight (ADR-0001). + +## 2. What was completed this session, file by file +- Hero block replaced with a **Spider-Verse-style poster** taped to the brick wall (Jinx/Arcane + heavy-contrast neon splash behind a real spider logo PNG). Francisco approved the look. +- `src/components/Portfolio.tsx` — `.hero` markup → `.poster` structure; `HERO_W` set to 310 (desktop) / 244 (mobile). +- `src/app/globals.css` — full poster styles (tape, conic-gradient ray burst, radial black fade, spider with `mix-blend-mode: screen`). +- `public/images/spider-logo.png` — copied from `Private Random Stuff/References/Spider Logo.png`. +- Phased-workflow scaffolding added: CLAUDE.md (thin index), docs/00_plan.md, ADR-0001. +- `src/content/site.ts` — cleared the unverified flags on LinkedIn + email (both confirmed correct). + +## 3. Test status +No automated tests in this project. Verification is visual via the preview tool. + +## 4. Decisions made and rationale (delta on the decision log) +- [docs/decisions/0001-lightweight-workflow.md](../../decisions/0001-lightweight-workflow.md) — run phased-workflow lightweight to protect usage. + +## 5. Outstanding questions for the user +- None open. Francisco will supply tweaks one at a time. + +## 6. Known issues and tech debt added +- Preview tool has been stuck at ~529px (mobile width) — **desktop layout never verified**. Check before deploy. +- Mobile composition needs polish (room short, brick above the cards). +- Entire Next app is still untracked — first commit pending. + +## 7. Files most relevant to the next session +- `src/content/site.ts` — all editable content (identity, stations). +- `src/components/Portfolio.tsx` — room scene + `.hero`/poster markup + layout `useEffect`. +- `src/app/globals.css` — all styling, 4 themes, poster, brick/floor layers. + +## 8. Environment state +- Dev server: `portfolio-dev` on port 3000 (see `.claude/launch.json`). +- No migrations, no env vars, no external services. + +## 9. Exact command sequence to resume the dev environment +```bash +# from project root; if CSS/fonts look stale, clear the Turbopack cache first: +rm -rf .next +# then start the dev server via the preview tool (server name: portfolio-dev, port 3000) +``` diff --git a/docs/artifacts/handoffs/2026-06-19_phase1-built.md b/docs/artifacts/handoffs/2026-06-19_phase1-built.md new file mode 100644 index 0000000..d5adf9d --- /dev/null +++ b/docs/artifacts/handoffs/2026-06-19_phase1-built.md @@ -0,0 +1,98 @@ +# Turnover: Phase 1 — room shell & camera BUILT (pending 2 tweaks + sign-off) + +- Created: 2026-06-19 +- Project: C:/Users/Francisco/Desktop/Projects/Portfolio +- Branch: main +- Continues from: 2026-06-19_redesign-planned.md + +## 1. Current phase number and status +Phase 1: Room shell & camera — **built & validated in the live preview, NOT committed.** The flat-2D +"Drawing Set" scene is fully replaced by a CSS-3D perspective room with a scroll-to-focus camera that +**travels and turns between the walls**. Francisco likes it. **He has TWO more small changes he wants +before we start Phase 2 — those are the first thing to ask about next session** (they were unspecified at +handoff time). After those: lock Phase 1, get his go to commit, then start Phase 2. + +## 2. What was completed this session, file by file +- `src/components/Portfolio.tsx` — **rewritten.** Removed the flat horizontal-pan engine, the elevation + SVG, the hero poster, the detail cards, the slide-in panel, the zoomview, the dwell-to-enter logic, the + station nav, the title block, theme state, and `PanelBody`. Added: the `ANCHORS` array (6 placeholder + focus points across the walls), the **scroll-to-focus camera engine** (rAF easing a float focus index → + lerps `--cam-x/y/z/ry/rx`), `AnchorMarker`, the room render (`.stage > .camera > .room > 5 faces`), the + focus rail, and a scroll hint. Kept `ResumeView` (résumé fast-lane), de-themed. +- `src/app/globals.css` — **rewritten.** Removed the four `[data-palette][data-theme]` theme blocks and all + brick/wood/elevation/hero/detail/panel/zoomview CSS. Added: one warm cozy `:root` scheme; the CSS-3D room + (perspective stage, camera rig, room box, 5 **inward-facing** surfaces with CSS paint + wood-plank floor + + warm lighting + contact shadows + vignette); `.anchor` placeholders; `.focusnav` rail; `.hint`. Kept + + de-themed the top bar and résumé view. +- `src/app/layout.tsx` — removed the dead `data-theme="light" data-palette="field"` attributes. +- `docs/decisions/0004-room-materials-and-desktop-first.md` — NEW (no brick/wood; desktop-first). +- `docs/decisions/0005-camera-travels-between-walls.md` — NEW (camera turns to face objects on any wall; + refines ADR-0002's "fixed corner camera"). +- `docs/01_room-shell-and-camera.md` — execution log filled (3 entries) + tests marked pass. +- `CLAUDE.md` — active phase + phase-index row 1 → "built (pending sign-off)". + +### Current camera/room tuning (so the next session doesn't re-derive it) +- Room: `--rw 1620 / --rh 940 / --rd 1560`; `.stage` perspective `1340px`, `perspective-origin 43% 37%`; + `.room` base `translate(-50%,-50%) rotateY(-14deg) rotateX(4deg)`. +- `ANCHORS` (face / x% / y% on the face / cam{x,y,z,ry,rx}): + - about — back / 24% / 34% / {250, 55, 190, 0, 0} + - education — left / 44% / 44% / {165, 28, -110, -46, 0} + - experience — back / 55% / 34% / {-30, 55, 195, 0, 0} + - skills — right / 52% / 44% / {-150, 28, -110, 54, 0} + - involvement — right / 38% / 40% / {-90, 26, -110, 54, 0} + - contact — back / 78% / 40% / {-250, 35, 190, 0, 0} +- Object layout: back wall = About/Experience/Contact; left wall = Education; right wall = Skills/Involvement. + Floor is intentionally clear (ambiance only). + +## 3. Test status +No automated tests (visual verification via the preview tool). Validated this session: no console errors; +all 6 anchors frame on-screen at full height (DOM-measurement sweep at ~961px); wheel/keys/drag/rail all +glide + turn the camera and update focus; résumé opens/closes; mobile (375px) renders without breaking. + +## 4. Decisions made and rationale (delta on the decision log) +- [0004-room-materials-and-desktop-first.md](../../decisions/0004-room-materials-and-desktop-first.md) — drop + brick/wood photo textures for a normal painted room; compose desktop-first. +- [0005-camera-travels-between-walls.md](../../decisions/0005-camera-travels-between-walls.md) — the camera + turns (yaw/pitch) to face objects on any wall, so scrolling tours the room; refines ADR-0002. + +## 5. Outstanding questions for the user +- **TWO more changes Francisco wants before Phase 2 — capture these first.** (Unknown at handoff.) +- Then: confirm Phase 1 locked + the go to commit. + +## 6. Known issues and tech debt added +- **Per-object camera framing is viewport-width sensitive** (tuned at ~961px desktop). Phase 2 should make it + robust (viewport-relative units or a fit/contain calc) once real objects land. (ADR-0005) +- **Preview screenshot tool renders a different viewport than `eval` reads**, and the preview width + fluctuates (529 / 961 seen) — verify framing via DOM `getBoundingClientRect`, not screenshots alone. +- **HMR does not re-run the camera engine effect** (deps `[]`), so editing `ANCHORS` needs a full page + reload (`location.reload()`) to take effect in the preview. +- **Turbopack stale-CSS:** after CSS edits, stop server → `rm -rf .next` → restart. +- Floor has no focus object (ambiance only); real floor presence in Phase 2 = standing furniture, not flat + labels. Side-wall objects look sparse with tiny placeholders — real (larger) objects will fill them. +- The old reusable pieces (Spider-Verse poster markup, zoom-into-object interaction, Colombian flag SVG) were + removed from the live render; they live in git history (commit `85b7448`) and the prior handoff — pull them + back as Phase 2/3 inputs. +- Entire Next app still uncommitted (by design — Francisco hasn't said to commit). + +## 7. Files most relevant to the next session +- `src/components/Portfolio.tsx` — `ANCHORS` (edit to add/move objects), the camera engine, the room render. +- `src/app/globals.css` — room dims/perspective/base angle, the 5 faces + lighting, `.anchor`, `.focusnav`. +- `docs/01_room-shell-and-camera.md` — Phase 1 spec + execution log. +- `docs/decisions/0004`, `0005` — the live design decisions. +- `docs/00_plan.md` — Phase 2 = "Hero objects: poster + flag" (the next phase to spec/build). +- `public/images/spider-logo.png` — existing Spider-Verse art used by the old poster. +- `Private Random Stuff/Rooms/Room 1–3.jpg` — look references (git-ignored, LOOK only). + +## 8. Environment state +- Dev server: `portfolio-dev` on port 3000 (`.claude/launch.json`). +- No migrations, env vars, or external services. Next.js 16.2.9 (Turbopack). +- Fonts via `next/font`: Space Grotesk (display) / DM Sans (body) / Space Mono (mono) — unchanged. + +## 9. Exact command sequence to resume the dev environment +```bash +# from project root: +rm -rf .next +# then start the dev server via the preview tool (server name: portfolio-dev, port 3000) +# NOTE: after editing ANCHORS in Portfolio.tsx, location.reload() the preview (HMR won't restart the engine). +# NOTE: after CSS edits, stop server -> rm -rf .next -> restart (stale-CSS cache). +``` diff --git a/docs/artifacts/handoffs/2026-06-19_phase1-ceiling-and-leftwall.md b/docs/artifacts/handoffs/2026-06-19_phase1-ceiling-and-leftwall.md new file mode 100644 index 0000000..ede8943 --- /dev/null +++ b/docs/artifacts/handoffs/2026-06-19_phase1-ceiling-and-leftwall.md @@ -0,0 +1,104 @@ +# Turnover: Phase 1 feedback pass — ceiling fixed; left-wall (education) camera reworked but STILL BUGGY per Francisco + +- Created: 2026-06-19 +- Project: C:/Users/Francisco/Desktop/Projects/Portfolio +- Branch: main +- Continues from: 2026-06-19_phase1-built.md + +## 1. Current phase number and status +Phase 1 (Room shell & camera) — still **built, pending sign-off, NOT committed.** This session worked the +two feedback items Francisco wanted before Phase 2: +- **(1) Ceiling "empty roof / abyss above" — FIXED.** The room always had a ceiling face, but it was + painted near-black (`#241c14`) so it dissolved into the black background. Re-skinned to a warm, dim, + *present* evening ceiling. Material-only (no geometry change) so the camera is unaffected. Francisco + has not explicitly re-confirmed the look but did not object. +- **(2) Education tab "messes with the camera" — REWORKED, NOT ACCEPTED.** Diagnosed + rebuilt with a new + per-stop room-rotation mechanism; in DOM measurement the education marker now frames readable. **BUT + Francisco's last word on it was "the camera is still buggy" — he interrupted before saying HOW, then + pivoted to other work. The specific remaining problem is UNKNOWN. Get it first thing next session.** + Phase 1 sign-off is blocked on this. + +## 2. What was completed this session, file by file +- `src/app/globals.css` + - `.face--ceil` — **rewritten.** Warm dim ceiling: a soft warm lamp-bounce pool + gentle gradient + (`#5e5039 → var(--ceil) #564833 → #4a3e2d`) + a faint cornice glow at the wall seam + gentle (not + black) corner seating. `--ceil` var changed `#241c14 → #564833`. Verified clearly brighter than `--bg`. + - `.stage` — `perspective-origin` is now `var(--po-x, 43%) 37%` (was `43% 37%`); mobile query likewise + `var(--po-x, 46%) 39%`. Lets the engine slide the "eye" horizontally per stop. + - `.room` — transform `rotateY(-14deg)` → `rotateY(var(--room-ry, -14deg))`. Lets the engine turn the + whole room per stop (the lever that actually faces a side wall). +- `src/components/Portfolio.tsx` + - `Cam` type extended: added `pox` (perspective eye x %, glided) and `rry` (room base turn deg, glided). + - `ANCHORS` — every stop got `pox` + `rry`. Back/right stops keep `pox:43, rry:-14` (unchanged look). + **Education rebuilt to `{ x:380, y:28, z:-120, ry:0, rx:0, pox:50, rry:46 }`** (camera ry stays 0; the + `rry:46` room turn does the facing). + - Added `roomRef`; engine `apply()` now also lerps `--po-x` onto `.stage` and `--room-ry` onto `.room`. + Stage + room carry initial inline vars (no FOUC). Header comment block updated to explain pox/rry. + +## 3. Test status +No automated tests (visual design loop). This session, by DOM measurement (the screenshot tool is broken — +see §6): +- Ceiling: no console errors; ceiling sits at the top 8% (back-wall view) to ~22% (side-wall view) of the + frame and never descends into/blocks the camera; new colors measured well above `--bg` — **pass.** +- Education: at the rebuilt stop the marker renders ~160px wide, full-height, on-screen, unclipped, with + the left wall faced (it was a ~12px edge-on sliver before) — **measurement pass, but NOT visually + signed off; Francisco reports it's still buggy.** + +## 4. Decisions made and rationale (provisional — pending acceptance) +- **Ceiling = material-only warm dim ceiling** (refines ADR-0004 materials). No geometry touched, so the + validated camera/no-obstruction behavior is unchanged. +- **Per-stop ROOM rotation (`--room-ry`) is the lever that faces a grazing side wall — the eye-shift + (`--po-x`) alone is NOT enough.** Measured: the room's resting `-14°` turn pushes the left wall away, so + the education marker was edge-on (~12px) and unreadable regardless of camera turn (`ry`) or eye (`pox`, + which barely changed it). Turning the *room* from `-14°` to `+46°` brings the left wall forward and the + marker to ~160px readable. Candidate **ADR-0006** once Francisco accepts it. NOTE: this makes the + back-wall→education move a large ~60° room swing — that may be the "still buggy" complaint. + +## 5. Outstanding questions for the user (ask first, before touching code) +- **What exactly is still buggy about the education camera?** Likely candidates to probe: the big ~60° room + swing into/out of education feeling disorienting; the marker size/placement; something mid-transition; or + it breaks at his window width (framing is tuned ~961px). Do NOT re-tune blind — get specifics. +- Possible pivot if the swing is the problem: move education off the grazing left wall onto the back/right + wall (which frame cleanly) and drop the room-rotation mechanism. Francisco earlier chose "make the left + wall work properly," so confirm before reversing. +- Then: confirm the ceiling look, lock Phase 1, get the go to commit. + +## 6. Known issues and tech debt +- **Education camera unresolved** (above) — the headline blocker. +- **Screenshot tool times out** (Next dev keeps an HMR socket open → never network-idle). Cannot self-verify + visually this session; rely on Francisco's eyes + DOM measurement. +- **eval runs in a throttled/background page** where the rAF camera loop is paused, so manually setting + `--cam-*` / `--po-x` / `--room-ry` sticks and `getBoundingClientRect` reflects it — BUT a stray foreground + frame runs `apply()` and resets the vars to the current focus. **Measure SYNCHRONOUSLY** (set vars, then + read `getBoundingClientRect` with NO `await` in between) or the reading is wrong. Synthetic wheel/key + events do NOT drive the engine from eval (untrusted); only real input does. +- **HMR does not re-run the engine effect** (deps `[]`) → after editing `ANCHORS`, full `location.reload()`. +- **Turbopack stale CSS**: structural CSS changes (e.g. the `--room-ry` transform) are served stale — + stop server → `rm -rf .next` → restart (done this session; that's why the var "wasn't working" at first). +- Per-object framing is still viewport-width sensitive (tuned ~961px) — Phase 2 should make it robust. +- **Stray file:** `public/poster-preview.html` exists (a recovered Spider-Verse poster preview, unrelated to + the 3D room). Ignore or delete — it is NOT part of Phase 1. +- Entire app still uncommitted, by design. + +## 7. Files most relevant to the next session +- `src/components/Portfolio.tsx` — `ANCHORS` (esp. the `education` cam), the `Cam` type (now `pox` + `rry`), + the camera engine `apply()` (lerps `--cam-*`, `--po-x` on stage, `--room-ry` on room). +- `src/app/globals.css` — `.face--ceil` (warm ceiling), `.stage` `perspective-origin: var(--po-x …)`, + `.room` `transform: … rotateY(var(--room-ry …))`. +- `docs/01_room-shell-and-camera.md` — Phase 1 spec + execution log (update at sign-off). +- `docs/decisions/0004`, `0005` — prior camera/material ADRs; `0006` to be written if room-rotation is kept. + +## 8. Environment state +- Dev server: `portfolio-dev` on port 3000 (`.claude/launch.json`). Restarted this session (it stopped once; + changing serverIds are normal). `.next` cache was cleared this session. +- No migrations, env vars, or external services. Next.js 16.2.9 (Turbopack). Fonts unchanged. + +## 9. Exact command sequence to resume the dev environment +```bash +# from project root: +rm -rf .next +# start the dev server via the preview tool (server name: portfolio-dev, port 3000) +# after editing ANCHORS in Portfolio.tsx -> location.reload() the preview (HMR won't restart the engine) +# after CSS edits -> stop server -> rm -rf .next -> restart (stale-CSS cache) +# to measure framing: set --cam-*/--po-x/--room-ry then read getBoundingClientRect SYNCHRONOUSLY (no awaits) +``` diff --git a/docs/artifacts/handoffs/2026-06-19_redesign-planned.md b/docs/artifacts/handoffs/2026-06-19_redesign-planned.md new file mode 100644 index 0000000..eee43bd --- /dev/null +++ b/docs/artifacts/handoffs/2026-06-19_redesign-planned.md @@ -0,0 +1,65 @@ +# Turnover: Phase 1 — redesign planned, ready to build + +- Created: 2026-06-19 +- Project: C:/Users/Francisco/Desktop/Projects/Portfolio +- Branch: main +- Continues from: 2026-06-18_v1-polish-and-ship.md + +## 1. Current phase number and status +Phase 1: Room shell & camera — **planned, NOT started.** The redesign plan is LOCKED. Francisco was +about to give the go to start building Phase 1. **First action next session: confirm "go", then +begin Phase 1** (Phase Start mode — read this handoff + `docs/01_room-shell-and-camera.md`). + +## 2. What was completed this session, file by file +This was a **planning + pivot** session (plus earlier v1 tweaks now superseded by the redesign). +- `docs/decisions/0002-perspective-room-redesign.md` — NEW. The big pivot: flat 2D → perspective room. +- `docs/decisions/0003-full-workflow-handson-execution.md` — NEW. Full planning, hands-on execution; supersedes ADR-0001. +- `docs/decisions/0001-lightweight-workflow.md` — marked superseded by 0003. +- `docs/00_plan.md` — rewritten for the redesign (look&feel, stack, 5-phase list, DoD, deferred Qs). +- `docs/01_room-shell-and-camera.md` — NEW. Phase 1 spec. +- `CLAUDE.md` — active phase + phase index + standing rules updated for the redesign. +- Earlier (now superseded by redesign): `src/app/globals.css` + `src/components/Portfolio.tsx` got a + fabric Colombian flag banner, photo brick/wood textures, scene lighting overlays. `public/textures/ + brick-color.jpg` + `wood-color.jpg` created (downscaled from CC0 scans via sharp). + +## 3. Test status +No automated tests in this project. Verification is visual via the preview tool. + +## 4. Decisions made and rationale (delta on the decision log) +- [0002-perspective-room-redesign.md](../../decisions/0002-perspective-room-redesign.md) — rebuild as a browser-assembled perspective room (CSS 3D), looks-3D but NOT real-time 3D. +- [0003-full-workflow-handson-execution.md](../../decisions/0003-full-workflow-handson-execution.md) — full planning + phases + handoffs, but build in the main session (no orchestration subagents); supersedes ADR-0001 (lightweight). + +## 5. Outstanding questions for the user +- None blocking. The go-ahead to START Phase 1 is the only pending input (Francisco was about to give it). +- Deferred (not blocking): object→section mapping is proposed in Phase 3. + +## 6. Known issues and tech debt added +- The CURRENTLY BUILT site is still the old flat-2D scene; Phase 1+ will largely rebuild the scene layer in `Portfolio.tsx` / `globals.css`. Reuse: the zoom-into-object interaction, the Spider-Verse poster, the photo brick/wood tiles. +- The 4-theme system (Field/Dusk × Light/Dark toggles + per-theme CSS vars) is to be STRIPPED in Phase 1 (Francisco: drop themes, one cozy scheme). +- Preview tool frequently wedges at ~529px mobile width; a fresh `preview_start` sometimes renders desktop (~961px). Desktop composition hard to verify through the tool. +- Turbopack stale-CSS cache: after CSS/font edits, stop server → `rm -rf .next` → restart (HMR reload sometimes suffices for simple CSS). +- Entire Next app is still untracked/uncommitted (by design — Francisco hasn't said to commit). + +## 7. Files most relevant to the next session +- `docs/01_room-shell-and-camera.md` — the Phase 1 spec to execute. +- `src/components/Portfolio.tsx` — scene structure, the scroll/pan engine, the zoom-into-object trigger (dwell) + zoomview; this is where the perspective room + scroll-to-focus camera get built. +- `src/app/globals.css` — strip `[data-theme]`/`[data-palette]` theme blocks; carry/rework `.zoomview`, poster, lighting; add the CSS 3D room shell. +- `src/content/site.ts` — the 6 sections (About/Education/Experience/Skills/Involvement/Contact). +- `public/textures/brick-color.jpg`, `public/textures/wood-color.jpg` — existing CC0 tiles. +- `Private Random Stuff/Rooms/Room 1–3.jpg` — references (LOOK only; git-ignored). Vibe: cozy game + bedrooms (Life is Strange / Edith Finch) — perspective depth, warm directional light, lived-in clutter. +- Load the `frontend-design` skill for Phase 1. + +## 8. Environment state +- Dev server: `portfolio-dev` on port 3000 (`.claude/launch.json`). +- No migrations, env vars, or external services. +- Asset processing: sharp, run via `NODE_PATH="$(pwd)/node_modules" node`. Network/curl works for CC0 downloads (Poly Haven direct JPG URLs verified). + +## 9. Exact command sequence to resume the dev environment +```bash +# from project root: +rm -rf .next +# then start the dev server via the preview tool (server name: portfolio-dev, port 3000) +# CC0 asset pattern (example): curl -sL -o .tex-tmp/x.jpg "" +# then downscale with sharp into public/textures/ , and rm -rf .tex-tmp +``` diff --git a/docs/artifacts/handoffs/2026-06-20_phase1-closeout.md b/docs/artifacts/handoffs/2026-06-20_phase1-closeout.md new file mode 100644 index 0000000..f2b9b27 --- /dev/null +++ b/docs/artifacts/handoffs/2026-06-20_phase1-closeout.md @@ -0,0 +1,65 @@ +# Turnover: Phase 1 — closeout (signed off, ready to commit) + +- Created: 2026-06-20 10:42:02 +- Project: C:/Users/Francisco/Desktop/Projects/Portfolio +- Branch: main (phase branch `phase-1-room-shell-and-camera` to be created at commit) +- Continues from: 2026-06-19_phase1-ceiling-and-leftwall.md + +## 1. Current phase number and status +Phase 1: Room shell & camera — **done.** Francisco signed off in the live preview on 2026-06-20. The +perspective approach (ADR-0002) is validated; Phase 1's de-risk goal is achieved. + +## 2. What was completed this session, file by file +See `docs/01_room-shell-and-camera.md`, execution log entry **2026-06-20** (+ closeout section). +Delta: fixed the education left-wall "glitch through the wall" (room was turning the wrong way → +backface; now turns toward the wall, `rry:-55`); added a global `--pull` dolly-back for breathing room; +re-ordered the six stops left→right (About=left wall landing, B/C/D=back wall, E/F=right wall) so +scrolling sweeps the room in order. Files: `src/components/Portfolio.tsx` (ANCHORS), `src/app/globals.css` +(`.camera` `--pull`, `.face--left` facing). + +## 3. Test status +- Passing: both "tests that must pass" — no console errors + room renders; scroll glides smoothly between + anchors + reduced-motion respected. Verified in the live preview (Claude Preview tools) this session. +- Failing: none. +- Skipped: none. (No automated test suite — this is a visual design loop; verification is preview-based.) + +## 4. Decisions made and rationale (delta on the decision log) +- [docs/decisions/0006-camera-tour-order-and-left-wall.md](../../decisions/0006-camera-tour-order-and-left-wall.md) + — left→right stop order; left wall faced via room-rotation (toward the wall, not away); global pull-back knob. Refines 0005. + +## 5. Outstanding questions for the user +- **Push/PR gate:** Phase 1 is committed locally on the phase branch but NOT pushed — the standing rule + gates push/deploy on Francisco's say-so. He needs to OK pushing the branch + opening the PR to the public + repo (or merging to main). +- Phase 2 object→section mapping is still OPEN (deferred Q1 in the plan) — Claude proposes in Phase 2/3. + +## 6. Known issues and tech debt added +- Per-object camera framing is **viewport-width sensitive** (tuned ~961px) — harden in Phase 2. +- Facing mechanism is **mixed** (left wall = room rotation, right wall = camera yaw) — works; could unify later. +- Flat floor labels read weakly — real floor presence = standing 3D furniture (carried from ADR-0005). +- Stray `public/poster-preview.html` (recovered Spider-Verse poster preview) — left uncommitted; a likely + **Phase 2 input** (poster) or delete. +- Dev server (`portfolio-dev`, port 3000) dropped out on its own several times this session — restart via the + preview tool when it does. + +## 7. Files most relevant to the next session (Phase 2: poster + flag) +- `src/components/Portfolio.tsx:36` — the `ANCHORS` array; Phase 2 replaces placeholder markers with real + objects (poster, flag) and tunes their per-object cameras. +- `src/app/globals.css:113` — `.camera` transform (`--pull` knob) and the `.face--*` wall surfaces objects mount on. +- `src/content/site.ts` — section content/labels the objects open. +- `public/poster-preview.html` — recovered poster preview to evaluate as a Phase 2 input. +- `docs/00_plan.md` (Phase 2 row) and ADR-0005/0006 — the camera rig objects will sit in. + +## 8. Environment state +- Migrations run: none (no database). +- Env vars added: none. +- Services started: `portfolio-dev` dev server (Next.js + Turbopack) on port 3000. +- Ports occupied: 3000. + +## 9. Exact command sequence to resume the dev environment +```bash +# from project root: +rm -rf .next # only needed after structural CSS edits (Turbopack stale-CSS gotcha) +# start the dev server via the preview tool (config: .claude/launch.json, name "portfolio-dev", port 3000) +# after editing ANCHORS in Portfolio.tsx -> reload the preview (HMR won't re-run the camera engine effect) +``` diff --git a/docs/decisions/0001-lightweight-workflow.md b/docs/decisions/0001-lightweight-workflow.md new file mode 100644 index 0000000..b4933cf --- /dev/null +++ b/docs/decisions/0001-lightweight-workflow.md @@ -0,0 +1,30 @@ +# 0001. Run phased-workflow in lightweight mode + +- Status: superseded +- Date: 2026-06-18 +- Supersedes: none +- Superseded-by: 0003-full-workflow-handson-execution.md + +> **Superseded by [0003-full-workflow-handson-execution.md](0003-full-workflow-handson-execution.md) on 2026-06-19.** + +## Context +The portfolio is ~90% built. Remaining work is small iterative tweaks Francisco feeds one at a +time, plus accessibility/mobile polish and deployment. Francisco is a beginner and is concerned +about consuming his Claude usage quickly. The full phased-workflow orchestration (planner / +implementer / verifier / reviewer subagents, per-tweak ADRs, per-phase PRs) is designed for large +from-scratch builds and would burn more usage than it saves on small tweak-driven work. + +## Decision +Run the phased-workflow in a **lightweight** form: keep the organizational scaffolding (plan doc, +decision log, session handoff for continuity) but do all work directly in the main session — no +orchestration subagents, no per-tweak ADRs, no per-phase PRs. Escalate to the full workflow only if +a genuinely large new feature comes up. + +## Alternatives considered +- Full phased-workflow orchestration — rejected: too heavy for tweak-driven work; conflicts with the usage-time constraint. +- No workflow at all — rejected: Francisco has already lost context mid-project once; the handoff/plan scaffolding is cheap and prevents expensive re-derivation across sessions. + +## Consequences +- Positive: low usage cost; fast turnaround on tweaks; session continuity preserved via handoff + plan docs. +- Negative: less formal review/test rigor than full mode; large features will need an explicit escalation. +- Neutral: the `` marker stays in CLAUDE.md so the structure is recognized in future sessions. diff --git a/docs/decisions/0002-perspective-room-redesign.md b/docs/decisions/0002-perspective-room-redesign.md new file mode 100644 index 0000000..3f6d92d --- /dev/null +++ b/docs/decisions/0002-perspective-room-redesign.md @@ -0,0 +1,45 @@ +# 0002. Redesign from flat 2D elevation to a perspective room + +- Status: accepted +- Date: 2026-06-19 +- Supersedes: none +- Superseded-by: none + +## Context +The v1 site renders the room as a flat, front-on "elevation" (line-drawn furniture over a brick +wall + wood floor, panned horizontally). After several polish passes (real brick/wood photo +textures, lighting overlays, the Spider-Verse poster, a fabric flag banner), Francisco concluded +the flat 2D approach fundamentally can't read as a real space — "I don't think the flat 2d is going +to work." The geometry itself is flat, so no texture/lighting tweak fixes it. + +Francisco's vision: a room you peer into that looks like a real, lived-in space (depth/perspective, +warm light), personal enough to give an employer a glimpse of him while staying professional, where +scrolling lets you focus on and inspect objects that tell his story. He supplied three reference +renders (cozy game-style bedrooms — Life is Strange / Edith Finch energy) for the *look* only, not +content. Chosen direction (Q&A 2026-06-19): looks-3D but not real-time 3D ("Option A"); fixed +corner-of-room camera with scroll-driven focus; warm cozy evening light; lived-in but curated. + +## Decision +Rebuild the scene as a **perspective room assembled in the browser** — real depth via CSS 3D +transforms (walls + floor as planes in perspective), textured with sourced CC0 materials, lit with +warm directional gradient lighting, and populated with **individually placed, inspectable objects** +(poster, flag, furniture). A fixed camera looks into a corner of the room; scrolling glides/zooms +the focus between objects, each of which opens its section (reusing the existing zoom-into-object +interaction). NOT real-time 3D (no game engine / WebGL). Realism comes from sourced assets + +perspective + lighting, not from a custom 3D render (which cannot be produced in this environment). + +## Alternatives considered +- Keep flat 2D elevation — rejected: the thing Francisco explicitly wants to leave behind. +- Real-time 3D (Three.js / R3F, free-roam) — rejected for now: much larger build, performance/asset + burden, and a likely time-sink that distracts from content; revisit only if the assembled + approach can't deliver enough "room" feel. +- A single baked/found room render with flat hotspots — rejected: can't place Francisco's own + poster/flag convincingly, and objects wouldn't be individually inspectable elements. + +## Consequences +- Positive: genuine perspective depth; every object is a real, interactive element; deploys free on + Vercel; no heavy 3D runtime. +- Negative: a significant rebuild of the scene layer; the result is a stylized-realistic + interpretation, not a pixel-match to the AAA game references (expectation set with Francisco). +- Neutral: prior polish work (photo brick/wood, poster, flag, zoom-into-object interaction) carries + forward as inputs/assets. Approach is de-risked in Phase 1 before furnishing. diff --git a/docs/decisions/0003-full-workflow-handson-execution.md b/docs/decisions/0003-full-workflow-handson-execution.md new file mode 100644 index 0000000..d448b51 --- /dev/null +++ b/docs/decisions/0003-full-workflow-handson-execution.md @@ -0,0 +1,34 @@ +# 0003. Upgrade to full planning, hands-on execution + +- Status: accepted +- Date: 2026-06-19 +- Supersedes: 0001-lightweight-workflow.md +- Superseded-by: none + +## Context +ADR-0001 ran the project "lightweight" because the remaining work was small tweaks and Francisco +wanted to conserve usage. The perspective-room redesign (ADR-0002) is a genuinely large rebuild +spanning multiple sessions, with real architectural decisions and asset sourcing — exactly the +"dial it up" case ADR-0001 anticipated. Francisco has explicitly opted to go all-in on usage for +this and asked to run it under the phased workflow. + +## Decision +Adopt the **full phased-workflow planning discipline** for the redesign: a locked plan, a phased +breakdown, an ADR per non-trivial decision, and session handoffs at phase ends. BUT keep +**execution hands-on in the main session** rather than delegating to orchestration subagents, +because this is design-heavy work that depends on the tight edit → live-preview → react loop with +Francisco (subagents cannot watch the browser preview). Commit per phase; defer push/deploy until +Francisco says so (unchanged). + +## Alternatives considered +- Stay lightweight (ADR-0001) — rejected: a multi-session rebuild needs phase structure and a + decision log to avoid getting lost / redoing work (we have already hit context limits once). +- Full orchestration with planner/implementer/verifier/reviewer subagents — rejected: cold-start + cost and the inability of subagents to use the live preview make them counterproductive for + iterative visual design; the value is in the planning, not the parallel code execution. + +## Consequences +- Positive: structured, resumable build; decisions and progress documented across sessions. +- Negative: more process overhead than lightweight mode (acceptable — Francisco opted in). +- Neutral: the per-phase push + PR convention applies, but actual push/deploy still waits for + Francisco's explicit go-ahead. diff --git a/docs/decisions/0004-room-materials-and-desktop-first.md b/docs/decisions/0004-room-materials-and-desktop-first.md new file mode 100644 index 0000000..e90436e --- /dev/null +++ b/docs/decisions/0004-room-materials-and-desktop-first.md @@ -0,0 +1,31 @@ +# 0004. Normal painted-room materials; desktop-first composition + +- Status: accepted +- Date: 2026-06-19 +- Supersedes: none +- Superseded-by: none + +## Context +The Phase 1 spec (`docs/01_room-shell-and-camera.md`) carried the v1 photo textures +(`public/textures/brick-color.jpg`, `wood-color.jpg`) forward as surface inputs, and its acceptance +criteria weighted desktop and mobile equally. During Phase 1 kickoff Francisco gave two corrections: +(1) do **not** keep the exposed brick + rough wood; go with "whatever the most normal is for a nice +room." (2) Focus on the **browser/desktop view** over mobile. + +## Decision +- **Materials:** Drop the brick and wood photo textures. The room reads as an ordinary nice + room — painted/plaster walls in a warm neutral, and a tasteful plain floor (smooth wood or neutral + tone), achieved primarily with CSS color/gradient/shadow rather than heavy photo tiles. New CC0 + material assets only if plain CSS can't sell it. +- **Viewport priority:** Compose and verify **desktop-first**. Mobile must not break, but the + perspective composition is judged on desktop; mobile is a graceful adaptation, not a co-equal target. + +## Alternatives considered +- Keep brick/wood — rejected: Francisco's explicit direction. +- Equal desktop+mobile parity in Phase 1 — rejected: splits effort on the riskiest phase; the + preview tool is also unreliable at mobile width (see handoff §6). + +## Consequences +- Positive: cleaner, more universally "nice room" look; lighter assets; clearer Phase 1 focus. +- Negative: the existing brick/wood tiles become unused (kept on disk for now, may be deleted later). +- Neutral: mobile polish deferred to Phase 4 (responsive/a11y), consistent with the plan. diff --git a/docs/decisions/0005-camera-travels-between-walls.md b/docs/decisions/0005-camera-travels-between-walls.md new file mode 100644 index 0000000..bd816c5 --- /dev/null +++ b/docs/decisions/0005-camera-travels-between-walls.md @@ -0,0 +1,42 @@ +# 0005. Camera travels & turns between walls (objects on any surface) + +- Status: accepted +- Date: 2026-06-19 +- Supersedes: none +- Refines: 0002 (perspective-room redesign) + +## Context +ADR-0002 described a "fixed corner-of-room camera with scroll-driven focus." During Phase 1, placing +readable placeholders only worked on the **back wall** under a truly fixed camera — the side walls sat +at a grazing angle (text collapsed to slivers) and the floor foreshortened to an unreadable line, so +Phase 1 initially parked all six anchors on the back wall. Reviewing that, Francisco said he wants the +experience to **"go between all the walls"** once real objects are added — i.e. scrolling should carry +you *around* the room to objects on the left wall, right wall, and floor, not just along one wall. + +## Decision +Evolve the camera from strictly fixed to a **travel-and-turn rig**: each focus target carries not just a +dolly/zoom but a **turn** (`ry` yaw / `rx` pitch) so the camera rotates to face whichever surface its +object lives on. Objects may therefore live on the **back wall, both side walls, or the floor**, and each +is framed roughly head-on when focused. Scrolling glides *and turns* between them, so the room is toured, +not just panned. The room also got a small base yaw/pitch (a three-quarter corner resting view) and was +enlarged + pulled back per Francisco's feedback the same day. + +Implementation: the rAF camera engine lerps `--cam-x/y/z` (truck/pedestal/dolly) **and** `--cam-ry/rx` +(yaw/pitch) between per-anchor targets. Fully facing a side wall self-centers it but fills the frame with +bare wall; a **moderate turn + slight pull-back** keeps the object on its wall *with* room context, which +reads better for real objects. + +## Alternatives considered +- Keep all objects on the back wall (strict fixed camera) — rejected: underuses the room and isn't the + "around the room" feel Francisco wants. +- Free-fly / first-person controls — rejected: out of scope, disorienting, and against the curated + scroll-to-focus model. + +## Consequences +- Positive: objects can be distributed across the room; the camera turning to each is the core "wow". +- Negative: per-object camera framing is **viewport-width sensitive** (tuned at ~961px desktop). Phase 2 + should make framing more robust (viewport-relative units / a fit calc) when real objects land. Flat + labels on the **floor** still read weakly — real floor presence should be **3D furniture standing on + it** (desk, plant) rather than flat plaques. +- Neutral: validated in Phase 1 with placeholders (one per wall + floor); real objects + a sensible + spatial tour order are Phase 2/3. diff --git a/docs/decisions/0006-camera-tour-order-and-left-wall.md b/docs/decisions/0006-camera-tour-order-and-left-wall.md new file mode 100644 index 0000000..f14e7d2 --- /dev/null +++ b/docs/decisions/0006-camera-tour-order-and-left-wall.md @@ -0,0 +1,50 @@ +# 0006. Camera tour finalized: left→right stop order, left wall via room-rotation, global pull-back + +- Status: accepted +- Date: 2026-06-20 +- Supersedes: none +- Refines: 0005 (camera travels & turns between walls) + +## Context +ADR-0005 built the travel-and-turn camera rig and explicitly **deferred a "sensible spatial tour +order" to Phase 2/3**. Reviewing the built Phase 1 in the live preview, Francisco raised three issues: +1. The education (left-wall) stop **"glitched through the wall"** — the view filled with a flat, + mirrored wall. Diagnosis: the stop turned the whole room the **wrong way** (`rry:+46`), which swung + the left wall's *back* toward the camera, so we were behind it looking at its mirrored backface. + (The prior session's DOM-measurement "passed" because a backface up close measures the same width as + a frontface up close — only the rendered pixels showed it was reversed.) +2. Every view felt **too close**, with no room to add real objects later. +3. The scroll progression **jumped around** the room (back → left → back → right → back) instead of + moving in order. + +## Decision +- **Left wall is faced by turning the whole ROOM toward it** (`--room-ry` to `-55°`), not by camera yaw. + Turning the room *toward* the wall (more negative) brings its painted inner face square-on; turning it + the other way (positive) shows the mirrored backface — that was the bug. Back-wall and right-wall stops + keep the resting room turn (`-14°`); right-wall stops still face via camera yaw (`ry:54`). +- **The six stops are laid out left→right** so scrolling the lettered sections A→F sweeps the camera + across the room with no backtracking: **About (A) = left wall** (the stop the page lands on); + **Education/Experience/Skills (B,C,D) = back wall, left→right**; **Involvement/Contact (E,F) = right + wall, back→front.** This realizes the tour order ADR-0005 deferred. +- **A single global "dolly-back" knob** (`--pull`, ≈ `-250px`, applied as the outermost transform on + `.camera`) steps *every* view back at once — breathing room now, and space to furnish in Phase 2 — + without re-tuning each anchor (relative framing is preserved). + +## Alternatives considered +- Face the left wall with camera yaw only (like the right wall) — rejected: the room's resting turn + leaves the left wall edge-on, so the marker collapsed to an unreadable sliver. +- Turn the room the other way (`+deg`) — rejected: that *is* the "glitch through the wall" (mirrored + backface filling the frame). +- Move education off the left wall onto the back/right wall — rejected: Francisco wanted the left wall + used; room-rotation makes it read head-on, so the wall earns its place. +- Pull each anchor back individually — rejected: one global knob keeps relative framing and is a single + number to tune. + +## Consequences +- Positive: scrolling now reads as one smooth left→right tour of the room; the left wall is usable + head-on; every stop has breathing room for real objects. +- Negative: **About lands on a side wall** (left) rather than the back wall — accepted, as the head-on + left-wall view is the cleanest single-wall shot and a strong opener. Per-object framing remains + **viewport-width sensitive** (carried from ADR-0005) — to be hardened in Phase 2 when real objects land. +- Neutral: facing is now **mixed** (left wall = room rotation, right wall = camera yaw). It works; a + later phase could unify the two mechanisms if it simplifies object placement. diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..05e726d --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,18 @@ +import { defineConfig, globalIgnores } from "eslint/config"; +import nextVitals from "eslint-config-next/core-web-vitals"; +import nextTs from "eslint-config-next/typescript"; + +const eslintConfig = defineConfig([ + ...nextVitals, + ...nextTs, + // Override default ignores of eslint-config-next. + globalIgnores([ + // Default ignores of eslint-config-next: + ".next/**", + "out/**", + "build/**", + "next-env.d.ts", + ]), +]); + +export default eslintConfig; diff --git a/next-env.d.ts b/next-env.d.ts new file mode 100644 index 0000000..c4b7818 --- /dev/null +++ b/next-env.d.ts @@ -0,0 +1,6 @@ +/// +/// +import "./.next/dev/types/routes.d.ts"; + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/app/api-reference/config/typescript for more information. diff --git a/next.config.ts b/next.config.ts new file mode 100644 index 0000000..e9ffa30 --- /dev/null +++ b/next.config.ts @@ -0,0 +1,7 @@ +import type { NextConfig } from "next"; + +const nextConfig: NextConfig = { + /* config options here */ +}; + +export default nextConfig; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..390aa89 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6817 @@ +{ + "name": "pf-scaffold", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "pf-scaffold", + "version": "0.1.0", + "dependencies": { + "next": "16.2.9", + "react": "19.2.4", + "react-dom": "19.2.4" + }, + "devDependencies": { + "@tailwindcss/postcss": "^4", + "@types/node": "^20", + "@types/react": "^19", + "@types/react-dom": "^19", + "eslint": "^9", + "eslint-config-next": "16.2.9", + "tailwindcss": "^4", + "typescript": "^5" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", + "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", + "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helpers": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz", + "integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", + "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/template": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz", + "integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@emnapi/core": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", + "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", + "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", + "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.5" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz", + "integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.14.0", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.1", + "minimatch": "^3.1.5", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz", + "integrity": "sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz", + "integrity": "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/types": "^0.15.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.8.tgz", + "integrity": "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.2", + "@humanfs/types": "^0.15.0", + "@humanwhocodes/retry": "^0.4.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/types": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-0.15.0.tgz", + "integrity": "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@img/colour": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", + "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", + "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", + "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", + "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", + "cpu": [ + "arm" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", + "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", + "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", + "cpu": [ + "ppc64" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", + "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", + "cpu": [ + "riscv64" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", + "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", + "cpu": [ + "s390x" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", + "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", + "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", + "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", + "cpu": [ + "arm" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", + "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", + "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", + "cpu": [ + "ppc64" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", + "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", + "cpu": [ + "riscv64" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", + "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", + "cpu": [ + "s390x" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", + "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", + "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", + "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.7.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", + "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", + "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "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, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@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, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.5.tgz", + "integrity": "sha512-AWPoBRJ9tsnVhor4sjO7rkni+7p+2IAEFj6cx06UgP10jkQHqay/36uRV/bFkgrh18D9vb4cr8Q0Pthskgzy+Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" + } + }, + "node_modules/@next/env": { + "version": "16.2.9", + "resolved": "https://registry.npmjs.org/@next/env/-/env-16.2.9.tgz", + "integrity": "sha512-ki5VxxXfzD/9TDe13wyeTKIjQTAwBVpnr8KhRDUr8ltMUq1/NBpWNT5tiPoxiGl+PHM4X2ahSOiPk6iAimIzPg==", + "license": "MIT" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "16.2.9", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-16.2.9.tgz", + "integrity": "sha512-UZi8+YT/MLgTC9nrrn2Xd4lBYv1B7lVmtWHfPcthAI5Tt/C1LuDe6DfmtCtJ+WQod3ksY4VrKSvk3oMVAnL7qw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-glob": "3.3.1" + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "16.2.9", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.2.9.tgz", + "integrity": "sha512-HkfxNYUCmcct0Xsqib5KxqMSHV4AHJq857BNRchyBDs4YS19aHzVfn1kDuBYKqLLQBjXgnkIsjV2Kd4d2wzYhw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "16.2.9", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.2.9.tgz", + "integrity": "sha512-7IAtK4MeybpqRV9GRABWEhJ62mOS+rzWOzOTFie4cSEtm12xsoOMJRcECoZx3FHPzFAqN/IJtHqWAFOLfl152w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "16.2.9", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.2.9.tgz", + "integrity": "sha512-hBD75iWpUtkL9SmQmcRhmLomn9jgkPzCEkbOcLgHymPEKzv+6ONy13RRiIEz/iEObjkS2Jlb5gYS2XGoS3X4rw==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "16.2.9", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.2.9.tgz", + "integrity": "sha512-qZTI3pf9SGc/obr8NkQAekBxmp1QK+kVm+VAf3BALLfFAj+1kUhkTxmrWpVos9R/UYIA8AWX2p6cGI5WdwzVUA==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "16.2.9", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.2.9.tgz", + "integrity": "sha512-xm0HfRNX+UkH4R3c18ynswjj5o5uEj/7iI9p9omdtTSIsRCzQqkGMA+10nzJ4EHnYC3as65IMhbbl5fWRUWHYg==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "16.2.9", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.2.9.tgz", + "integrity": "sha512-QumimHkGEG6vM3PfEDWKyKen03NcqLOkeKB1EfcPe7VxzmEiCa4jNnMyBn/US5zcd/VE1CI+O8Ovb3lfjVHfGw==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "16.2.9", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.2.9.tgz", + "integrity": "sha512-hzQpKZvw8rAwI6A2uQh6SacCSvNAXaIkPNsWwzqqfRiIMiXMfH936skDhz1OO6KpvdKkJrgHHtqQOq5PIXOvdQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "16.2.9", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.2.9.tgz", + "integrity": "sha512-qr2VL3Ce5QrwgO2yh1ujSBawrimjVKX8FGF/cOynmdYKJY0BdHpGVNIRK1tqONB10Vkm25Ub1BD2bkjWs4+96w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.4.0" + } + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@swc/helpers": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@tailwindcss/node": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.1.tgz", + "integrity": "sha512-6NDaqRoAMSXD1mr/RXu0HBvNE9a2n5tHPsxu9XHLws8o4Twes5rBM2205SUUiJ9goAtadrN6xTGX0UDEwp/N4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "enhanced-resolve": "5.21.6", + "jiti": "^2.7.0", + "lightningcss": "1.32.0", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.3.1" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.1.tgz", + "integrity": "sha512-yVPyo8RNkabVr3O2EhHEE0Rewu7YKzc1DhIqfL46LKveFrmu9XbDazNOJY7/GRuvw1h6u3utWnR29H/p5JPlgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.3.1", + "@tailwindcss/oxide-darwin-arm64": "4.3.1", + "@tailwindcss/oxide-darwin-x64": "4.3.1", + "@tailwindcss/oxide-freebsd-x64": "4.3.1", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.1", + "@tailwindcss/oxide-linux-arm64-gnu": "4.3.1", + "@tailwindcss/oxide-linux-arm64-musl": "4.3.1", + "@tailwindcss/oxide-linux-x64-gnu": "4.3.1", + "@tailwindcss/oxide-linux-x64-musl": "4.3.1", + "@tailwindcss/oxide-wasm32-wasi": "4.3.1", + "@tailwindcss/oxide-win32-arm64-msvc": "4.3.1", + "@tailwindcss/oxide-win32-x64-msvc": "4.3.1" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.1.tgz", + "integrity": "sha512-SVlyf61g374l5cHyg8x9kf5xmLcOaxvOTsbsqDnSsDJaKOEFZ7GCvi84VAVGpxojYOs1+3K6M0UjXfqPU8vmOQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.1.tgz", + "integrity": "sha512-hVnWLwv+e/l7c4WKyVtHVrIPvYdqWHjRB3MDIqARynzFtnQg85kmQEFCbV9Ja0VVx4xXTIiDWY60Y7iz/iNoDA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.1.tgz", + "integrity": "sha512-Cf7abu0WVgbhU7ANgPUnSAvm7nCvMweusHb8FnaHlLfv/Caq4GYaEZg7ZImzzmjx4lIAfuS8q+eLIS7A7IzxIg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.1.tgz", + "integrity": "sha512-ZZqzX2Y+GXtXXfqSfpJhDm60OoZfvLHLCgm+J7NVqgHHJjG/m9ugZI77RwTsVd4fnBJuCFP6Ae6kTJb71UdS8g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.1.tgz", + "integrity": "sha512-/Ah/xik0LaMYfv9DZ0S/t4pBlBNYOcqtRwusjgovHkvT8ixueWCLyJjsaF5kQIckjb4IT8Q6K6p/iPmZMixYgg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.1.tgz", + "integrity": "sha512-gqdFoVJlw444GvpnheZLHmvTzSxI/cOUUh2KSNejQjTcYkW062SVD+En0rUgD+QV91bz1XGIGtt1HJd48xUGbQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.1.tgz", + "integrity": "sha512-Bwv9KwOvE0VKa86xPFif9b9c3Y1NxOV1P0gLti/IYaWEsQYZXDlxfGEtA8mdDZ7SG3wyNXAWYT5SIn3giL57oA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.1.tgz", + "integrity": "sha512-Ymi8O8T15HYQdOUWUtTI6ldN0neHP85FC+Qz32xTcZ7iJXtem/x8ITev0o1e9e5rkqj4lONZfTRLvkmin1+tKg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.1.tgz", + "integrity": "sha512-M+P/91qJ6uILLw4k2G93GMDRAXj61SMvFQYt39AqvUqYgExXpLL5aepfns7sj4HiAQeolirQF9E0lzRvdf4zPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.1.tgz", + "integrity": "sha512-zsM8uOeqvVGHsAXsJxsT28ttosFahLJKCLOTUBqRAtKnVgGSRitds9T432QiT8b77Yga7JIBkulIRRlJPtYhRA==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.10.0", + "@emnapi/runtime": "^1.10.0", + "@emnapi/wasi-threads": "^1.2.1", + "@napi-rs/wasm-runtime": "^1.1.4", + "@tybys/wasm-util": "^0.10.2", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.1.tgz", + "integrity": "sha512-aiNvSq9BsVk8V513lDKlrCFAgf8qBMPZTpgEhInL+NwQqs97mYmupVMrPrgBBSL8Pv/0zXu9MrMF9rMun1ZeNg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.1.tgz", + "integrity": "sha512-xDEyu1rg290472FEGaKHnzyDyh5QH+AlWvsU5hMoMtPpzmKlRI0jaYKCgSHDYtaQWZOYbMaduSyCwFwY4n1HmA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/postcss": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.3.1.tgz", + "integrity": "sha512-dNJuNbdEJT/SWRuXTYP1WSamelsz3ztkUsdtWQPjrexysrTpaEPM40P/71knXiXLYEojqPOEGitVLLpPMS5T6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "@tailwindcss/node": "4.3.1", + "@tailwindcss/oxide": "4.3.1", + "postcss": "8.5.15", + "tailwindcss": "4.3.1" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz", + "integrity": "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.19.43", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.43.tgz", + "integrity": "sha512-6oYBAi5ikg4Pl+kGsoYtawUMBT2zZMCvPNF7pVLnHZfd1zf38DRiWn/gT01RYCdUqkv7Fhr+C9ot4/tb+2sVvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/react": { + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.17.tgz", + "integrity": "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==", + "dev": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.2.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.61.1.tgz", + "integrity": "sha512-ZPlVl3PB3et/59Ne0fv/sci6ZXz4T4Hp4nTJ56i/Y0gR89ARb+KphojTq6j+56E5PIezmOIOOWyY+aWQFd+IkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.12.2", + "@typescript-eslint/scope-manager": "8.61.1", + "@typescript-eslint/type-utils": "8.61.1", + "@typescript-eslint/utils": "8.61.1", + "@typescript-eslint/visitor-keys": "8.61.1", + "ignore": "^7.0.5", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.61.1", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.61.1.tgz", + "integrity": "sha512-PJ5vePq5/ognBbrIcoC5+SHO5dfpeLPzP9FpLkzWrguoYQEeeSjlJpVwOpo1JRSTEi7dRcwNy4h4dzV70PqHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.61.1", + "@typescript-eslint/types": "8.61.1", + "@typescript-eslint/typescript-estree": "8.61.1", + "@typescript-eslint/visitor-keys": "8.61.1", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.61.1.tgz", + "integrity": "sha512-PrC4JYGmR241lYnfhmKGTXkFqv8+ymbTFgSAY0fVXpY82/QkMw5TZPl+vGzuDDU2QYJk9fIDOBTntF+yDv9LEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.61.1", + "@typescript-eslint/types": "^8.61.1", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.61.1.tgz", + "integrity": "sha512-L2bdIeoQS8FlKAvONAr20w6OcLXeB+qiDKbAooS9A0Ben+iSIkBef0FxqwKWYqt5sa0i4KJtxVyVmhMylKzF5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.61.1", + "@typescript-eslint/visitor-keys": "8.61.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.61.1.tgz", + "integrity": "sha512-UN/H4di+OO7EWx2ovME+8t31YO+KVnK0RRKEHR3kOt21/Ay8BOq3M1OMvWs5vNiqcFCYGYoxK3MXPZzmMUE+yg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.61.1.tgz", + "integrity": "sha512-GYRicKmVK0C4fsKgaACaknOUAq9Oa2kwsjnpFhFcS/5p4Ht5IP9OVLbgIgcK4SRk92nVHFluurg1lumD9dBcLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.61.1", + "@typescript-eslint/typescript-estree": "8.61.1", + "@typescript-eslint/utils": "8.61.1", + "debug": "^4.4.3", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.61.1.tgz", + "integrity": "sha512-G+CRlPqLv7Bz1IZVs03x5K59F1veqL0EJUROAdGhKsEq8qOiRiZbI+HUojPq5l0fEGOKModD9br6lObhB8zkoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.61.1.tgz", + "integrity": "sha512-u+oQD3BqYWPc8YV9Zab4vaJElJuwOLPRc10Jm1o/qS+6Qwen14HCWwx0Seo4LnSn2wxea2Ik8DxPt2/FHmuhrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.61.1", + "@typescript-eslint/tsconfig-utils": "8.61.1", + "@typescript-eslint/types": "8.61.1", + "@typescript-eslint/visitor-keys": "8.61.1", + "debug": "^4.4.3", + "minimatch": "^10.2.2", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", + "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.5" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.4.tgz", + "integrity": "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.61.1.tgz", + "integrity": "sha512-1+P/3Dj6jvtybE1q0HQ6yBt/gq+oKJyLdEv4HdnqasaEXRSYCAsD59mXEVQnM/ULNdQxbX77tdG4jPRjIS6knA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.61.1", + "@typescript-eslint/types": "8.61.1", + "@typescript-eslint/typescript-estree": "8.61.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.61.1.tgz", + "integrity": "sha512-6fJ9MHWtK14C1DSkiMlHUSOmrVebL7150xZJBlJiL62jjhIA4JmOq6flwBgDxIdBKKdoiZRel+dfPD5MLfny3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.61.1", + "eslint-visitor-keys": "^5.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@unrs/resolver-binding-android-arm-eabi": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.12.2.tgz", + "integrity": "sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-android-arm64": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.12.2.tgz", + "integrity": "sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.12.2.tgz", + "integrity": "sha512-u9DiNT1auQMO20A9SyTuG3wUgQWB9Z7KjAg0uFuCDR1FsAY8A0CG2S6JpHS1xwm/w1G08bjXZDcyOCjv1WAm2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.12.2.tgz", + "integrity": "sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.12.2.tgz", + "integrity": "sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.12.2.tgz", + "integrity": "sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.12.2.tgz", + "integrity": "sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.12.2.tgz", + "integrity": "sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.12.2.tgz", + "integrity": "sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-loong64-gnu": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-gnu/-/resolver-binding-linux-loong64-gnu-1.12.2.tgz", + "integrity": "sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-loong64-musl": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-musl/-/resolver-binding-linux-loong64-musl-1.12.2.tgz", + "integrity": "sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.12.2.tgz", + "integrity": "sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.12.2.tgz", + "integrity": "sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.12.2.tgz", + "integrity": "sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.12.2.tgz", + "integrity": "sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.12.2.tgz", + "integrity": "sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.12.2.tgz", + "integrity": "sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-openharmony-arm64": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-openharmony-arm64/-/resolver-binding-openharmony-arm64-1.12.2.tgz", + "integrity": "sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.12.2.tgz", + "integrity": "sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.10.0", + "@emnapi/runtime": "1.10.0", + "@napi-rs/wasm-runtime": "^1.1.4" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi/node_modules/@emnapi/runtime": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.12.2.tgz", + "integrity": "sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.12.2.tgz", + "integrity": "sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.12.2.tgz", + "integrity": "sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/acorn": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz", + "integrity": "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.12.1.tgz", + "integrity": "sha512-s7iGf5GaVMxEG0ENN9x+xTr7GFZCb1ZP/1uATUpCEK2X78nDB3RwbtFCo9pGAf9ru+VwoQ464DkaLEeRM08wJA==", + "dev": true, + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "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, + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.37", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.37.tgz", + "integrity": "sha512-girxaJ7WZssDOFhzCGZTDKoTa1gk6A1TbflaYTpykLJ4UU9Fz9kx1aREM8JCuoVHbL8X8T/mJg7w2oYSq72Oig==", + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz", + "integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "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, + "license": "MIT", + "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" + } + ], + "license": "MIT", + "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/call-bind": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001799", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001799.tgz", + "integrity": "sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw==", + "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" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "devOptional": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.375", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.375.tgz", + "integrity": "sha512-ZWP5eB4BVPW/ZYo9252hQZHZ5XavtsTgpbhcmMmRwymavC5AsLWQWBPaKMeNd2LW0KGby5HPXvj7+sr4ta5j/Q==", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/enhanced-resolve": { + "version": "5.21.6", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.21.6.tgz", + "integrity": "sha512-aNnGCvbJ/RIyWo1IuhNdVjnNF+EjH9wpzpNHt+ci/m9He9LJvUN8wrCcXjp9cWsGNAuvSpVFTx/vraAFQ8qGjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/es-abstract": { + "version": "1.24.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz", + "integrity": "sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-abstract-get": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-abstract-get/-/es-abstract-get-1.0.0.tgz", + "integrity": "sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.2", + "is-callable": "^1.2.7", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.3.3.tgz", + "integrity": "sha512-0PuBxFi+4uPanB97iDxCLWuHeYud2FALrw5HFZGtAF38UpJDbDC8frwp2cnDyae692CQ0dou60UwWfhgsa4U/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.2", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.1.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.3.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.5", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.1.tgz", + "integrity": "sha512-CxN9N56HYfd2m/acc/NOFrZQsN9kU4eh+2kk6A707Kz1krH8tKmfrs5RnftB8WNX80T0NS7vSQsDOlg23diR2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-abstract-get": "^1.0.0", + "es-errors": "^1.3.0", + "is-callable": "^1.2.7", + "is-date-object": "^1.1.0", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz", + "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.2", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.5", + "@eslint/js": "9.39.4", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.5", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-next": { + "version": "16.2.9", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-16.2.9.tgz", + "integrity": "sha512-olGtBrs07bQchpaJWeqbk9GaMoU0oGmN/pYNEBXSbfgKngb5uHnPe37X6tVeh6DJfaWFQildvinGEOrolo5fmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@next/eslint-plugin-next": "16.2.9", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.32.0", + "eslint-plugin-jsx-a11y": "^6.10.0", + "eslint-plugin-react": "^7.37.0", + "eslint-plugin-react-hooks": "^7.0.0", + "globals": "16.4.0", + "typescript-eslint": "^8.46.0" + }, + "peerDependencies": { + "eslint": ">=9.0.0", + "typescript": ">=3.3.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-config-next/node_modules/globals": { + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.4.0.tgz", + "integrity": "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.10.tgz", + "integrity": "sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.16.1", + "resolve": "^2.0.0-next.6" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.1.tgz", + "integrity": "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.4.0", + "get-tsconfig": "^4.10.0", + "is-bun-module": "^2.0.0", + "stable-hash": "^0.0.5", + "tinyglobby": "^0.2.13", + "unrs-resolver": "^1.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-import-resolver-typescript" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.13.0.tgz", + "integrity": "sha512-bLohSkT6469rRs8czj0tLTD8vaeIS/whvPRJVjDr7IuoTT1k5DYDERlNycjDj/HkOlvQdYurmfZ/g3fG5bgeLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.1", + "hasown": "^2.0.2", + "is-core-module": "^2.16.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.1", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.9", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.9", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.1.1.tgz", + "integrity": "sha512-f2I7Gw6JbvCexzIInuSbZpfdQ44D7iqdWX01FKLvrPgqxoE7oMj8clOfto8U6vYiz4yd5oKu39rRSVOe1zRu0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.24.4", + "@babel/parser": "^7.24.4", + "hermes-parser": "^0.25.1", + "zod": "^3.25.0 || ^4.0.0", + "zod-validation-error": "^3.5.0 || ^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 || ^10.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "license": "MIT", + "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.4" + }, + "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, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "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, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.2.0.tgz", + "integrity": "sha512-jObKIik1P2QjPHP5nz5BaOtUlfgS0fWo8IUByNXkM+o+02sJOi94em77GwJKQSJ3gfPHdgzLNrHc1uokV4P/ew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2", + "hasown": "^2.0.4", + "is-callable": "^1.2.7", + "is-document.all": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.0.tgz", + "integrity": "sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "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, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hermes-estree": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz", + "integrity": "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==", + "dev": true, + "license": "MIT" + }, + "node_modules/hermes-parser": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz", + "integrity": "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hermes-estree": "0.25.1" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bun-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", + "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.7.1" + } + }, + "node_modules/is-bun-module/node_modules/semver": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.4.tgz", + "integrity": "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-document.all": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-document.all/-/is-document.all-1.0.0.tgz", + "integrity": "sha512-+XSoyS05OdBbhFuELhgTCpFNHkpBOJqtsZfUFFpe5QTw+9Sjbh8zitxhQkYAo6wV7e1Vb8cAPvpCk9jGam/82g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/jiti": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", + "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz", + "integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dev": true, + "license": "MIT", + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lightningcss": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/napi-postinstall": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz", + "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==", + "dev": true, + "license": "MIT", + "bin": { + "napi-postinstall": "lib/cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/napi-postinstall" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/next": { + "version": "16.2.9", + "resolved": "https://registry.npmjs.org/next/-/next-16.2.9.tgz", + "integrity": "sha512-MEOJiq/UvuezAdqVSceHbqDgZt1kDw2tpGVOlsdIoJsQdbN2JY2hpVG4xnXGkbdJUOEWhnRfiu/O4Hpc9Juwww==", + "license": "MIT", + "dependencies": { + "@next/env": "16.2.9", + "@swc/helpers": "0.5.15", + "baseline-browser-mapping": "^2.9.19", + "caniuse-lite": "^1.0.30001579", + "postcss": "8.4.31", + "styled-jsx": "5.1.6" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=20.9.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "16.2.9", + "@next/swc-darwin-x64": "16.2.9", + "@next/swc-linux-arm64-gnu": "16.2.9", + "@next/swc-linux-arm64-musl": "16.2.9", + "@next/swc-linux-x64-gnu": "16.2.9", + "@next/swc-linux-x64-musl": "16.2.9", + "@next/swc-win32-arm64-msvc": "16.2.9", + "@next/swc-win32-x64-msvc": "16.2.9", + "sharp": "^0.34.5" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.51.1", + "babel-plugin-react-compiler": "*", + "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "@playwright/test": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/next/node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/node-exports-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/node-exports-info/-/node-exports-info-1.6.0.tgz", + "integrity": "sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array.prototype.flatmap": "^1.3.3", + "es-errors": "^1.3.0", + "object.entries": "^1.1.9", + "semver": "^6.3.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/node-releases": { + "version": "2.0.47", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.47.tgz", + "integrity": "sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.5.15", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", + "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", + "dev": true, + "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" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.12", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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" + } + ], + "license": "MIT" + }, + "node_modules/react": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", + "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", + "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.4" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve": { + "version": "2.0.0-next.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.7.tgz", + "integrity": "sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.2", + "node-exports-info": "^1.6.0", + "object-keys": "^1.1.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/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "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" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.4.tgz", + "integrity": "sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "get-intrinsic": "^1.3.0", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/sharp": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", + "hasInstallScript": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@img/colour": "^1.0.0", + "detect-libc": "^2.1.2", + "semver": "^7.7.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.34.5", + "@img/sharp-darwin-x64": "0.34.5", + "@img/sharp-libvips-darwin-arm64": "1.2.4", + "@img/sharp-libvips-darwin-x64": "1.2.4", + "@img/sharp-libvips-linux-arm": "1.2.4", + "@img/sharp-libvips-linux-arm64": "1.2.4", + "@img/sharp-libvips-linux-ppc64": "1.2.4", + "@img/sharp-libvips-linux-riscv64": "1.2.4", + "@img/sharp-libvips-linux-s390x": "1.2.4", + "@img/sharp-libvips-linux-x64": "1.2.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", + "@img/sharp-libvips-linuxmusl-x64": "1.2.4", + "@img/sharp-linux-arm": "0.34.5", + "@img/sharp-linux-arm64": "0.34.5", + "@img/sharp-linux-ppc64": "0.34.5", + "@img/sharp-linux-riscv64": "0.34.5", + "@img/sharp-linux-s390x": "0.34.5", + "@img/sharp-linux-x64": "0.34.5", + "@img/sharp-linuxmusl-arm64": "0.34.5", + "@img/sharp-linuxmusl-x64": "0.34.5", + "@img/sharp-wasm32": "0.34.5", + "@img/sharp-win32-arm64": "0.34.5", + "@img/sharp-win32-ia32": "0.34.5", + "@img/sharp-win32-x64": "0.34.5" + } + }, + "node_modules/sharp/node_modules/semver": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.4.tgz", + "integrity": "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==", + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", + "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4", + "side-channel-list": "^1.0.1", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stable-hash": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", + "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.11.tgz", + "integrity": "sha512-PwvK7BU+CMTJGYQCTZb5RWXIML92lftJLhQz1tBzgKiqGxJaMlBAa48POXaNAC2s4y8jr3EFqrkF9+44neS46w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.2", + "es-object-atoms": "^1.1.2", + "has-property-descriptors": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.10.tgz", + "integrity": "sha512-2+3aDAOmPTmuFwjDnmJG2ctEkQKVki7vOSqaxkv42Mowj1V6PnvuwFCRrR5lChUux1TBskPjfkeTOhqczDMxTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", + "license": "MIT", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.1.tgz", + "integrity": "sha512-hk+TB1m+K8CYNrP6rjQaq/Y+4Zylwpa87mLYBKCunwnnQ9p+fHb7kmSfGqyEJoxF/O6CDyABWVFEafNSYKll+Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.8.tgz", + "integrity": "sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "for-each": "^0.3.5", + "gopd": "^1.2.0", + "is-typed-array": "^1.1.15", + "possible-typed-array-names": "^1.1.0", + "reflect.getprototypeof": "^1.0.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.61.1.tgz", + "integrity": "sha512-V7PayAfJokV3pEHgN7/v03D1SpujhRfQtYLbLIiBfDDncdg4PAiRBfoS4cnCANK4jmAPncczi59QO3afiXUlNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.61.1", + "@typescript-eslint/parser": "8.61.1", + "@typescript-eslint/typescript-estree": "8.61.1", + "@typescript-eslint/utils": "8.61.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/unrs-resolver": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.12.2.tgz", + "integrity": "sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "napi-postinstall": "^0.3.4" + }, + "funding": { + "url": "https://opencollective.com/unrs-resolver" + }, + "optionalDependencies": { + "@unrs/resolver-binding-android-arm-eabi": "1.12.2", + "@unrs/resolver-binding-android-arm64": "1.12.2", + "@unrs/resolver-binding-darwin-arm64": "1.12.2", + "@unrs/resolver-binding-darwin-x64": "1.12.2", + "@unrs/resolver-binding-freebsd-x64": "1.12.2", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.12.2", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.12.2", + "@unrs/resolver-binding-linux-arm64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-arm64-musl": "1.12.2", + "@unrs/resolver-binding-linux-loong64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-loong64-musl": "1.12.2", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-riscv64-musl": "1.12.2", + "@unrs/resolver-binding-linux-s390x-gnu": "1.12.2", + "@unrs/resolver-binding-linux-x64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-x64-musl": "1.12.2", + "@unrs/resolver-binding-openharmony-arm64": "1.12.2", + "@unrs/resolver-binding-wasm32-wasi": "1.12.2", + "@unrs/resolver-binding-win32-arm64-msvc": "1.12.2", + "@unrs/resolver-binding-win32-ia32-msvc": "1.12.2", + "@unrs/resolver-binding-win32-x64-msvc": "1.12.2" + } + }, + "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" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.22", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.22.tgz", + "integrity": "sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz", + "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zod-validation-error": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-4.0.2.tgz", + "integrity": "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "zod": "^3.25.0 || ^4.0.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..5683297 --- /dev/null +++ b/package.json @@ -0,0 +1,26 @@ +{ + "name": "portfolio", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "eslint" + }, + "dependencies": { + "next": "16.2.9", + "react": "19.2.4", + "react-dom": "19.2.4" + }, + "devDependencies": { + "@tailwindcss/postcss": "^4", + "@types/node": "^20", + "@types/react": "^19", + "@types/react-dom": "^19", + "eslint": "^9", + "eslint-config-next": "16.2.9", + "tailwindcss": "^4", + "typescript": "^5" + } +} diff --git a/postcss.config.mjs b/postcss.config.mjs new file mode 100644 index 0000000..61e3684 --- /dev/null +++ b/postcss.config.mjs @@ -0,0 +1,7 @@ +const config = { + plugins: { + "@tailwindcss/postcss": {}, + }, +}; + +export default config; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..cf9c65d --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,34 @@ +{ + "compilerOptions": { + "target": "ES2017", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "react-jsx", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./src/*"] + } + }, + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx", + ".next/types/**/*.ts", + ".next/dev/types/**/*.ts", + "**/*.mts" + ], + "exclude": ["node_modules"] +} From d24cee75d12124142f81e7cde959b3e8edf35f38 Mon Sep 17 00:00:00 2001 From: BootySaturn Date: Sat, 20 Jun 2026 10:46:09 -0400 Subject: [PATCH 2/2] feat(room): perspective room shell with scroll-to-focus camera MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 1 (ADR-0002): a CSS-3D room corner — back/side walls + floor + warm dim ceiling under one perspective, lit for a cozy evening. A fixed camera glides between six placeholder focus anchors as you scroll, laid out left-to-right so the tour sweeps the room in order (ADR-0006). Left wall faced via room-rotation; one warm scheme (ADR-0004, themes removed). Co-Authored-By: Claude Opus 4.8 --- public/images/asce.jpg | Bin 0 -> 59309 bytes public/images/careerfair.jpg | Bin 0 -> 76469 bytes public/images/jobsite.jpg | Bin 0 -> 96866 bytes public/images/spider-logo.png | Bin 0 -> 17990 bytes src/app/favicon.ico | Bin 0 -> 25931 bytes src/app/globals.css | 327 ++++++++++++++++++++++++++++ src/app/layout.tsx | 38 ++++ src/app/page.tsx | 5 + src/components/Portfolio.tsx | 391 ++++++++++++++++++++++++++++++++++ src/content/site.ts | 228 ++++++++++++++++++++ 10 files changed, 989 insertions(+) create mode 100644 public/images/asce.jpg create mode 100644 public/images/careerfair.jpg create mode 100644 public/images/jobsite.jpg create mode 100644 public/images/spider-logo.png create mode 100644 src/app/favicon.ico create mode 100644 src/app/globals.css create mode 100644 src/app/layout.tsx create mode 100644 src/app/page.tsx create mode 100644 src/components/Portfolio.tsx create mode 100644 src/content/site.ts diff --git a/public/images/asce.jpg b/public/images/asce.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cf250b7d5b48f21b5c1dd9fcbfc35a36d2fb60ee GIT binary patch literal 59309 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 literal 0 HcmV?d00001 diff --git a/public/images/careerfair.jpg b/public/images/careerfair.jpg new file mode 100644 index 0000000000000000000000000000000000000000..48c4f97682f2ae1c121e08caaa8a98d14e1eb15c GIT binary patch literal 76469 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�pDRRl-BIYq*%e>onJKHF z9&25vHtQ*a6*Ky)32nB>#<%_~mRM8!A2XFj&8Mt9khCvCUCqU&rvXK&_^FPr`K}EX^yqUC6RmnI{3_@H3785=q6K z!P=%3;|PeRs~nya%nj!w@6h`JPZZH4z*J$mQ$Whts) zOi@T?cx8yiwKLRU)Y))btzN@jTX|Dm^$oKkTHk(rQCSjMu%V2w3~+nQ-P#NWO--7_(=r`P#>c)%*v+HHBl%8_9KY+q{&kc{g?U{Vi1yl_|7 z!D+FveFwv2aGXmBYR_T(U5>Wfr5bqHg}7n}a(ap08uX1rymofU{RoTzu`;*baWq`c z9l0^|c1l8C#9@X-whF|>6MUMs9wuQ&;%26e+dUq+Bfl&%!XOZAiibK&OAYQ-L2;+Q zD@u_xtaha3vLfnh-X-k?BCtdDy91N$z9SRR%CjFzYZ_z2j_EV3(ZUPqAJC{4ltQ5}7Vy1;E8E1>;@P&q64ELRjKV!*tnw(_`GzT*pl z2f$T?e&I)GgXToJU6%Fuou@9Pe37mKl;180@FC_|HCTAS#3>ts&SI0u&{2^Pv{_vW zad^zSE-9Zmo|poh+nEhyV0j&M;mm2Rd zV+_CXYdAYNgM>YtTl08iis5zEXfr9EN4{-W>xFQjQp#(m=OII2cNWq5xOs1E@7Y$-e$`N?#_Tr>$Ll#3*vlta92Il zaI_4dvU7msXM1bgt#sXfgro0JxWsKTw9He9_QkMkk=Pj~I#8|g!?!Ln8$2?NWCg4j z$C7n^iYFk=v#20W z7cK@Mg1CJ@OWyXMT1)S69nb^h%Tr;-Q(@;VQ@oY7O=@9zVi;S=uefd0^;=nL0#Hn{ zS6n#%pn+{GAAyj&NA!1^!SDYdvUmQQF>yL-!Tq_99t1x~ONGX~GA^0W;djvAOs=0S z*^V+#w=$(^%p=3mnFk)wz0@K;Z;sYfG0$`c|GtY0W|~$+W*w4wgig<8UXz`h?_b{z z>`Zv$p`=zK8Jjcdi~m9Fy0|RZQQNYRDvBqTWK|Oie$(!M&Z4<8MA&|`IFP;#Vi0>g zZVQr59l&NkS{oLKa{*Hzpc3m0!*^?ACh)L;@Hi_F<3jI*Nk3~Q-JzA{nXH(ko%jSK z5Ya?WMIRQmFXe9xDu`P&Lh?fHx~{v(cm|fvlbN}PvflG{QB5Am72L_mVeQ)ixSjw+ zG}`nTz#e;-<^{`g#ZUaK(z~E59sED7>3&>&=!Rut$>~v*^WJWclDD(oWHrM{<4h-d zSe=5#1m2%S%*Zn&)G9$*M z?X29*5=PzzV$z*pKSt8xMIxG1RHGWWFO3PqpZw#H3#fAUz3VM2B)Rz4Gb;1Sttr%@pIYbbcUQQ>5-Wx{_7d9UpUbe zKLzkPC&77h?)M3e3k|#UW!hp$_N+3m5NNf5kVse<*3vKJy=XpHLi>KH`J(~ga#sy- zV`pO=T51LeY z{={Oii0;$9{rCrwUU-xCp&m4*^8Do=1jGM*5=(UZfA7di`tKq8yW-fJoP0YHF!R0wDFJ;#LS za*P~bBpjBFG-$K9qw!Z_LDxOjh6{RU`$PqxK!5gtL;OcAy+M)oTYJ>S=T|sD=~7I+t>}nX3_7k-LEcj~s#vrU*b_PD z8`zN%q)S?vmzKBKwlU z_+cL}tDACsd-a|qQN6k4AIu}Aaq(O2vo;bxF;qpGDWngv<_LWvX~Y_Ry_>gpf_wke zpl81IILvR&!lrYo-FWPmBOBUkTkZq>(d$1Z`)I%!cs7tTqSuvn@8*8YoSoFCBSR+J z-^CjQ-^cEB-5l?!^}ihgKA1iKAyW*`t~i5qA$y+Xz3#Klt)9-k!1f zlC|y=Rn9%7+BG?Ks!C`D9l)rc=+`A|y0p%fXmqT>?z#K@CRY3+_F%23=U2iHe;dL* z0%Dg`XaS@TI&5~$dP2-u)b;pNn0NV3?!E3e(LPisq)6|&C)~!2B%~NfL-sc`^5uEC z8cKiHN33UkWJ5N_8qKN~j$6fG24-}t_KLZoC6Td&`MVV!_%!lHGEsxna(peyh7&7u zq~D@bXU9dRD&#(K=Bg^=Q&=%5xcOF}#GWCxTLajW$6X;*Ch0Ng4TppNYNGkP?OaEY z!6(<%eYvpr3M+`&><{r+oOg5NO0|m-H3HW?aK3Rw<+tf#$|6aN0G;;8qQdhGf5<&d zv47oDrV?FyLht09$?A=T*=u2fn$7{jWPB1o)1?$a<&Hp^jNhPzMQ-;>` z2LyN1DJ3I5WjYJOA;9_s*Dct`eets?Irz8B;+zFB#36fZ8to|v%`fi$^Us>ROH`K4 zK+QTU&Gvp~CHZ=$w!{7vy1rLM28wJYqM8Bjl_ZY1k`YoT(zW!{&?IR1&UdQIQQsx` z-r<`BCS0P+m%}`Rj}pKs^XPGb;PR0*vL?cMtSthT6?aVG+G4Ub6%}2trnu z`Pv3#h9U^~OyV~^9@!9x_EsygFwj#@$2feEs34KL>P$W!m*XOKcM3ETT?C6lmqe(U(G`=xacL7vnOpf#0mc%LRkN1$XMaf?9HP5h6iwl z-hBu*R}L7fEd6XAb!elr+BAm@R1^6WP*e@_@D563g#-`j{+TNE`9%y1)tf3ekS^Jr zDm>_+?R}n1K|P$;LDMKcD%O9&EK1(I;v_uV@0LvpLqYE8GvhVy*+~DZ{`R*|6GG>l zIra}`F0%rx+Vprn#|nl;g+1=I<;z0c1|+{?W=kBXY9iMK`&ed=jQ6Ry8dr5`DPI`yD*Q%j$_+Ann7t`hv!q>ecu02OQMYu@ zM;;lb-T3SD58^g!4h;Qi)j@^%pFzj}Y&!mT@E;fk6N7?-{F4d8?h+!FQuKe2gBY{D z5^&5b^0D4HP0>=?Y_#%PCac_J9(p}Q zdhc)D9|(pb!#e{xxw^00);?e`XlE@Kwxs$;$!XFb`=?gjvyfZ0m7!@{#M(mxI`x4A zofdSg8Qd)%_U7aLa=@Ew3xx&14?~v(Ucx=^zbzrtZ~cKja6PZ$-{AmeERjslR~O zF$=HbPRCuW#6_>XeHrZ- z>(XRq_x~U;p1e)h*M=Rn44ahUDLvsK1YNI0-wj~Hhi1o-QW`%etOeF787J)XXOSD! zgoG;3Z7gdcE?nnmp7zmgUX+Hv{ou}8fQx@iAf|pQ9eX5y-IdBQRw4k7C%hOnia?i6 zU~1JqPnhGPL6oL(Xw`#oXRXE5`x+FK{McLiPMJkt3UaZ?(Pi+Iv$G@|xVbIgFLWYB z1FTF_2PkG55<^LrBeU!`q1PvFZyr`Yw0EUA8HoDvB(rQ(GjG+`*GG}jT%tppcIxv# zfTB>>QyhO?%9%xu2nfLiXUd&mY;M3L^fY-scgk#ze0V)iJ}K9%nuqvsmDIA=)CsF> zqN6jfj^hzmQDi5g5#S+_h3W5s6N_e*ur!ro3!)k@ebza!{g?A4)E7EH>bz(h>nf1Z+y`AktR(!p3eYc;` zLS#5r%yMlZ1XeN#Z&Hj%-gJ&&ZX9v+G=Z}iNKr5{pp4+xA^0SNto36VzRKB19=45&FiW4i`bn%pye}kn^%E8lK|k}da$SmO$6Qy~^1h0m zw2~DB83sz+EFH5{E%`UfexOYI=e>&Phf|F^*6VZ#6OfO3^Q!D349Qrp4o!=QLt3ln`KPxY#jk-zJZ5%XXOq`U~A-`?ZerHgv_aQ-v7>y3uGGu*Zd z=g}pJ>TP~FapENuSm4(fc5YsGiJaHCO>?O#VcOyi1nswxj?=6z3WrZNibw)qyvGGZ z_k8y|Nr3Bz&ZE|(S0!oy$v=k7xB|@b9wsW>^>~bT!bJs_e(#29*b~tqxY5OjzG+#>-IMOQw`E>{WhV zvW4IOAjWwwE~vtG`N>kRbS;@|KViDdRIlw)mlQ#Y&SB>t_|GdJ;(KBD!QmX!dClLZ zylAG}6VabDw^>K4qhYH|8->Y(Hh5RPR~-sS-{c!tRr)oa5uby?gOL5a^Aq8TM-K__ z+)@ViQxiw|mN+kD&wq?7^8}Fxru2ypmhoPoISzd5b*BFG>WFdI`UlbGQ5N92HSN!; zH&7*d&`0ge_0*tU0Qv;{22s6cNdi2NhrOI#*5i|A_h=Q&ryE1pJM6qTMzLLtn#Y? zWKo*){&sjHGnh!QI_Fr%p{-xQ(2*u8{pQJdAb_#p8$BLruRic`IJth{Jx}`3=N5$% z)cB=Bu$?KI$+WbqH#)z@w_36Fa}W91ah~~(`9;^LqwucDKYY-{VcY@ajU9O9oaRtX zDV!@=8|k$@>PVT~ZsH%xdcB?eYVy|6S)btm?3qJC3QEthAl%QCg&&38;in3Fomx@Z zj?&$JS+PcE8}hvxaFG1a{cN?QSbQbH>>cu6_89N=5{6uU)9ZN*d5>{kswcY<-NM9= zTdiEb;5u$8E^w zky*bX?B8ZIKLMR!dx8XnXuL_ANhT(P?}wX9k@4e1l*OAJ)oz?IeRi$LR++cCM-B}F zKR9*bro*zuEtOwqxK^W@&UrR~mnZti3lwug?m-|@E7A?_c9LEPf`K0Lg8 zwksS7Gr_LcjWaX)4gZ&PBnjc>p;d=Y4AI}Nr^&mPArCrFXHw8s10HVYhsgZr1JzL$ z_?{eG7@`~0VJotu*K_MHiTXp=DZObY9E6@*+vz2vYcJE5wfq;CY-_`xc{7yu=H*Zx zCx8PB%aeIn@Q3X9AM=Qe<>B-ij0t%>iZ^|zx_=OCx5>Sc_7_B(AA~{r@0a&I8+yq) z>|kP%q#&hTLZxGz?vMS(LRpMmBGzCA-f04?oFki z{fx3-M4_oWHb3^s@s&Vd_M;kBRirD{$6bSvmDj?6$$ulI#_sN~1hd(+rvnugTF(-* z&-tP$fQW=7VfkYO2LO6@EANv_>t%i4U34kbq6JXqP~R&(`)HiWaf&w>YhW?tu&Ha= zLNJV3!OtUfsKMB>b-ElSFPNjr9eSyvaWyc z@q88-*U04xw?v5`$JzFF!!T4G3BO-az&h!ExI@ zOb|*0U`I_6qa>Mz;RRy2bvre@#XTo@jr zi1M#(cX)7|xXl8u0(Jw3EfDd4yym?avwUu}X7|&^wmmO!oG&vUrU{lDlFpDl>B1JS z@(4P0VPQ{}GWimyHbEa$pu7fR)7(|Z;7q)K5UJwtI(WL7a;T>49s`g!t4rxOU+J0A z_>K<+mi@AFoqSYk&PI9bGGXfqM&CM!dx=!u{9}D!U&%i28GWY)-YCoRG30lO9tWBa zS;9NI{g?Zg9Z~fv5_l@Xk^cv{Ku5oSoMo0+*})F+(l)18`bc|g$5Q_QyudShF~P=c z{CECmydGl@U0b#vlVb_S{{UEx+kc#f{{U8cV{Dii+_m;(e&XDqkf-_n0EYSmR7TP4EBOwe1L5!G z^3VJ;KBn1w5qJHxKHnhv@R8ReAMq2jfAHNwhFi*E%X!)C_{;yq04Wdw00II50|WyB z0RaI40RR9201+WEK~Z6G5P^}QvBB`s;qf3aK>ykR2mt{A0Y4BG5Tv28FJ!59B1a}c zVSQnRzM%~ELu3>`NODYxS(*8bU=H)MP%)AvL&g69l&BK1Fhl8q=sG5EWJ?bh=}$um zG76W>?sR;RHG|1${{WEldfSneUi7d)qz(?x^n$>8x9IclFXJ51Ni)$g*%~53{u(Qj zKX;CkejCPf%*R2NqM-Fs-6d=iqYB<%uUNGo+nAe}vo0m8aq1zhNS3LfiH|IuHDp{V z_oTQ@Xg1fNI>D0=7KF$Jc#Kfiq}{$4)7dOT7Y(hzQofoeNltF%Yb*t;oHwbQVs?U7 z0isyI9ynl_b$_xSh4`4J2}q6k7ggKdVm)YdI6fv72}H#j_PdPaO7^9H>=o~RSTPYh zz{*ttuYcUD#rlGzA#Lp&Ufg>`8dxgt+6%o%LDtLKuK9kvH<7~@xhKAgJTgLYb|}C+nvQ+v@08x1~n=*03*sls=USZs)}4p zi)9B45~18fN6gElqll$K+K?y(mj^=S7H+d~9at)cQ@1ExX@;MF@dw6(6BoQ5VwV?M zKQH1GVq9b}#ut|ifUg&SQ)YL1)z`P~es|@9iQi+qkTt{1DCto0GLT}bb|EHYAXRDaIp4al>ZjJQzMx>o8Czam zVAG7iKy;Ss1?=KePfLNyUC?D1H9e7vh`>iC;M>cLp2A$9Y zJO)*kAxewD(HTVm8_3J>er8xraO4GL#$ROx#?y5g%l8l8`C@jJ5{vIGPZ3y#8kc&z z4`@N=o|7ga6XhIW(1ZrNhK{FcW$Px%Ph;}!De)Q&z7G(M>&23g!_MOE_5~yiub(uk z9&gnep&emJtNO4`=u`gygRzv!3z&>}GKLAuFsBv90gVDc*$rlxYI_hB<_%IJ(Fy^Uej%QrCV7Ar*XT`4I>io2Q=-ZUasY}F zgx3`cLkAMTdQ&VlDZ!a-7>&4@DzyQ0LS6_J7Ny^`Au^HNY9vk63#4Ktw@FTt1s6Hf z70V>9h}!9^S1fTa#55nk!0Ty85PEkS3f^PVp4P6+JG0_0A$Q^iC2|tTr;`bCCyoB& z4Z*;NSBh1JN5COjPd{$pn&3^TCf+c(W;M*6eWj4&{BdHvQB6^eM3 zyGQK#ml{{RRvuVM;vKM%>IqRcfsSp#fq_g^ZAoxMO;l}!PDrA~w=<1VN%a7s*(hUe zIfQ|g6-h{DJc|LBZ3D0wY;Z#d3jc+8G^)Yuk!v6p!PEy|N8Wprbh!_tG zm%{0S?%6_>sLCA(nsGCXHH7w9!QV2!S1G&QAK?RL$ADkVQoy$0J)(4Ug#hU(%c9C) zafrbILq)VD9-gGPtEriW1E=0OL(t3>7@7;KtEf5K+!&x&;tKFTmJd!n;U|e?-q@HQ zI!-5Wi&p|yNl@G}BS_eg!&}aaw=WI*O0WP!@Hz5aYuKPGM?A};42Dl8;2;!t-Zi%> zejb7Z?MgimLn$5ady|skDm5nu>Sy#Abug0FNY4?u3OdW7(phH7*Ofx0dLFrUHcrit zNIt5lS?$Wa&hJTdm>KfHoJWDC29?}$PO30-8F{u9a|Z8dbVkL1?}${t8c~>Gu8}4u zR{e-wr|u9!iuYf|LADQ)-<6Lvcmh^#d(B#*T&2`63p@V+$U&04*_mj|0v{3J*BNMp z3ZPIbq)GWn$#+d;W?UFr*l zpm-q0W0MD<4v`>+g@#7%^U5M41!QTP$+tf-b2NpNEx#|&LYsf>7b;=&u|6&QzJ!@t z9%TeT!74TiHM zN;-^ljRO*|dRAdB5a7zFI@CsPhGF2@*^Cq=j`s~dPlAjo+*3XCe^c>+KbB!y zU0^>`7^3Py#qXEqV?gXmWTI07&5^p$B6QHQ*7rY9IpX%t^99m))B%KvwvLa1g?6Hi4L#iA+x3hKo|Msgh;r7@3$y@fDba9ni;p zTw6k3G-^_p@ z=p>R*BqFDOL(;TE3WlOgN0cJh2aS)o4S)r(ORqs1eJ_js`efvn65u9Qx(HmMIVL1R z?LlHiFK*jww`p^`h=+;ziW$SdgT}Gmpdh@vFf$!3ehI|^m3N7iMr45&v0wTj8UTRe>jJPI^ zHHmE;!KAQ;W8I);7TT2q<_2N8gQ!zeDW@A|OZun(05HBfWrtblpspYt20MGO#Z9TY zoDj-lAU%+1SFr>QLt}@l7QyTvn}ETFst{oh%&v&`BXNP>H7pp;#>jK>oR>6*?kRJD;S^BaGOFe_pt3#V$)&K)Xe@A9o4Catv3->WT?hZQyQsw-(@vZJ$(F|||<%Od< zVwRQF4!X0cD__Q@NZME-7(eo1UerW#LGuzCcOmD#Znz>;uR)aR^lj=_SVd1SLur8z zLatOp+E%>*7}`-7NrE3ssVelc`UW~Dz(-$D7hz6=#l%pnMW+MoeY5&*<6qCx?VgIv zwGn|`i!cg>g4zjMA{B*Scq-+PR^XrQOjtm1xDXI}dIDMtf8w5kGew^l=$4_u z!ez@)FXo??SK&eorV@SWO4syePG!zmfuy7!GY~{096i|0m$2XBBL{%tmFE(QvI*fa zBkCl4Fo07O+dj~&&2J5ao`p&Q0nwnAq)|u(rq@C$DtCV zNJE5hi4qI+3^K-TsdAO^4GZEi6_*OrQk7BBTg<=o?k<&4tziP7;AA=Y2&xn3t zR5F;@h0>@|-KfO@Y_lwnWr+*K)_?3(Wp%^z9CI%qE8;(u*8c!{X4-DQ?s6@?5p4Mm zVubH!^D^@#fYf~q2xfP_Fv^_!z#iGC-eulT+yep#B274i zPbT7}AQH_pvFX-^c4`_{9hv_C1bqj|=zL$GeFRbzD^@S=P$AW_j^NnQT>1ku77Gd( zOXg{Ux)6ZD0s;j<_0-~iR7qKwGOs7`0^&-EJ}OslKtSm!edeBu$DrtspdF=3onD98 z0nDjT9YO=qScwye!1Nt3K8c*JWqFk*q6N5RY|$!^6lH6~1Dl%tpvU~#D*nttzK}%u zMO*qrCGQ2lC+0Sl#cus0Fvht}M}gA|xv}{ny-v~wDrqaj62<;$JRupqEZ1-T4ln1@ zI0z7op_io!UgzdGdIAIqQlTCYbn=324G2C@;sjz!qf_fjfdV8FpjV}OhoE`^okE@> zMEUe}a{#$gqFhLmXqOVP3^`1ZoxKsBIhWImn9+PtaLrx{M&R-i7gc{YvqSx){u_v3 zq8%XU;uI33;0NX!2aGcAh{mcnpGZPZ;Df#q*V9XG-4zRZU1PdYipoxfVOgx{&sYI)2mVj=BL1)CN zP%$bFC3TgVSe2PlyFlp(=!O+5iBh0S%&UM-C0weBiKJo53iJ)e+VtdW(9QEW4zOb5 zQdLE24HXoe;%R3qhp`Ri{{YaGe|8C)V3~$w_?z}!9bjw&gO{uTwW12LcEgxzR1@)p zI(S2nN?TxFpfrHduhZx|W?6z|_sV?%2x(*Zk;fv*!_poP<0!ZpfFyhUV)2ckukYEUul4jv#%m7hRVNl+=2O3Vmh zEh{pmLkUu*pZo$ai4xgRL6{?yNW(}c+M2xq%uu=u=N!VY0HB+X?L+30sy~2+yi5?N zic=|o+c++0=?Ytc;vB)4B1Eb{%rFy3bvki2?Gp7W=5;6VJVf*a7@0lL!Gz$dkL1*# znqevC*fv2fzmd^qV*&^;8!PfkxP)-d@dlV%hT!PT4ZyfISYKJ5vivPZ*k9m+R-nRB zFAem|{{T7%GTnZYWIFC%;9=qhbt)c!AjBXy0s{=O1yf14ui+m}^n=Saj(EUqrCkv%#rlSI zgl#;|Ef8iKAeHC_AYfwRD&l23OeWU_C-Qnq^b0UdUg=nsPn{N6_HLt4*e-=6Kh4A< zwyfcP$dEJXUlM*v(F7%s;;Cs1?E!dV{W-(BVBOVB!QAHMl~~|{;z5l5i-~a8k{G^u z?F{fOHHH~e1_EgVrXWD+G?mP#5VSoIbb%T-Q!~2_odrZxN;xrujM!n;>m#C331;G+AX|`f{oXCRQPZ4_f zlz1UlG^5~$pJun4Pt^V^iM}FIvKO~eI#?};^s3LBh^@-Gh0S`##WEGdAm}?AilMEB zBDN1z2EZPeLNt<~%priA&3yn?AXy8w2M_)+DTEoG5Wq@o51Gc9P9NI>xQF=lB6xvN z+_8O+$qoa8E|83wj!=}DMJf|fFZ?6uRAtm7K()sb;*r@Qj*JC3YiI|=Nw7+Yc&Jjb z4)Vt&8tEZ6FCr)0!Nv5P0pz~~46YoQqq{ElxV*il1AalLTYyY2G)32{tkuG}{`Xk5 zm{Us5hf#r3y8i$K{1#L32}N0-{UdE1WfpIIM(;?@nT)m6wAzj48rFiG;CUYr0h$0=SB%FKtS~ZG;nMvZzYxwLMFhyM=bp<`(T^?6hFa7>TROmQE(gV$o)lOQNmQOQKj5MDoC8h z3&}7*aWej`$8`c4f(`hM1;81Q^9nTX9Dkg!(9f~_lBH%GU>N8P-JPGq;g;M69s={t zcE03nic*Qk?pEj=^OsXIL@QSGj_j~yVml)Yg7E+O!K0ScEbHxR3ppA?ui3VRum z<{K6Sp$fB~(j8~ge^B8`NEHo?JioOlNr=E75s7;9dGS*h9tPP{t*mu};DfwLQ6gv2 zw5d@DU~3psvcqDx6{;ni(Qw_U1|d)v5OY-!9*U3YEV&rr619s~fqr23M^xc@$FxL^ zPbg_aIRZV%1ZgS*4uoB)B(NeqNY!sZzc_`xbwla0anq$AWx=g!$bEMyz;KkuaI#<_ zmqt~O6KG^q%fkGzgVGv;{GORcaB#Au96S7wEQ95KNnA>U8Eb{47mFd}P91UQ{^mJ3 zAiU%KJNI=m7%E$~p8c@)<`NjaSk4hhf#D+>QmCr-Ap85^x%eeIej&>Skc8RZ4gmwB zmnG@ra28?xXh29fblLBb&q|q{TEeA#Fd7eO{{WRQ^a(~gLGu3q6X0Kn?S4s7jzS}D zq8LG5*_8+oU}HWr`jn%hkbgeVhE0;7IhKhw-nva=&;>>Ygs7mEl5AaS3cw>Og z9~D0GhKKDe(F`DzlvAM!Niqv`k0GUU$ z2w{R{3hXrkf{~IOzs13_Zt|4_C!*#RIu2uwFuA%N^aip(b*>yU1Y}*} zxO0xkouJYYc9;X6Xzy=RtN;#?zPGPuhffOz<~?XZf-X`Etkd%w((5Rlg*ol*0QVG| zVc86A>8(ZEgBQXgT_G4{mBNpy^2jT|g8h)C1~uYUTe(lcto1K(dV{{RQ5B|#D-V-h}(p#&d* z{K2TY=_w_7vl=5KYFkTzjs}76e9AUJ} zJM$=RYm0$zbr3EHjIl(v>oEqCPDq(1Y2PG+FhJBFBnWj()7~Hno98N4NHC2=0V?qx z;Bf*_*)woBGUplu^Jawdnv$5r7!^gwgPD&g{4vJbI;b?yTqCp)7mUc$Q6&MDs0#q@A`z#+jG)c%Sxn^8gX&UV{{S@+)wzu^ z@Q{p_!-)K_z(oM-I>CsDbw30_f$Y$FPt7(b`rg~)-Wx!8f7sIf%?wLK<*)pg#so`a zi|d(PMkUgnrJ&zoN7>XC&m}Co+X0q-JS?z&`NfThHu= z3><+P_FirjGQvZv7zeHy*6IQq6Eg2ItSLKtUDrg?kx+y8F{maA&QlTh-LK-p;c+2)`_xW==(^ppe%?z!0Bjcs>E)l+w zM?V%kcTfw!lCHmY@7gp|ysto&4M)(GiBQDxDiWYZ_%@R8Z_ERDUmuxjsrGm8KmlsNK zz#05)eq+?L-T0Zk>Y7XeTU^{&xkO=oCf%l|#82E%nWCV~&$17+Ntzg@qq;ZnhjucX zE!WJTvQR3#=N=niOTBzWBRCkv#dY&A6qYnt zzCREm{wI~?9w7nTuG1tg73QL{z`hIq{$R8aQHRVI{{T(lm15nk-P!*Dp%jtT$EC4- zF&?}W6S(qyMT7@iTu4Q9s1{0mOcIy0GOdod#CRSfR=27e&sYtXE~`l2;RNDEkGLCdAJ)eNZ$w9ZTb0rVa|u$R-f;p3B|w#k9c4k* zB6JGAB5+2$0f;7a^pwnUvMqDNn2ih6v9dD6+{4!SfJz4U7J|-dT^e~C)aNNhLxLPZ z1WBZ;X!mWwHf2=tqq7cA-Hm;seAN~i+wn04s2l_y5l#x!01O($;^xQl&Eec~nc+uT zF?SN5Gx|U*a1iqh6wnEE?H7EFkK!Y!4k&L=1)bddCykHpj86?(V40h;F=(C{n7+nxlec*1z`Cn+gWD5ay_;2WoyMhdy zkH|-xVWG#5GS1{%C_{%jk7tg@J;NRi*IgjOk*{+yH_z(?1 z`cPUb1#MO;7GW(P@wCe4F(BwG6#K!mu2HHbGw2U#KQSOc^rln_l`9>kN}T8a0Dw#R zxzWp(J3-5M+Fw2}iYkn{iw=Sd;2TVZ{{WG>;5HGm-7Z{>7HW2#Swz%wRpD?E zXj6E{NUW3tmp&l~cLiaXo?2CuGIks8L=XsW?M9AuG%%(6OjBk^7dgA?Y@H#m22-m5 z_=VwHXQPwqSc5k%C{ejo-l@6F&`y}#xR2gauX`nZM3JI^6gUTuXg+)y%n=~?ADEt% zDg>!gy#o@ZLMA350Epypj3G@188`7kECCNf7eIJyk0M^4s0?7(aLeE}sFfpf#|&w^ zh^X^s$iZ!hN`jtLsBsP;#L5|@yQy_c&74ZS17N|bW@Rh9TvZ{%3ewp|q#?_oTo{5G zfM<+A8pJfU{{W=T3b(%m%2gMw`~AV0f$9uBLuJ&dbJnkkqwPGHwwGe)%EH4&4nd>n znh04fKtmI5txV;?1R-di&Y>J+ZJSQV4={|^23LIMQ@h8KRp*IQwXsHHv3ldA#EtIp zshrSNH)4EL!?@OqTY8;p>gKCoq8bUZIb-PMLv03R-7P93vq{mpu>2z>6OPju7`F@Qz7;nb>#DOaWuR==c zGw&)B5!@;{^b@Wv_#biDDk}L|K(Jg8(dJU6lO^sOtmrMcC@xnu+B8pySQ5tci~#yeT~luM}$X4Z>R%KMhZUWJNUtu@I+!HC8Sb?k}B6`h=DA0>(*2PX>oND;0bdg zaDu~GrDE7)fGFPXDOK?ajAmH!ifyZg-JW1Fo9!0kEOBSV{{Y*b3_iz7gd?ZfEv;c* z2HPU#NZwfYG{YugV2X7eM`{hbI+BSTW>#r+a)W6IcW`D1aSgvfz%e)uM5|tqU^<#Q=QI!g&gN}qyIi7stF1aTnn z1KUOZ;7mc;1EZ^td30jFr6G3~expu@c$G{8bfc_wk71Ni(RFHK>R!&U;ae2C2CwXn zsYw^1wr>uo-QZZWG=Bp#uCKV8zy^9SB^45%o4KAj=L z@Abb@lt+uF>xqQlJ zCKrfd{{UdXBogpeQ$|QQIPOXnuDL zQbz%9==)l=O+oqx374cLH|Iva?9kUh;A;d#FLPP_Vl2m&A-K4Ta%JN(lr-poFDlMJ zT>HRQ5l3YRxVJ^wb4RogtSy2zRAivDn>_@6p?NoeF_>_gdkgrD3o(Kf=P+Sj@B>GB zV77t~v7=bop3uk{OZR6Yu^&;>7=NGg1xR2EWT^9I%3GHGM#GHn+G71s;rJrXeklI{ z#U+#tG76iixx z@5k<6OF;V}snP|NLvoh6l(PqK{%PKa5C!>;Pl_$LyXbg|Ln5GGbDw#ZZK&p7xpD?W zLOq%>E`6jmz#XPuUYI2bk1#3yLIqJ!oKmApxtxpvwN|6^)r||`=fqVRhw{#%8kAFX zGT<&PVY0Ur1>A7N+jyv7FwiXg5b=Q8B=&<%T3&^eBE3LpGty~DKm}uDJuxh*A2k-Z zj;un$qHIQEK_m`pAd#pWy2|WDE|+KWf-wMW<^kH5X&l*;#-er(sYyVj>k=nwKMV%} zQqJc9{`ZXnsw-Ua72IC&KlYb%^FSH-A$!-9)Dx`#0NIHUR5GMDJHslD>g9%Tbo>N2 zP#`kZ#q+1r^%a>1`Uz-$ME#^6>lxXFzh`V>|J1=xT;7TF1Y4Iu6 z3z!wUBDsVHw0CzgoodR%~1EadUnB} zm@k!gUjlWCJt1wq^E5PSLxs_}yyF^+b#7rat0@z$%wa+(Flq*!KcaQm3Iiu_2iz|1 zTWrfF=eTdIW71BsX{RpuI{+A<069c$b%P-P_`a{`SCqN8Ct#BqWT zH5M9J)}7_4ZI+8-_y@cE!W!6p;9+hQ5O)?-cV1<32q0eA{GmVsfQM?hC51*iDCP*Q zJ|d81F)b%B#q!*tQ#wpUu*#CU#a2+fjwRq74g*0596F@Ec~t7o$R0A~5lEVX`0z_0=SMeR<) z+j>Ly4dw}C=OM(7nbJ+-3CSH6Rj{Ug!ge z3jLKr@P=CRQJ=jy-&Cvkhr_LS{{W9@*xayTr*x?-+iCVu{mfvpf;py-+~FH&f@V&J zTrkZ(A0wEQgMrBLDr3Mjc`l4*5{^gUl#f7tMC$-rsrlTkP#0OuATqR3{31r$wW)wk zTKkU>n?qI-3!qU{MNHB@j$*QmI-{1k<|IUGbda9h0RG}NKvZ6UnvZUj(Z#!*zp9C+ zvt08pisq*bx}%^k$sz^J;Sa=aBH;(zqN!bl9%=V*DJz!Zt6Cd`LNBHzQ44b-CxS( zqHNZJ>rZqRO;&Am72R3`yjI$Vdtlk?YtmY|9=|$y3g10p3>CCz8qW7_InIdr_9v_rUmivc{8u zYAK^!b(pvy2MOMAFSM^0u-IP}f*+z?=|Y%CSG%da#|K zwQ7yVlU&gTE#{_vM%K&06u!)V+z@Spj;la1w{lU3t*GAJ`?(Y$gcf}FSY$6^J@b_!Xgk1 z*_>CJhfzSe^6>U00|jpzt`8*M08v91UT24>fmF#ymQ}agDNaF1=#EBN0Jhb@R6%YJ zm={LjZ@V251UX+f7D1CH!}I*Qd2Ds6XO{Yju3y+~FL(uuZ) z(AJ#^Trw_YXSSVmM^laRcZB(T(DowK7YKn3cQvpBY19G>S2u8Ztnc0j-1!jAhOJRm zs3%g!^yR=qCS0dr$klM?GXC1ZUr4E*P$HTjd8b{W(K_ar3=?46{=}L#hRAm)t)kt_ z@JHRMHO**sb;Qms(Zt%o?JNvZ-!KM`xdGH|}3q{cFnDaGj5N!!Fssrk_VF2LOMrviW-ubI^FB#Y5SFf264$w2^3kWXeZ(xB4Q?}RVzU** z$;_sdq^VVcQuHEI!mG@^rQWG$C1vfhFcd8n!V4oW#6Jh_Dc|T&)Efo!1dIp3Kjgkh zTvG8IQ&Pn1tQ)V$AO<9N`3s@4Eh~T{ZRYYELS`!qfr0)(TTMi~=aYcq%(Zcw-L(q(-R>j>fhg%xu=nNw5diZlQ;TbI-i9Y*V_@C(#0k(*($#TO z6Ffr$n{8G8#==0MOX2&D<_6qL)UoWKEbe(RDZ>iT&e%YO_H-d1C=966#$1sF1pF<50e#|3X_WSVdn zkxolkh)dJP*MDLvlnW_PPA$Io6Wpn4Zc~BjxGk*)^NN5pP*j7Khdv`qNE=hSqA2de z^OgCzQlJPuqF!5xW!w#i4@tXKfS_oIKzd6U=AtQZ8xWWi(r|CPDgi<&23{}Uw85@r z0N&sWFTjI0XmK~za*fNGZ{8=;$0>CU-lbzY3#`<%qikgFpAgwk0mS^fy+}FE>YvNQf^Is zLuq`jBpMC2qm;#5*I|HS z(FVlG8P=w0e%_)e&P^)IiyXR}Cd1DpCXBCD z?W$+yKDuKS>NYa|UEp*!(81@-xQtp9ECTY;fhyRAb0rG%6@_9w5)O&bT7?|67U>56 z01)qPKnKh|5j#qmbxt~Oqyu|_R5+PRwzYbeD{>=P==PY{3ALujfJc2MG;|c?J(u$i zBnZ%mrSo>Z`wVqsd4FgEUa41Em$4~hyt?zRcvNv>acW<0mS$UBkM8k#0?@y<5vAu7 zrDFag6q8kiJdPrsP<{D+JY)7xS#8s#v&^8dyv|6U7z;|z6Vqrnb9GQJZ zctz}sAjM|<#iLo+0=owgOaLh@v<(HfZt4!zJ73~AF4Lu=01dA&)NwUY%pfh`A0;07 zmaa4b*L2zN!T}V;N!0_0(vphH(}l!kWw?>)9-w8J@T082vplmy1~nTlIo8bFO-5cB;PI}f6Nn{8%qeod(P{VCqUyDfk%M#1F zy3T7*1h`@w%DXv=4S|B)Q8muIlv?&bBq|(KApwj2g0Qb%rk@cadASq5qOpDaOM>X_Gu~6lj5i5FXlq6e zPCeg?ga9ZM2SQ-m=pZ7bkgM7QW)`{LV}XIg#KJ1{h4jaO*D$5r_?H>0<_^ZhGHy0p zDqN2-v2v=b?=XOF3zQC!d*XxOMrV4e0DG>7`w_(8t;=p&h2a$DH5O*Z`SA`sf!O(M zuAIxQLO0XJEFBytjmKnu!SOEJ*Ez)|{j0c#D1tGLE4X2|Etut;$$Z6UG zHA)Yd$BJuv_amn>9+o`=pKm;fA?Zj6;kYWT@bN~-%7m?(X8>?w;Y@;?vUKh~AXZu` zt76l)Qjoo1H0q0p4e~p-vd^bVG!EU`#A2L4PQb8#cZ-dYhf&ZXtPZb;Z!*MD(_Ya+ zMHCBmD&<57drYm_ENdZm^VR))!>8S>L zmYb(Ay)J_5-R%dcj33}5(=CprnZmDmWq5UtGiA4XEjwJP%emc92XB}i7&_29tU}RN z^^UuU7}Zd>CTK^;seLDV>QLWSNKaNo?rtV=M!%$nH)R&?uGg$tB>GnLG)tydrX z6%=^(hKTI@P;nM&E@pY1*z*tyWd{IP+6|}(xpdtd9+M&D3t7l{##2Iej-p^)zfV)_ z5sOoR30oPmzFt~`qqUQ9cRh#g@a zw58MTLosTG2f$%>8hQ}`0uZ-!2U@S`)dt>~n@bCVI)oy-E|RcRt96*E0!!w(QKNV& zkC@}BMK1IyGGkY$mHIaMF~Z8r;@gO84%|6+6)Mmx-VXEuf-!A`UY69kF@eB;*g$v86^)rbGSn{3E^66BIXD=~ z*cLAU)#(KHPsBGH1G&TQXWn!XSKb8zj?5=XYGw>X`5a+031{Q0zJ5dArA9{8@eLC) zUrOiV3A?ax!gFhGYfsAuyh0+}SdVW>jt{K1S8n3ls4y6A&J2_OX> z-M+=fOt~`9=38K}T;OdPxGJqXA|wLWUhtkP)YPJk@zOIu=@mO3M6pIyj$k)ZU0jw& z$czhy2Il2#JUvH;ytR9^H0bmkpYNg6QB5QKOsW3>Kp}!C+t9U>6)#mkH&7-D6si+p z>Quy0P@Z{cf8dl{`FfYJ@izTS3ib|c;&rUnpao;W&m?)XgKsj{R^{xjLE0;{nzMZ^{JIgc8I0bF?2R;aB#u}6c z@_8>V>Lt@v6b_;Vt+ARxYN+X7E;~ai(L}U#J4QC{3t<5Fq?Bke%nKs%TMoX-e%MVj zc2_%)W$4YT!w-r#5=)u!6(7PC#rS?)r zL>It+QxcrS8D)z)lfb{8z^$9G&|>cAo)(Uq^3y`h3anv~}YGS93-9I^EjX0rr@ zxDbu%0D)8;3~=q)bzuJ1abdpz%XqBK3)j<{AE?<4({AYD{M2NPn@?k_*!q^A*N20# z?<=sqzXN2Y9zd^yhw5SF+m9g(om*WQq)u(Ue9zTKxoW+L7&wYiW|wtb!T>ADf*%x~ z42vid4@le&@r&V#2@{-Rp!P&&R`ki4V0JzuxzWi7Mr9%`4JnCjnERcNC6PsfI6b2D zrMw5~MTkC)pf0WtATYm%Rn;~%M7UFnp^LWyf@)#b7I#J^JMNL@^c)eiO)qCq@^VAu z@}&Zl93y>Tpp9^>vo2m>bnVoSj?&CQhRO0=y<_Ml2G?ji0I?OpWr>o#$Ygdem_*Ah z*$o!VjZW<>UN;2gP^z2_%~-20ub%-RwN>DZT&s2@%IA#g6E=V$iSE3WEPz^81BF_{ zJ90qo?22C_@fv2f5*{F{Ui9L=2YTFCx%k8J`=vh|NK_>n79A&Ws! zy2j7XpBVzKFPDgwYNkJ%`dj@=)}?i`)?Faev7gjpig4&~N|YRjAc^^@XiIuJ69^XK z1P0hFl_h%F{{X}=Ko5w1OsE-=>507YU8jkT1}))ab}l{7a}C9rWLj+8>DBv{ErWgF?0|!&)vi}? z4k1WsvZX-l+G4vzIHh7XFr28p_~f{b(35E@Zn>BR>nXe#V&bD^Rm82zx`L8+#zsXP zTq3x&f1D^U;{21fNa>ib}&1I zRTvDw@VPUNlF69AO3*evdc?5-M*&9w!^AFf5Ma@Em=&_$5!kjxg4aJ0u4>FSqopl= zWt9N{1>wT&yhdiChNCq}M{H4*;>H($`!J})Ewz$7nxjS`-zab!4~XspidC4+Bh+@5 z1#h9tm?=Sd?GULrD4tRhv=5YEUHOWc1%3egNE%^CZ>{z?m05l`TMZm63?R{|=l&Av z{;8{)4Zi&j@z;*SSodhH!u{yIhb-W<8RR)Co$$Q+FT7-)NW`tEH|EEUSOsrB{IVHYu*^c zZ0?KKIyoV$L|0NfNuA)f_l-t)nAYov)VfDlV}|DsOUzNlh@!FU$mh|*Ib9ULm)#M7 z#4Mq+6#LNkbcF&asE>zbWhJb5U@6LKPVW#lHgsmkXAi5XuPo^*Cs~5g5G8_4BC6d+2BFN$xv2lsQEk*uZ(HEgXIwI1sYFsA~+#f8Qy2P8ysaF$n;=> zBb&`w1G#lwSoc-91qBOyc({_PsSeh|=I^}F&W9qv0N!@ipmL%RR1jfJuX%2w8A2gS zRB>(5G{r@ckERFv6;1%))U>E7z03VdCb74NSp2uR7g#bB9*jRRCdCE#A{#)WtRzB> zyz^D>0D&<;$eO)n=8%4HO0B6zyD-5rbThah8m)kxlb6~PX(3l}tf5#^_vQ;@m=@X`uZS*(bBNITXW8!Q!tD+xpvgrVNJ&?Iii$9UL&{8?FTt~Ga^txY6r;Z?v)R-pq&81Hh|C(qCVodVg`VhQOgbl zDcM3C&WG+8+9!R*n9&#kikF<(PXM=3yZ z8DW3z;}*e#i0utT;%Ig({HUsP+;E6MH_?KPSuP?1u2SGI%^=zCRd39FBJ?XNmn~l~ zi^gTbX>gljofaDXkzTF=nvw=dvT0zq;#(vsXJx@a@Wye$EPQ4vg%nc-#c=$I@e8HC zvEl|muJ{gLbd0fF9ze?13M#w6Tn@9UZo98L5H=eCwczGE^`yAI2ziG@ zD~E`@YC|)U(3{WAL6uC+SnFY}j8hHNgw!sli=*zv7K1`#M>q=2b&HHqo}Jj?9Ms0q zS?qK}bk)kn6gG7h(CfTJDi#7Xz9J$iO%P|a(N$c;W#yYFc-MZBfQwma83=V{>_aev zbOlwltU$yB2VxUzbLRM<58(<>PSg{JG|)c~;yqvtVef7Cl(3aj_LW8iW(CLsNNBH^ z&^)D%Z$uQ%c_NLl)Sy>gu^0f`;GhpIzM6%|qeq7hHKdeJU1w<31O|vFqw@{629qg<19%oci zS-(gvYNdghlpAw7#IQ^PmEIPhbTyf~D(e8B3K^OfE8mHn)T2%#2;S1aIvQ@QQO3m- zM6;%SFj@|a9n^6ID+|fWF<`@AQkCoh)Mh~edvm6oSaYT>C3ACRm#cV zta6?c1VBrOaD%+SXR`fjhEf2E_%;yHWL}ok`Hn901=hA05K4n)5vqbnau9SIPW4+M zgER*ZNDwo-dbaoCDXNGD{=>04Be1 z0^qb2dV*n`m-(bPlvA3dg8DVZzzYstOco@ofUDv=aSTIKg5#mTl32xtEZ5kW=T>6O z8X~AR`Z|sX*^&_z?}F_hd6dZ1W+b3eIFfD}mJk{_#5HFbiyp9$T8lB*V!sQ1~K5OW{~ zn$0kE;7kmQm`lTdaF>;C{# zNfg{eMNWAyK|EMB{*>!y6fMF;SFcoQz=;&vOrYGh1hgbV)%gQuRvB)dM2!(?puG7 zpkIX6Qw*EQ)&!%JtY$HbGNTW;HKn4Z)on4-xL=ZGya78xne#Lb2ZB7;GXh1FP1IRZ zvdxKdi!`U^9|?A1f8=nPaxPX}*U)GuIgEorH;b5bmqffl#L6&HZaO)#%6OKsecuxa zmtiSP=%vMAF#YAd!Z+Ti`;ISA!1#{{=-d1vU2jxZiDFPqISX)fdiAJPS{+flFR1#s zSQXE3PPbRUMuv5vLZy`3vxs*`P;oIwq$)!I3%1u6G6h_l9#@)~5H!8|FJ_>HG!IVl zVa&+GVT~083Ocnfc=%our;Hhc86|Eevf=|qfX@?9^MVxBpIdId`_c6~-&83!Yy-WagF#u&l(0$h3qh%*k-%*z~P9iRYllgtugmbFBCdJ55l zY(S8_vm*4lV~buUsDMOfk4$klTE_CNoC@^k-7zDSfbZR1>x;AMC~+* z^AE&iwk9m0sN=R`iJCmcOfv~^aT9Q8sq)6OY{Rk4u>DcQEyYoyn~7~la#HS29K!?K zS~+@qMd&Ez7)zmpb6NYviPRsc7EUsba;Sr`_YQyRG!3N?%xH9!6%jhz6pi}7*M;&uA)%UO^$CN<0{w5X;Td7+9bVWg7*@ ztJF>KsYSMC30Y6(hchjuOtNQ)-=JDW7)0@SQdshM^cBVN5@3rWBgeU4XjS+?=?px$ z{mei$R&njjD!OdVK=?A4nE{k7q03mgQjifU^r zyBtOgNiF&4V;fp2A2GH+nhn?ZCaBI-AY!(h}?nhizArK1)b9H5adjOLF;k+vjl&URuF=7_D2 zZ2Ku(jZBx*F+En7&2R1qtw!|dDbn24XCfwG&51fys@EAmKW5#lbjg2q11uZR!c$XdKpY577*tSAN2_fxYZp% zy2Bho)+|Gx{Ffs}mJ~Xy1q=m3Ha`(O<#$*A0Fj4^B^9+MMqWCUmsv$`PpMg$YtHrxk;_Wx%hw~$FxzmJGsSNL*(Dt|HC}90e#ZN&C0*5Qbk9A%7WsTUqN_H2Q#LEzk%#ovU zNlrQG7^`BL9LAf;C_sBaV?Q`E8pXt2A)$4_FcI4ZW-x?3DcDveerF;V9wC9gv2o5b z?37S);%Z~#U`CSv0OVmn?LOl_Qi!7I6NoX6R&n^!#r|s?A^~i}Hrp0l1+u}HF2?ps zvy&28pwkOWyuMBlCbF5a=NJ6#qoaxWFeltemG#3W&EG;5WtjlH(_p~=3vP@lT9njJNJ2D5`bc@ zy{cq9MTM&=oEmmv7al|yT5xSVL-*N{5-KmskqL#VCVypw#FOMHg72;#^#2-$niSmbLA^zLV!J zuhAPJj8i7?OE`LSP~Cw`3QJYc+PiffqLxlqGhiyJWz2*>sbokCk zf0)+oDy#+IO^rd7(E_Q?;3-nQ75&eAh2bv*3c8ujpG10#cZ7F%jBL6~^oR_q!pS@B z%B5F0PhPy}Z=hZSl>@P4-SgAhC5}KWQdy69l#ar0a}a2}r&edt6#}hR!!P*>8(w?M zm5h&Q%AF$l6QlqWFFW%X0jMW&#gSJQ(C0O{!+EBaSLP+zK9sBo4HYvCC@xLDGO-%S zG1{01D)xWuHR$MGrN)T50#X?=e81$V7Z(7%LGDY{NIPD9L`~YlPHNEw--w4oX@VzM z_le?pKr;_?zLitUq)Uq(pjg|ypy1{Jqq!EexT=V9SDA}ZQKkz8h-GRH#6NGNq`=0f zXVWA@a|F4Tb|EyXh;ac895L&4a0+Ex@|YyN%Qm~jFvSnH2@D{?ieE29Uu?)%{8nUx zo7o&DWf_)H6PbCepk1Q34P?Mt-dj63nPWS$)$Y!N<{JZBgJLc_Tk$EV_M2g>o2&!z z1rG(xt832|`$jDHRF|{MnZ*oT3r(?&rbtw9OGm{oz-5{&c**zLVB$JNcvmVai-2}p z2bBf$gz^ED9%l>8E)$q!vK){P*%Vsr+ZfGiTn`J8?##T(Aa1Y+j$)kKV=$lv zuJc2sZ?JMkz>Nw~h)WtmOgOO=B2xIzM)I-K>0>kL*( zptLQP6VNbwlGWr7BmV$lxU-baN+G;Vns2;DilP=Otf3Ls;fdbm*=94>Mk^&zeWsHv z;ihjGGY8OCN?birE?8nb)v1OE!%$gn zp|e}3hZip7AeK7f$2aozfuQ&}n{}A%aB~z48B~2rhBi8dv^Je16D3|c!{1<50Y|ge zU!ogY+S~O6yNPRUSUrXD6F}2TecpxhVKyA6@KN_C|#h~-SEoJ_;gXh&Goa?G{LQF1^n zE~&soQ#9QAivy?GD03o`h3Z;vVMLjytxjNa#<~Q1z*A5z+Zj~=qok_d7x``|eq)Hu z^kNK5W(){U(VOZ4%wQ5zyqzExB8GWHP-WK@gdo(oC5x*s3|_cx?mnN~clMtOMynbf zUXe>|uB92SM9Lhce4fbcp^00CDOAI&8t zI)#^>YvxirY^i8$^AW3HBUCAXe5J z--Kcy3a@!}DJa5}!tpS)abkn45X!x|B61hO!QN4JE12vH(P9hY?-#@>#Yc;y3?`k~ zK4w5v!R+LSj-vd;5#?Ag{`WTMIbx+t$vJ$i7$}}5%*-LEg$2Wf2Rtqbz0w*ZE`i;a zO=|p-r|Y<47|w3H#g`i;U^7DCV0gHvak9>Yyc0xe2$n{SE3D3lDf~jXSgp(g6?GL{ zcb`@ujJ7`#-&M?clp?Lc)S*(&`;%DFw_1W{5H!LG9M z^8vIT%w>M^2guA~u)Gb2%=eONI#-HIC&w2riA^h^(DN$fJq^IL(k``MxL={t@g0id zrLMVhf%11SCQhB6A-JEjO2&+8jZg;=gjkS|Ti7Msd8uAchzr7=g?6z{AR%n1r|Ds`9XX5%SkV_^8ka8M z!GkZ*VR|?7-T@}V^yTy0M4)!+?0rfr{zOk-)*^SaAhPNwpQa`Z1!(XJD<(ni#Vw{Q zTs_@z@JlwF@qn{0EU?6@V6O|e;&tU%ROq`c%wU{@S@qTkvJnJT4DHp67W^sj4N)%N zaxSYU+&)msF4_DBW`?P#?H>`a!Y3cgn=fx!VUnBYO4SR4?e5It%zt9=#BGQ?Y8 z24LWnORJXbW&mppX0lu{tsn4S;gOl(1zJl3O{zKtX=<@c#fFg9a!!FL7t$r`A-66(!8mI>(`jO8UUx3Ct4` zp+Jp5*kRAwQ`JzyvctN}hKmWcL8`OyFMH)&9#-*YV_`TeHIddX8BIlCqDO?yDlimB zY}KPxbURBKLq{&4`a@3v3^=I{6aorZx|D=?F=V<>YPpKWw$N$?{Ikw{QHs~G`1Kx; zSTzR_XD<_#=g@uP%u81IgUrxgk6)N*v>+=M7IIxf0M4kia8|Is`Gu^Wk!DvMQBgu_ zfR)V;I3|c^8^e^dcLxhDfmZufm*qn^PL#vsB09@v;1!7r9NP#8#o{0vmrOZ;g1MA})-p1-RFw&6{R)W* zh}8X{W=Agl+;0OfBh z^%n>pDo-?+e}*;V#Qy+DNl!!{YE&hAKLA5U)A`~n!!h=p#W=+kuyqr0o6W;{$x@?^ zkUCRN;j&%P2fQ*Kvoc9*P~6bt@$VA1C~eNWLP(QHq#GQ!vXF z5xR`M%W^|(O|Vp?2AE2Yb+_tKOSyQ81%8PqW6-|i%o?N$x&#vpyRe`RuAp@(t3ls7 zyMzgOY-N#)yN1}%LLdR(C)y^NY`IOhdA!3E+<$&Z>SJT21%3$_l-M8>HLa&&az4m~ zPe7Wz_X|>%k5Ip&HH6FFtT)&q_Q1PIb@c|;^t*L`vNfLJLGr<)WN=jLej+zGEtoJ| zq2@0Xv3ZrOp-bMW8Y*DIIhn8?OthBL>?Lzo1R+N~7&WTx6e+SED&D1bp``0L)ZJ4G z`)1~YL2<4z(=Z_mac5_(%Z2hq>Sw!Bz3U7kaxnEv%vh$0Mj}!VjR_I1kZXo7@)IJV z%pDuBMaMzMC2<2Qk|C>Kw@3q3yWDE*LB6+=crI+0H5a#dtfyxzcFbz9gtAKx)L*Y19DHo^nnOwO5W;{aN=XLsr+IYbJr5g{;BOO5wB2&yT!R+!MuSLO^8b`i4 z&p%z-=(olhQbAY;M&g%nJLUXJ;mudr`~5@~3D#K*rnW#*TvJ}~$Uw1rWoB5B9T~kx z`>{Q!&)UokY%dXEixGv7GbK47I3f{(URcz8#i%XfCf#~Iu{4J9Mvx<kk0=%%~ z1w_W_n07v3NTpgMhgW&*;RFhUl8qKj4R9PRD#N!|qru`M9v0l@5CB{6UV>(Tw<%0qrR{Y_79b2;o*sR)9H}&m!6JWDuo@DAXH0rDB<40-NAz?d@?C^jW0shD|$-y5ES zDNiBCgQQKJ;?~+<)WmMR91O7Q)iVBT+7y}00fgF7JH&Y|;^M1iz%I$)JP!Vg{fB-+Eq@A#QO}?t*KeJ=hK~&D6VH1C;ng z>bP{8$1Zp|;uyr+8(XEn;N$BQ*h@_AfL+!-t{+uKzto|EB!kDGLcxpZO$-7x)Vv+y z%02zq?E%>`s|*en4x_~+ToyRA%oT5TUpwJ@V>SDN69UGch>^@)W59DR`jmH?3Fh%y zzOeGTP(Uv_qVo!MbiI!KBT4||@9GQ^o=bm-J>LAkh#D!uv@{xYf!&@X>szeJEp^38dO9henQ!&|jaJsx_5k8oY>$-D zmd9HlVOh(Sc#LUvu3+mHW#(MDadc7!yQ{!%;R@Vn%IN4gJ?9u@9AiGV`V#GROuXEc zQg!h(WL^~4oJKPl3MqTm1eZFsD{IUD0401T@3O(4iDyJ{!8^CPm{_IJIvIsp=wU!L z)ww~UU8RvdqARYy5H06ja9Q#Dffcx595n|hG43c3 zLDP!sI2yQ#WOYzpP2QE_`$r~l$7FDAa!0DV#y~~6jm8cT5jiNeMXrvqU1llK zmOWw^&=^5|AtMYjn39>UlHzb}1npvES0|)*<=!KOnCy-m#i?`l1|mHJtf~}7Kl}&Y z`UGVTzeRul049G?2FT5?h^4fw5-b+81_E+8=>X~OAT#(OaQH%aA%(m`%H@~ji7MXn zTjJLX^euQ<<(blnGSp(MM6{GwNO;A9_&P77z?!#&u?j>#G2$H~z6LzT+XmSlo*|W+ zqQSNl*H{-XF(_MX9A+hS2HCpLFH#*cijG0Kz57Hc14OjH{uq*_MN!bIbc_HDmI4Go z{XcN)9r=x-Fn!1*3|-369n8Rdu`lCvLidGH9r}AAyI^vE2cI5_BE#5T>cdY(543GJ z{{WOasEDa(so|Z=odQ*E47hb>7_{*)M$;Dp+@xT>>|8+BzXW_jw+WXq)Jzq4Q4P>- z;#M^BVzsORhCKwly`|y-Rc)4G!#f|-&&U4&6qg2evHYp0T8j^)TfM<>L>!NqUm534 z0&nsXa%g2 zwHEYK7_T`zmjeds3$e-)ZsnYZQd}nv2eI9Vgi7j<8q@u7zzX!SUSNr_%}Zg$UgJ0{ zm$olqqLI`r1KEqX3~(L|9;MeXWy|zgY-#@h!h51UVj#p0Y2H2|cZe65)w?CnN!JP# z%AhqQcFUXh7+bpi405sS2fLTv3{vuqvF#rMxh6j<9z&Rj?>bMDjbQmM=Hi9^15FLqeC}*R@>EW2{J48{;+#vb5YgL?gSE2Yi zyv#rN{(gWCJV&ojSO-st3d!ba{Vp*_!7+0k3#3vN&(G(mrNrWC{iuy}}A(OErZ~dPWR{2n`l+ z{KNtp(;o|hEoB^!ev;JIg;~C$qn}XvtwtyrmblabXAzZiGS%|{rL!>>+7Nk=XOUyKSTLiWOs9bb*OU~ob8BN4* zEHZ%uFvY}CEh>tq-Uup6vZAtWh!jGAUwG%I#CU)OYRYIITtCIU%4d`@^c{Yaz8UY( zc=}KNFo)1`jUx;>%#kN{J@LjkMT-*V&20xscv0m!u`%%z2>`6cvI`jjIPxL*=HLRt z=8NeLTD32PQuR?nT?6K~UBaau8M3!s$-pBo(Qnh3EV#0WidPky8vtRyy z7~zQfeGYM*nT>YG(_;-qi|AhvEU*3vqL^cJyr`!_3o%q?LZxv87szycHK?xzEm^xd z!HJcC288&Jcx_4%oGH`M^}1sE9+_pUnYI)J8fcE9;{v);rx(WvFoYH=l$gN|Xt>#H zQ-=%(SPrD=pE0XXn5{-q)FZ*KXt38$;^lw>j5Wn~h^VTt)hB1P{{YmPKXhsRlB4!R zp!tXWNU!@x{=`RLB<}pDY4Z>J5J&ESf4KmDl)&=o8zr%;jKy$4a*adFQrKDUL4XHv zVT5Yaw|nmgRs6l@_rJOPukL?q`-k_xnf>qXe;fOs&;H^3ujU`a{$czd=6?tKhw*=y z5Apra>Hh$85ApoZ=>Gt5zdzUBe`ouhU*qpTgZ_>L+-w43$x}C2#-O2 zVxQ?LfF?%gOg&9UJMRjL@DiIjh^{LrH6QvDu=$lKI-f8dNOg~x7T8eOJj$6P$u56x7)$>E?eu*J{{ZpF{{W%rNB;nW h)&BtRk5&=?0P#QhH8}qO<^KTW-=qHk^K&?#|JiFG(J%l2 literal 0 HcmV?d00001 diff --git a/public/images/jobsite.jpg b/public/images/jobsite.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1a67fc054514b59d0d6a79e435ee4c50b7bff7a6 GIT binary patch literal 96866 zcmbTdWl&sA)CM@{-~@uZ1%d~64;~x_m*DQM!4nwVg1fs;aG$|RaCZsr7HoOHZ)>+| zf9-B}^|{^EeQ%woyH0hVr_X&|c-;WJQ;?CD0l>k*0ao5J;B^@w1%Q8R!omF~;r~mB z2>(eWL_`EcWF%zd|0zIJ6l5SO5E&T-9R(Hbzw}naKu5#)ukqhU{`XaQBm@K`G$1nY ze}?>j60bb~929sQI4}Yn4dCsGfCKkB0H6c_;E?`DJvhMsnc(0N5Rs69Z)%{w4QPJ% zral6~o6<;c8o!MWcnZ)jL} zMCA7$QHe>(DXD2c(=!SRi;7E1%gQSn8k?G1AirAM`uYb3p|GLhk*VpK*}3_J#ih-y z?Va7d{l5o?7nfJpH@A295C8td1qVR*Us!MQe}Vl!aN)e+g8y#~fdAowgZFwX2snsH z)EvmT5^BJ&F7IhLgHiA#6Y}eOQE9o<&+$!N|DX}jac_RO_z&9uAp3s@Ead+evi}R% z|BY)2fPnz_ws;6Q05QO`{GU_9(uw1ZdHs^ZN&r@CA9#c0s#EY4Ff0VQisb-p&!37j zC1xcJ*Oq0Adb#x|mAci<`YR8o#C&J%2e=Ko-KCweM5uh)Znmr`neO@!7+^Csaw@nT zRn{xsFx)l#IB=m%*sf}FQ`KsvGpxF@ol(hF)_Y6X1C!9SbVA=+rAVo*3%q5{RT7WD zAQd^(no)Em`6l@B29657JIh5qplWBganNnJEY-e}46QD$%X+iHMPmecVFu3`+cszI zDDcxtR9}=OWA2xkxp}ATo{J~}+y$)YN6B};%!bKk6*KR(g(&G_IdmgViYCWT)P~Nc zUBvVh2;jF?33qaAy&cVsVq%%X8;Zg>L
aF|Uf6-eqx3AA;4=$ol>7*R2grdloA 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 Y0HK=nTR-^qkNv?#6_rnonk|q2+4t#-VgLXD literal 0 HcmV?d00001 diff --git a/public/images/spider-logo.png b/public/images/spider-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d5de044f5b8135c3df9e49a3d5573c9234b6f2d5 GIT binary patch literal 17990 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 A3IG5A literal 0 HcmV?d00001 diff --git a/src/app/favicon.ico b/src/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..718d6fea4835ec2d246af9800eddb7ffb276240c GIT binary patch literal 25931 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 LrJugUA?W`A8`#=m literal 0 HcmV?d00001 diff --git a/src/app/globals.css b/src/app/globals.css new file mode 100644 index 0000000..ce1973b --- /dev/null +++ b/src/app/globals.css @@ -0,0 +1,327 @@ +@import "tailwindcss"; + +/* ===================================================================== + Francisco Cardenas — Portfolio + PHASE 1 — Perspective room shell & scroll-to-focus camera (ADR-0002). + One warm, cozy evening scheme (ADR-0004 — themes removed). The room is + a real CSS-3D corner: back wall + side walls + floor + ceiling assembled + under a shared perspective, lit warm. Scrolling glides a fixed camera + between placeholder focus anchors (real objects arrive in Phase 2/3). + ===================================================================== */ + +:root { + /* type (loaded in layout.tsx via next/font) */ + --r-display: var(--font-display), "Space Grotesk", system-ui, sans-serif; + --r-body: var(--font-body), "DM Sans", system-ui, sans-serif; + --r-mono: var(--font-mono), "Space Mono", ui-monospace, monospace; + --ease: cubic-bezier(0.22, 0.61, 0.36, 1); + + /* one cozy scheme — warm lamplight on a dim evening room */ + --bg: #15100b; /* deep warm brown-black, behind everything */ + --bg-2: #1f1710; /* slightly lifted panel ground */ + --panel: #241b13; /* cards / résumé surfaces */ + --ink: #f2e7d6; /* warm off-white text */ + --muted: #b39d80; /* muted tan, secondary text */ + --line: #e7d6ba; /* bright hairline (rare, emphasis) */ + --line-soft: #e7d6ba33; /* faint hairline */ + --hair: #e7d6ba14; /* faintest fill */ + --accent: #e7912f; /* lamp amber — the one warm highlight */ + --accent-2: #c9a36a; /* brass / aged-gold secondary */ + --shadow: rgba(0, 0, 0, 0.5); + + /* room materials (CSS only — no photo textures, ADR-0004) */ + --wall: #c9b596; /* warm greige paint */ + --wall-lit: #dcc9a8; /* where the lamp hits */ + --wall-shade: #9c8a6e; /* walls in shadow */ + --floor: #6f4d30; /* warm wood */ + --floor-dark: #5d3f27; + --ceil: #564833; /* dim warm ceiling — present, not a void */ + + /* camera rig (driven by JS) */ + --cam-x: 0px; + --cam-y: 0px; + --cam-z: 0px; + --cam-ry: 0deg; + --cam-rx: 0deg; + /* global "dolly back" — one knob that steps EVERY view back for breathing + room (and space to furnish later). More negative = further back/smaller. */ + --pull: -250px; + + /* room dimensions — a larger, deeper room */ + --rw: 1620px; + --rh: 940px; + --rd: 1560px; +} + +* { box-sizing: border-box; margin: 0; padding: 0; } +html, body { height: 100%; } +body { + font-family: var(--r-body); + background: var(--bg); + color: var(--ink); + overflow: hidden; + -webkit-font-smoothing: antialiased; +} +body.resume-open { overflow: auto; } +::selection { background: var(--accent); color: #1a120a; } +a { color: inherit; } + +/* paper / film grain over the whole frame */ +.grain { + position: fixed; inset: 0; pointer-events: none; z-index: 60; opacity: 0.4; mix-blend-mode: overlay; + background-image: url("data:image/svg+xml;utf8,"); +} + +/* ============ Top bar ============ */ +.topbar { + position: fixed; top: 0; left: 0; right: 0; z-index: 50; + display: flex; align-items: center; justify-content: space-between; + padding: 18px 26px; pointer-events: none; +} +.topbar > * { pointer-events: auto; } +.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; } +.brand .mark { + width: 42px; height: 42px; display: grid; place-items: center; + border: 1.5px solid var(--line-soft); border-radius: 3px; + font-family: var(--r-display); font-weight: 700; font-size: 18px; letter-spacing: 0.02em; + color: var(--ink); background: rgba(0, 0, 0, 0.35); backdrop-filter: blur(4px); +} +.brand .who { line-height: 1.1; } +.brand .who b { font-family: var(--r-display); font-weight: 600; font-size: 15px; letter-spacing: 0.01em; display: block; } +.brand .who span { font-family: var(--r-mono); font-size: 10.5px; letter-spacing: 0.06em; color: var(--muted); text-transform: uppercase; } + +.controls { display: flex; align-items: center; gap: 10px; } +.btn-resume { + font-family: var(--r-mono); font-size: 10.5px; letter-spacing: 0.08em; text-transform: uppercase; + padding: 10px 15px; border: 1.5px solid var(--accent); border-radius: 3px; + background: var(--accent); color: #1a120a; cursor: pointer; font-weight: 700; + transition: transform 0.2s var(--ease), filter 0.2s; +} +.btn-resume:hover { transform: translateY(-1px); filter: brightness(1.06); } +.btn-resume:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; } + +/* ============ Stage = the camera's perspective frame ============ */ +.stage { + position: fixed; inset: 0; overflow: hidden; + background: radial-gradient(140% 120% at 38% 30%, #1c140d 0%, #0c0805 70%, #070402 100%); + perspective: 1340px; + /* the eye's x slides per focus (JS drives --po-x) so grazing walls swing to + face us; y stays put. Default frames the back wall. */ + perspective-origin: var(--po-x, 43%) 37%; + cursor: grab; touch-action: none; +} +.stage.dragging { cursor: grabbing; } + +/* the moving camera rig — JS eases these vars between focus anchors */ +.camera { + position: absolute; inset: 0; + transform-style: preserve-3d; + transform: + translateZ(var(--pull, 0px)) /* global dolly-back */ + translate3d(var(--cam-x), var(--cam-y), var(--cam-z)) + rotateX(var(--cam-rx)) rotateY(var(--cam-ry)); + will-change: transform; +} + +/* the room box, centered in the camera frame. + A small base turn (yaw + a touch of pitch) gives a three-quarter "looking into + the corner" view instead of a head-on one-point shot. */ +.room { + position: absolute; left: 50%; top: 50%; + width: var(--rw); height: var(--rh); + transform-style: preserve-3d; + /* base three-quarter turn; JS drives --room-ry per focus so the room can swing + to bring a side wall forward (e.g. the left wall for the education stop). */ + transform: translate(-50%, -50%) rotateY(var(--room-ry, -14deg)) rotateX(4deg); +} + +/* ---- the six surfaces ---- */ +.face { position: absolute; top: 50%; left: 50%; } + +.face--back { + width: var(--rw); height: var(--rh); + margin-left: calc(var(--rw) / -2); margin-top: calc(var(--rh) / -2); + transform: translateZ(calc(var(--rd) / -2)); + background: + radial-gradient(64% 58% at 30% 24%, rgba(255, 196, 116, 0.26), transparent 62%), + linear-gradient(180deg, var(--wall-lit) 0%, var(--wall) 52%, var(--wall-shade) 100%); + box-shadow: inset 0 -70px 90px -36px rgba(0, 0, 0, 0.42); /* shadow pooling toward the floor */ +} + +.face--left { + width: var(--rd); height: var(--rh); + margin-left: calc(var(--rd) / -2); margin-top: calc(var(--rh) / -2); + transform: translateX(calc(var(--rw) / -2)) rotateY(90deg); + /* left(0%) edge = front/near camera, right(100%) edge = back corner → darken the corner */ + background: linear-gradient(90deg, #c5b18f 0%, #b39e7e 60%, var(--wall-shade) 100%); + box-shadow: inset 0 -70px 90px -36px rgba(0, 0, 0, 0.5); +} + +.face--right { + width: var(--rd); height: var(--rh); + margin-left: calc(var(--rd) / -2); margin-top: calc(var(--rh) / -2); + transform: translateX(calc(var(--rw) / 2)) rotateY(-90deg); + /* left(0%) edge = back corner, right(100%) edge = front catching lamp light */ + background: + radial-gradient(70% 80% at 88% 32%, rgba(255, 196, 116, 0.20), transparent 60%), + linear-gradient(90deg, var(--wall-shade) 0%, #bca988 50%, var(--wall-lit) 100%); + box-shadow: inset 0 -70px 90px -36px rgba(0, 0, 0, 0.46); +} + +.face--floor { + width: var(--rw); height: var(--rd); + margin-left: calc(var(--rw) / -2); margin-top: calc(var(--rd) / -2); + transform: translateY(calc(var(--rh) / 2)) rotateX(90deg); + /* top(0%) edge = front/near camera, bottom(100%) edge = far/back at the wall */ + background: + linear-gradient(180deg, transparent 48%, rgba(0, 0, 0, 0.14) 74%, rgba(0, 0, 0, 0.42) 100%), + radial-gradient(56% 46% at 50% 14%, rgba(255, 188, 108, 0.22), transparent 64%), + repeating-linear-gradient(90deg, + var(--floor) 0px, var(--floor) 70px, + var(--floor-dark) 70px, var(--floor-dark) 73px), + var(--floor); + box-shadow: inset 0 0 120px 30px rgba(0, 0, 0, 0.3); +} + +.face--ceil { + width: var(--rw); height: var(--rd); + margin-left: calc(var(--rw) / -2); margin-top: calc(var(--rd) / -2); + transform: translateY(calc(var(--rh) / -2)) rotateX(-90deg); + /* a dim but *present* warm ceiling: lamp light bounces up and pools toward the + lit side, the wall seam catches a faint cornice glow, corners fall into + evening shadow. Reads as a real ceiling instead of a black void. */ + background: + radial-gradient(74% 64% at 42% 60%, rgba(255, 193, 117, 0.15), transparent 66%), + linear-gradient(180deg, #5e5039 0%, var(--ceil) 56%, #4a3e2d 100%); + box-shadow: + inset 0 70px 84px -56px rgba(255, 214, 158, 0.12), /* faint cornice glow at the back-wall seam */ + inset 0 0 120px 30px rgba(0, 0, 0, 0.26); /* gentle corner seating — not black */ +} + +/* ---- placeholder focus anchors (Phase 1 stand-ins for future objects) ---- */ +.anchor { + position: absolute; transform: translate(-50%, -50%) scale(1); + width: 168px; min-height: 88px; padding: 13px 15px; + display: flex; flex-direction: column; gap: 7px; justify-content: center; + border: 1.5px solid var(--line-soft); border-radius: 4px; + background: rgba(18, 12, 8, 0.46); backdrop-filter: blur(1px); + color: var(--ink); text-align: left; + cursor: pointer; -webkit-tap-highlight-color: transparent; + transition: border-color 0.4s var(--ease), box-shadow 0.4s var(--ease), + background 0.4s var(--ease), transform 0.4s var(--ease); +} +.anchor .a-kick { + font-family: var(--r-mono); font-size: 9px; letter-spacing: 0.16em; text-transform: uppercase; + color: var(--muted); +} +.anchor .a-name { font-family: var(--r-display); font-weight: 600; font-size: 18px; line-height: 1.05; } +.anchor .a-tag { + font-family: var(--r-mono); font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase; + color: var(--accent-2); opacity: 0.8; +} +.anchor::after { + content: ""; position: absolute; left: 18px; top: -9px; width: 9px; height: 9px; + border-radius: 50%; background: var(--accent); opacity: 0.42; + box-shadow: 0 0 0 4px rgba(231, 145, 47, 0.12); transition: opacity 0.4s var(--ease); +} +.anchor.is-focus { + border-color: var(--accent); + background: rgba(28, 18, 10, 0.62); + box-shadow: 0 0 0 1px var(--accent), 0 14px 40px -10px rgba(231, 145, 47, 0.45), + 0 0 60px -8px rgba(231, 145, 47, 0.4); + transform: translate(-50%, -50%) scale(1.06); +} +.anchor.is-focus::after { opacity: 1; } +/* floor markers lie on a plane that faces the ceiling → flip them upright for the camera */ +.anchor.on-floor { width: 184px; transform: translate(-50%, -50%) rotate(180deg); } +.anchor.on-floor.is-focus { transform: translate(-50%, -50%) rotate(180deg) scale(1.06); } + +/* warm motes / dust in the lamp light (ambient, very subtle) */ +.stage::before { + content: ""; position: absolute; inset: 0; z-index: 4; pointer-events: none; + background: radial-gradient(40% 36% at 33% 30%, rgba(255, 198, 122, 0.12), transparent 70%); + mix-blend-mode: screen; +} +/* camera vignette → seats the room in evening darkness */ +.stage::after { + content: ""; position: absolute; inset: 0; z-index: 5; pointer-events: none; + background: radial-gradient(125% 105% at 38% 34%, transparent 44%, rgba(8, 4, 2, 0.5) 82%, rgba(4, 2, 1, 0.78) 100%); +} + +/* ============ Focus rail (named anchors, right edge) ============ */ +.focusnav { + position: fixed; right: 22px; top: 50%; transform: translateY(-50%); z-index: 46; + display: flex; flex-direction: column; gap: 4px; pointer-events: none; +} +.focusnav button { + pointer-events: auto; display: flex; align-items: center; gap: 12px; justify-content: flex-end; + background: transparent; border: 0; cursor: pointer; padding: 7px 4px; + font-family: var(--r-mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; + color: var(--muted); transition: color 0.25s; +} +.focusnav button .fn-label { + opacity: 0; transform: translateX(6px); transition: opacity 0.25s var(--ease), transform 0.25s var(--ease); +} +.focusnav button:hover { color: var(--ink); } +.focusnav button:hover .fn-label, +.focusnav button.on .fn-label { opacity: 1; transform: none; } +.focusnav button .fn-dot { + width: 9px; height: 9px; border: 1.5px solid var(--muted); border-radius: 50%; + transition: 0.25s; flex: none; +} +.focusnav button.on { color: var(--ink); } +.focusnav button.on .fn-dot { background: var(--accent); border-color: var(--accent); box-shadow: 0 0 12px rgba(231, 145, 47, 0.6); } +.focusnav button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 3px; } + +/* ============ Scroll hint ============ */ +.hint { + position: fixed; left: 50%; bottom: 30px; transform: translateX(-50%); z-index: 44; + font-family: var(--r-mono); font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); + display: flex; flex-direction: column; align-items: center; gap: 9px; opacity: 0; transition: opacity 0.6s; +} +body.lit .hint { opacity: 1; } +.hint.gone { opacity: 0 !important; pointer-events: none; } +.hint .wheel { + width: 22px; height: 34px; border: 1.5px solid var(--line-soft); border-radius: 12px; position: relative; +} +.hint .wheel::after { + content: ""; position: absolute; left: 50%; top: 7px; width: 3px; height: 7px; border-radius: 2px; + background: var(--accent); transform: translateX(-50%); animation: wheel 1.5s var(--ease) infinite; +} +@keyframes wheel { 0% { opacity: 0; transform: translate(-50%, 0); } 30% { opacity: 1; } 100% { opacity: 0; transform: translate(-50%, 12px); } } + +/* intro: fade the whole room up once mounted */ +.camera { opacity: 0; transition: opacity 1.1s var(--ease); } +body.lit .camera { opacity: 1; } + +/* ============ Résumé / fast-lane view ============ */ +.resume { position: fixed; inset: 0; z-index: 80; background: var(--bg); color: var(--ink); overflow-y: auto; opacity: 0; pointer-events: none; transition: opacity 0.45s var(--ease); } +.resume.show { opacity: 1; pointer-events: auto; } +.resume .sheet { max-width: 820px; margin: 0 auto; padding: 84px 40px 120px; } +.resume .r-back { position: fixed; top: 18px; left: 26px; z-index: 81; font-family: var(--r-mono); font-size: 10.5px; letter-spacing: 0.08em; text-transform: uppercase; border: 1.5px solid var(--line-soft); background: var(--bg-2); color: var(--ink); padding: 9px 14px; cursor: pointer; border-radius: 3px; } +.resume .r-back:hover { border-color: var(--accent); } +.resume .r-head { border-bottom: 2px solid var(--line-soft); padding-bottom: 26px; margin-bottom: 34px; } +.resume .r-head h1 { font-family: var(--r-display); font-weight: 700; font-size: clamp(40px, 7vw, 68px); letter-spacing: -0.03em; line-height: 0.95; } +.resume .r-head .rt { font-family: var(--r-mono); font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--accent); margin-top: 12px; } +.resume .r-head .rc { display: flex; flex-wrap: wrap; gap: 8px 26px; margin-top: 16px; font-family: var(--r-mono); font-size: 12px; color: var(--muted); } +.resume .r-sec { display: grid; grid-template-columns: 170px 1fr; gap: 10px 32px; padding: 30px 0; border-top: 1.5px solid var(--line-soft); } +.resume .r-sec > h2 { font-family: var(--r-mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent); padding-top: 5px; } +.resume .r-sec .rbody p { font-size: 16px; line-height: 1.65; max-width: 60ch; color: var(--ink); } +.resume .r-sec .rbody .small { color: var(--muted); font-size: 14px; } +@media (max-width: 680px) { + .resume .r-sec { grid-template-columns: 1fr; gap: 8px; } +} + +/* ============ responsive (desktop-first per ADR-0004; keep mobile usable) ============ */ +@media (max-width: 760px) { + .brand .who { display: none; } + .stage { perspective: 940px; perspective-origin: var(--po-x, 46%) 39%; } + :root { --rw: 1180px; --rh: 780px; --rd: 1100px; } + .focusnav { right: 12px; gap: 2px; } + .focusnav button .fn-label { display: none; } +} + +@media (prefers-reduced-motion: reduce) { + * { animation-duration: 0.001s !important; } + .camera, .anchor, .btn-resume { transition-duration: 0.2s !important; } +} diff --git a/src/app/layout.tsx b/src/app/layout.tsx new file mode 100644 index 0000000..70b0043 --- /dev/null +++ b/src/app/layout.tsx @@ -0,0 +1,38 @@ +import type { Metadata } from "next"; +import { Space_Grotesk, DM_Sans, Space_Mono } from "next/font/google"; +import "./globals.css"; +import { identity } from "@/content/site"; + +const display = Space_Grotesk({ + variable: "--font-display", + subsets: ["latin"], + weight: ["400", "500", "600", "700"], +}); +const body = DM_Sans({ + variable: "--font-body", + subsets: ["latin"], + weight: ["400", "500", "600", "700"], +}); +const mono = Space_Mono({ + variable: "--font-mono", + subsets: ["latin"], + weight: ["400", "700"], +}); + +export const metadata: Metadata = { + title: `${identity.name} — ${identity.title}`, + description: `${identity.name}: ${identity.title} student at City Tech, Brooklyn. ${identity.tagline}.`, +}; + +export default function RootLayout({ + children, +}: Readonly<{ children: React.ReactNode }>) { + return ( + + {children} + + ); +} diff --git a/src/app/page.tsx b/src/app/page.tsx new file mode 100644 index 0000000..f10cfcc --- /dev/null +++ b/src/app/page.tsx @@ -0,0 +1,5 @@ +import Portfolio from "@/components/Portfolio"; + +export default function Home() { + return ; +} diff --git a/src/components/Portfolio.tsx b/src/components/Portfolio.tsx new file mode 100644 index 0000000..e1f683f --- /dev/null +++ b/src/components/Portfolio.tsx @@ -0,0 +1,391 @@ +"use client"; + +/* ===================================================================== + Portfolio.tsx — PHASE 1: the perspective room shell + camera. + --------------------------------------------------------------------- + A real CSS-3D corner of a room (walls + floor + ceiling under one + shared perspective). A fixed camera glides between named focus + anchors as you scroll — these anchors are PLACEHOLDERS standing in + for the objects (poster, desk, shelf…) that get furnished in later + phases. Content/labels still come from src/content/site.ts. + ===================================================================== */ + +import { useEffect, useRef, useState } from "react"; +import { identity, stations, resumeOrder } from "@/content/site"; + +/* ---- the placeholder focus anchors, pinned onto the room's surfaces ---- + `face` = which surface the marker lives on + `x`/`y` = its position on that surface (CSS %) + `cam` = where the camera glides to when this anchor is focused: + x/y/z — px translate of the room + ry/rx — small camera turn + rry — the ROOM's base turn (deg). The real lever for facing a + wall: turning the room brings a side wall forward so its + objects read square-on instead of edge-on. + pox — the perspective "eye" x-position (%), a finer framing nudge. + The six stops are arranged LEFT→RIGHT across the room so scrolling A→F + sweeps the camera smoothly across it with no backtracking: + about (A) → left wall + education/experience/skills (B,C,D) → back wall, left→right + involvement/contact (E,F) → right wall, back→front + rry — the ROOM's base turn. Back-wall and right-wall stops keep the resting + three-quarter turn (-14°); the left-wall stop (about) turns the room FURTHER + the same way (to -55°) so the left wall swings around to face us head-on. + Turning it the other way (toward +deg) instead shows the wall's BACK face — + mirrored and filling the screen (the original "glitch through the wall" bug). + All values glide smoothly between stops. */ +type Face = "back" | "left" | "right" | "floor"; +type Cam = { x: number; y: number; z: number; ry: number; rx: number; pox: number; rry: number }; +type Anchor = { id: string; face: Face; x: string; y: string; cam: Cam }; + +const ANCHORS: Anchor[] = [ + // left wall — the head-on stop the page lands on + { id: "about", face: "left", x: "44%", y: "44%", cam: { x: 420, y: 50, z: 240, ry: 0, rx: 0, pox: 43, rry: -55 } }, + // back wall, swept left → right + { id: "education", face: "back", x: "24%", y: "34%", cam: { x: 250, y: 55, z: 190, ry: 0, rx: 0, pox: 43, rry: -14 } }, + { id: "experience", face: "back", x: "55%", y: "34%", cam: { x: -30, y: 55, z: 195, ry: 0, rx: 0, pox: 43, rry: -14 } }, + { id: "skills", face: "back", x: "78%", y: "40%", cam: { x: -250, y: 35, z: 190, ry: 0, rx: 0, pox: 43, rry: -14 } }, + // right wall, back corner → front + { id: "involvement", face: "right", x: "38%", y: "40%", cam: { x: -90, y: 26, z: -110, ry: 54, rx: 0, pox: 43, rry: -14 } }, + { id: "contact", face: "right", x: "52%", y: "44%", cam: { x: -150, y: 28, z: -110, ry: 54, rx: 0, pox: 43, rry: -14 } }, +]; + +const stById = (id: string) => stations.find((s) => s.id === id); +const lerp = (a: number, b: number, t: number) => a + (b - a) * t; + +/* ---------- the one-page résumé / fast-lane view ---------- */ +function ResumeView({ onBack }: { onBack: () => void }) { + return ( + <> + +
+
+

{identity.name}

+
{identity.title}
+
+ {identity.location} + {identity.school} + + + LinkedIn ↗ + + + {identity.email} +
+
+ + {resumeOrder.map((sid) => { + const st = stById(sid); + if (!st) return null; + return ( +
+

{st.tab}

+
+

{st.body}

+ {st.roles?.map((r, i) => ( +

+ {r.role} — {r.org} · {r.date} +
+ {r.note} +

+ ))} + {st.software && ( +

+ {st.software.map((s, i) => ( + + {i > 0 && " · "} + {s[0]} — {s[1]} + + ))} +

+ )} + {st.software && st.learning && ( +

+ Also: {st.learning.join(", ")} +

+ )} + {st.facts && ( +

+ {st.facts.map((f, i) => ( + + {i > 0 && " · "} + {f[0]}: {f[1]} + + ))} +

+ )} + {st.links && ( +

+ + LinkedIn ↗ + {" "} + · Résumé available on request +

+ )} +
+
+ ); + })} +
+ + ); +} + +/* ---------- a single placeholder marker on a wall/floor ---------- */ +function AnchorMarker({ a, active, onClick }: { a: Anchor; active: boolean; onClick: () => void }) { + const st = stById(a.id); + return ( + + ); +} + +export default function Portfolio() { + const [resumeOpen, setResumeOpen] = useState(false); + const [focus, setFocus] = useState(0); + + const stageRef = useRef(null); + const cameraRef = useRef(null); + const roomRef = useRef(null); + const hintRef = useRef(null); + + // imperative engine state the React tree shouldn't re-render on + const targetF = useRef(0); + const curF = useRef(0); + const resumeRef = useRef(false); + + // jump the camera to an anchor (used by the focus rail + marker clicks) + const goToRef = useRef<(i: number) => void>(() => {}); + + useEffect(() => { + resumeRef.current = resumeOpen; + document.body.classList.toggle("resume-open", resumeOpen); + }, [resumeOpen]); + + /* intro reveal + escape-to-close */ + useEffect(() => { + const raf = requestAnimationFrame(() => setTimeout(() => document.body.classList.add("lit"), 80)); + const onKey = (e: KeyboardEvent) => { + if (e.key === "Escape") setResumeOpen(false); + }; + window.addEventListener("keydown", onKey); + return () => { + cancelAnimationFrame(raf); + window.removeEventListener("keydown", onKey); + }; + }, []); + + /* the scroll-to-focus camera engine (runs once) */ + useEffect(() => { + const stage = stageRef.current!; + const camera = cameraRef.current!; + const room = roomRef.current!; + const N = ANCHORS.length; + const reduce = matchMedia("(prefers-reduced-motion: reduce)").matches; + const clampF = (v: number) => Math.max(0, Math.min(N - 1, v)); + + const goTo = (i: number) => { + targetF.current = clampF(i); + hideHint(); + }; + goToRef.current = goTo; + + // wheel → glide between anchors + const onWheel = (e: WheelEvent) => { + if (resumeRef.current) return; + const d = Math.abs(e.deltaY) >= Math.abs(e.deltaX) ? e.deltaY : e.deltaX; + targetF.current = clampF(targetF.current + d * 0.0045); + hideHint(); + e.preventDefault(); + }; + stage.addEventListener("wheel", onWheel, { passive: false }); + + // keys → step between anchors + const onKey = (e: KeyboardEvent) => { + if (resumeRef.current) return; + const step = (n: number) => { targetF.current = clampF(Math.round(targetF.current) + n); hideHint(); }; + if (["ArrowDown", "ArrowRight", "PageDown", " "].includes(e.key)) { step(1); e.preventDefault(); } + else if (["ArrowUp", "ArrowLeft", "PageUp"].includes(e.key)) { step(-1); e.preventDefault(); } + else if (e.key === "Home") { targetF.current = 0; } + else if (e.key === "End") { targetF.current = N - 1; } + }; + window.addEventListener("keydown", onKey); + + // drag (pointer / touch) → vertical drag scrubs focus + let dragging = false, startY = 0, startF = 0, moved = 0; + const onDown = (e: PointerEvent) => { + if (resumeRef.current) return; + if ((e.target as HTMLElement).closest(".anchor, .topbar, .focusnav")) return; + dragging = true; moved = 0; startY = e.clientY; startF = targetF.current; + stage.classList.add("dragging"); + stage.setPointerCapture(e.pointerId); + }; + const onMove = (e: PointerEvent) => { + if (!dragging) return; + moved += Math.abs(e.movementY || 0); + targetF.current = clampF(startF + (startY - e.clientY) * 0.006); + if (moved > 6) hideHint(); + }; + const endDrag = () => { dragging = false; stage.classList.remove("dragging"); }; + stage.addEventListener("pointerdown", onDown); + stage.addEventListener("pointermove", onMove); + stage.addEventListener("pointerup", endDrag); + stage.addEventListener("pointercancel", endDrag); + + // render loop + let lastNearest = -1; + let raf = 0; + const apply = () => { + if (reduce) curF.current = targetF.current; + else { + curF.current += (targetF.current - curF.current) * 0.09; + if (Math.abs(targetF.current - curF.current) < 0.001) curF.current = targetF.current; + } + const f = curF.current; + const i0 = Math.floor(f), i1 = Math.min(N - 1, i0 + 1), t = f - i0; + const a = ANCHORS[i0].cam, b = ANCHORS[i1].cam; + camera.style.setProperty("--cam-x", lerp(a.x, b.x, t).toFixed(2) + "px"); + camera.style.setProperty("--cam-y", lerp(a.y, b.y, t).toFixed(2) + "px"); + camera.style.setProperty("--cam-z", lerp(a.z, b.z, t).toFixed(2) + "px"); + camera.style.setProperty("--cam-ry", lerp(a.ry, b.ry, t).toFixed(3) + "deg"); + camera.style.setProperty("--cam-rx", lerp(a.rx, b.rx, t).toFixed(3) + "deg"); + stage.style.setProperty("--po-x", lerp(a.pox, b.pox, t).toFixed(2) + "%"); // glide the eye too + room.style.setProperty("--room-ry", lerp(a.rry, b.rry, t).toFixed(3) + "deg"); // turn the room to face the wall + + const nearest = Math.round(f); + if (nearest !== lastNearest) { lastNearest = nearest; setFocus(nearest); } + raf = requestAnimationFrame(apply); + }; + apply(); + + // auto-hide the scroll hint + let hintGone = false; + function hideHint() { + if (hintGone) return; + hintGone = true; + hintRef.current?.classList.add("gone"); + } + const hintTimer = setTimeout(hideHint, 7000); + + return () => { + cancelAnimationFrame(raf); + clearTimeout(hintTimer); + stage.removeEventListener("wheel", onWheel); + window.removeEventListener("keydown", onKey); + stage.removeEventListener("pointerdown", onDown); + stage.removeEventListener("pointermove", onMove); + stage.removeEventListener("pointerup", endDrag); + stage.removeEventListener("pointercancel", endDrag); + }; + }, []); + + const anchorsOn = (face: Face) => ANCHORS.filter((a) => a.face === face); + const renderAnchors = (face: Face) => + anchorsOn(face).map((a) => { + const idx = ANCHORS.indexOf(a); + return ( + goToRef.current(idx)} /> + ); + }); + + const init = ANCHORS[0].cam; + + return ( + <> +
+ + {/* ===== top bar ===== */} +
+ + {identity.initials} + + {identity.name} + {identity.title} + + +
+ +
+
+ + {/* ===== the room ===== */} +
+
+
+ +
+
+ + {/* ===== focus rail ===== */} + + + {/* ===== scroll hint ===== */} +
+ Scroll to look around +
+ + {/* ===== résumé fast-lane ===== */} +
+ {resumeOpen && setResumeOpen(false)} />} +
+ + ); +} diff --git a/src/content/site.ts b/src/content/site.ts new file mode 100644 index 0000000..015bec9 --- /dev/null +++ b/src/content/site.ts @@ -0,0 +1,228 @@ +/* ===================================================================== + site.ts — THE ONE FILE TO EDIT. + --------------------------------------------------------------------- + Almost everything you see on the website (your name, the wording, + your jobs, your skills, your links, which photo shows where) is set + right here. Change the text between the "quotes", save, and the site + updates. You do NOT need to touch any other file for normal edits. + + To swap a photo: put the new image in public/images/ and update the + matching "image:" path below (keep the leading slash, e.g. /images/x.jpg). + ===================================================================== */ + +/** Your name, contact details, and the headline shown at the top. */ +export const identity = { + name: "Francisco Cardenas", + initials: "FC", // the little monogram in the top-left corner + /** Shown in the hero line: " at City Tech, Brooklyn". */ + title: "Civil Engineering & Construction Management", + /** The short phrase after the dash in the hero line. Keep it punchy. */ + tagline: "building toward estimating & project controls", + location: "Brooklyn, New York", + school: "NYC College of Technology — CUNY (City Tech)", + /** Small status line under the hero. */ + status: "Expected May 2027 · Open to internships & co-ops", + linkedin: "https://www.linkedin.com/in/francisco-cardenas-58a6b32b1", + email: "franciscocardenasj1@gmail.com", +}; + +/* --------------------------------------------------------------------- + The drawing block in the bottom-right corner (like a real blueprint + title block). Cosmetic — tweak the labels if you like. + --------------------------------------------------------------------- */ +export const titleBlock = { + sheet: "A-00 · Cover", + discipline: "Civil / Construction", +}; + +/* --------------------------------------------------------------------- + Captions printed under the photos. The "key" (jobsite/asce/careerfair) + must match the image keys used in the sections below. + --------------------------------------------------------------------- */ +export const photoCaptions: Record<string, string> = { + jobsite: "On site — Haugland Group project", + asce: "ASCE student chapter", + careerfair: "Industry career fair", +}; + +/* --------------------------------------------------------------------- + The photo files. Drop new images into public/images and point here. + --------------------------------------------------------------------- */ +export const photos: Record<string, string> = { + jobsite: "/images/jobsite.jpg", + asce: "/images/asce.jpg", + careerfair: "/images/careerfair.jpg", +}; + +/* ===================================================================== + SECTIONS ("stations") — read left to right on the drawing sheet. + Each one becomes a numbered callout card and a tab along the bottom. + You can reorder them, edit the text, or add/remove facts freely. + ===================================================================== */ +export type Station = { + id: string; + num: string; // the big number on the card, e.g. "01" + tab: string; // short label in the bottom nav + title: string; // headline shown on the card and in the slide-out panel + kicker: string; // tiny label, e.g. "A / WHO" + body: string; // the main paragraph + facts?: [string, string][]; // label + value rows + roles?: { role: string; org: string; date: string; note: string }[]; + software?: [string, string][]; // tool name + what you use it for (shows bars) + learning?: string[]; // extra skills shown as little tags + photos?: string[]; // image keys from "photos" above + links?: [label: string, value: string, kind: "linkedin" | "email" | "resume"][]; +}; + +export const stations: Station[] = [ + { + id: "about", + num: "01", + tab: "About", + title: "The brief", + kicker: "A / WHO", + body: + "I'm a Civil Engineering and Construction Management student at City Tech in " + + "Brooklyn, drawn to the part of the job where the drawing meets the dirt — " + + "estimating, site safety, and field coordination. I like the math behind a bid " + + "as much as I like being on site when it gets built.", + facts: [ + ["Focus", "Estimating · Site safety · Field coordination"], + ["Based", "Brooklyn, NY"], + ["Status", "Open to internships & co-ops"], + ], + }, + { + id: "education", + num: "02", + tab: "Education", + title: "City Tech", + kicker: "B / SCHOOL", + body: + "New York City College of Technology (CUNY) — pursuing a B.S. in Civil " + + "Engineering and an A.A.S. in Construction Management. Coursework across " + + "structures, materials, surveying, estimating, and construction documents.", + facts: [ + ["Degrees", "B.S. Civil Engineering · A.A.S. Construction Management"], + ["Graduating", "Expected May 2027"], + [ + "Coursework", + "Construction Drawings I & II · Estimating · Statics · Strength of Materials · Surveying · Building Systems", + ], + ], + }, + { + id: "experience", + num: "03", + tab: "Experience", + title: "On the job", + kicker: "C / WORK", + body: + "Time in the estimating office and on active construction sites — takeoffs, " + + "cost, and safety. Here's where I've worked.", + photos: ["jobsite", "careerfair"], + roles: [ + { + role: "Estimator Intern", + org: "Artheon — New York, NY", + date: "Jun 2026 – Aug 2026", + note: + "Marked up construction drawings in Bluebeam Revu for quantity takeoffs and " + + "cost estimates; prepared material & labor estimates for bidding and budgeting; " + + "used AI tools to speed up document review and takeoffs.", + }, + { + role: "Site Safety Intern", + org: "Haugland Group LLC — Brooklyn, NY", + date: "Jun 2025 – Present", + note: + "Support health & safety on an active site — daily briefings, on-site " + + "evaluations, hazard identification with field supervisors, and documentation " + + "for internal audits and external inspections.", + }, + { + role: "Online Tech Incubator", + org: "Industry Scholars Program — Queens, NY", + date: "Apr 2023 – Jun 2023", + note: + "Competitive incubator for early-stage startups; designed and launched a " + + "personal portfolio site and kept a weekly blog tracking project milestones.", + }, + ], + }, + { + id: "skills", + num: "04", + tab: "Skills", + title: "The toolbox", + kicker: "D / SOFTWARE", + body: + "The software I work in today, plus the languages I build with. Point me at a " + + "new stack and I'll be productive fast.", + software: [ + ["Bluebeam Revu", "Markups, takeoffs & coordination"], + ["AutoCAD", "Drafting & construction documents"], + ["RSMeans", "Cost data & estimating"], + ], + learning: [ + "Microsoft Excel", + "Procore", + "HTML / CSS", + "JavaScript", + "React", + "Next.js", + "Git / GitHub", + ], + facts: [ + [ + "Certifications", + "OSHA 10-Hour · OSHA 30-Hour · Scaffold User · Excavator Training · MTA Track Safety", + ], + ["Languages", "English · Spanish"], + ], + }, + { + id: "involvement", + num: "05", + tab: "Involvement", + title: "ASCE", + kicker: "E / COMMUNITY", + body: + "Active with the American Society of Civil Engineers student chapter at City " + + "Tech — mentorship, networking, and giving back.", + photos: ["asce"], + facts: [ + ["Member", "ASCE — CUNY City Tech (Jan 2025 – Present)"], + [ + "Volunteer", + "Youth spokesperson at the Intrepid Museum, teaching kids about civil engineering & infrastructure", + ], + ], + }, + { + id: "contact", + num: "06", + tab: "Contact", + title: "Let's talk", + kicker: "F / REACH ME", + body: + "Looking for internships and co-ops in estimating, project controls, or site " + + "safety. LinkedIn or email is the fastest way to reach me — résumé available on " + + "request.", + links: [ + ["LinkedIn", "francisco-cardenas", "linkedin"], + ["Email", "franciscocardenasj1@gmail.com", "email"], + ["Résumé", "Available on request", "resume"], + ], + }, +]; + +/** Order the sections appear in the one-page Résumé view. */ +export const resumeOrder = [ + "about", + "education", + "experience", + "skills", + "involvement", + "contact", +];