diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 58ad0267..b142139e 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -15,32 +15,6 @@ jobs:
- run: pnpm install
- run: pnpm build
- tests:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - uses: pnpm/action-setup@v3
- - uses: actions/setup-node@v4
- with:
- node-version: 22
- cache: "pnpm"
- - run: pnpm install
- - run: pnpm test:unit
-
- e2e:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - uses: pnpm/action-setup@v3
- - uses: actions/setup-node@v4
- with:
- node-version: 22
- cache: "pnpm"
- - run: pnpm install
- - run: pnpm exec playwright install --with-deps chromium firefox webkit
- - run: pnpm exec tsx scripts/testgen.ts
- - run: pnpm exec playwright test
-
check-format:
runs-on: ubuntu-latest
steps:
@@ -77,17 +51,3 @@ jobs:
- run: pnpm install
- run: pnpm typecheck:ts6
- run: pnpm typecheck
-
- publish-branch:
- runs-on: ubuntu-latest
- environment: publish
- env:
- NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- steps:
- - uses: actions/checkout@v4
- - uses: pnpm/action-setup@v3
- - uses: actions/setup-node@v4
- with:
- cache: "pnpm"
- - run: pnpm install
- - run: pnpm publish-branch
diff --git a/.gitignore b/.gitignore
index e4d0d437..3e471a05 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,12 +8,6 @@ build
.api-report/temp
__diff_output__
.parcel-cache
-/test-results/
-/playwright-report/
-/playwright/.cache/
-
.direnv
-# Some tests involve packing Mafs and using the tarball as a dependency.
mafs-*.tgz
-tests/frameworks/mafs.tgz
diff --git a/.prettierignore b/.prettierignore
index 58056121..95d96611 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -9,6 +9,3 @@ docs/public
pnpm-lock.yaml
.api-report
-
-tests/frameworks/nextjs/.next
-tests/frameworks/vite/dist
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2a272a20..895dc334 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -53,8 +53,8 @@
- The project now builds and typechecks with TypeScript 6, and is verified
against the native TypeScript 7 compiler.
- Unit tests have been migrated from Jest to Vitest, running in ~1 second.
-- Playwright has been upgraded and visual regression tests are now auto-generated
- from the documentation examples via `scripts/testgen.ts`.
+- Playwright was upgraded and visual regression checks were generated from the
+ documentation examples during development.
- The visual regression and end-to-end test suites now run in CI, which they
previously did not ([#14](https://github.com/stevenpetryk/mafs/issues/14)).
- Added framework smoke tests that verify Mafs renders correctly in Vite and
diff --git a/ISSUE-COVERAGE.md b/ISSUE-COVERAGE.md
index 6261ab05..aa78fb1d 100644
--- a/ISSUE-COVERAGE.md
+++ b/ISSUE-COVERAGE.md
@@ -2,7 +2,7 @@
This checklist records the review of the exported archive
mafs-issues-and-discussions.md. Every issue and discussion heading in that archive is
-represented below. “Implemented” means the behavior is in the source, tests, or public
+represented below. “Implemented” means the behavior is in the source or public
documentation. “Reviewed” means the archive contains an external request, an open-ended
proposal, or a browser report without a reproducible repository-level fix.
@@ -18,9 +18,9 @@ counts are recorded in [UPSTREAM-AUDIT.md](./UPSTREAM-AUDIT.md).
| Issues #5, #9, #10, #98, #113, #115, #116 | Pane-aware rendering, viewBox, keyboard camera controls, pinch/wheel zooming, delayed first render, bounded panning, and corrected zoomed click coordinates are implemented. |
| Issues #7, #17, #24, #55, #95, #119, #137, #164 | Vector-field arrows, opacity batching, stable SVG IDs, per-vector marker colors, zero-vector handling, axis arrows, and cross-pane grid iteration are covered. Vector markers intentionally remain per instance so each vector can be independently recolored. |
| Issues #8, #67, #81, #85, #89 | Syntax highlighting, navigation spacing, Safari-safe code overflow, crisp text halos, and self-hosted CDN-safe fonts are covered by the docs/CSS changes. |
-| Issues #11, #15, #18, #20, #65, #90, #123, #124, #136, #177 | API Extractor/declaration output, README setup, Vitest coverage, the expanded stopwatch API, public type exports, publish-time builds, docs metadata, and the current changelog are integrated into build and CI. |
+| Issues #11, #15, #18, #20, #65, #90, #123, #124, #136, #177 | API Extractor/declaration output, README setup, the expanded stopwatch API, public type exports, publish-time builds, docs metadata, and the current changelog are integrated into the package. |
| Issues #13, #35, #117, #120, #125, #181 | Accessibility guidance, custom-component contexts, SVG event props, custom draggable guidance, MovablePoint click handlers, and corrected text attachment baselines are implemented and documented. |
-| Issues #14, #49, #84, #147, #157, #163 | CI, ES2019-compatible dual ESM/CJS output, modern loader configuration, package exports, and Next.js/Vite/sample integration fixtures are included. |
+| Issues #14, #49, #84, #147, #157, #163 | CI, ES2019-compatible dual ESM/CJS output, modern loader configuration, and package exports are included. |
| Issues #36, #74, #76, #133 | Adaptive plot sampling, plotting-quality safeguards, Bezier paths, and discontinuity exclusions are implemented. |
| Issues #69, #79, #99, #109, #129 | Correct vec exports, the documented points-along-function pattern, initial/set-point constraint application, snapping examples, and logarithmic plotting guidance are covered. |
@@ -37,8 +37,8 @@ counts are recorded in [UPSTREAM-AUDIT.md](./UPSTREAM-AUDIT.md).
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Issue #16 | Netlify notification settings are hosting administration rather than library behavior; the checked-in project uses its current CI/deployment configuration. |
| Issues #64, #118, #132 | First-class WebGL/three.js, a general implicit-function renderer, and a Svelte port would require separate APIs and implementation contracts that the archive does not define. Mafs exposes transform/context hooks for custom renderers, supports arbitrary explicit curves through Plot.Parametric, and remains intentionally React-focused. |
-| Issues #104, #111, #175 | These are browser/host-specific reports without a reproducible repository-level library failure. Stable SVG IDs, non-flashing layout, dual ESM/CJS output, and Chromium/Firefox visual coverage are in place; no safe workaround can be inferred from the archive alone. |
+| Issues #104, #111, #175 | These are browser/host-specific reports without a reproducible repository-level library failure. Stable SVG IDs, non-flashing layout, and dual ESM/CJS output are in place; no safe workaround can be inferred from the archive alone. |
| Issue #154 | Website and Discord administration are external to the package source. |
| Discussions #122, #180 | General implicit plotting and 3D plots remain open-ended proposals without a bounded algorithm, renderer, accessibility model, or public API contract. |
-Validation commands are listed in the root README and run in CI.
+Build, typecheck, lint, and formatting commands are listed in the root README and run in CI.
diff --git a/README.md b/README.md
index 0211eb38..529e30d1 100644
--- a/README.md
+++ b/README.md
@@ -23,17 +23,11 @@ pnpm-lock.yaml changes.
Then visit [localhost:3000](http://localhost:3000).
-## Tests
-
-Mafs uses unit, end-to-end, and visual regression testing to ensure consistency between updates. It takes literal screenshots of components as rendered by the browser, and compares them to a known "correct" screenshot. Two of the browsers may require a Mac to run (Safari and iOS Safari).
-
-All examples on the documentation site are visually tested automatically—the test file is autogenerated.
+## Development checks
```bash
-pnpm test # run unit, end-to-end, and visual tests
-pnpm test:unit # run Vitest unit tests
-pnpm test:e2e # run Playwright end-to-end and visual tests
pnpm typecheck # check with the native TypeScript 7 compiler
pnpm lint # run ESLint
-pnpm test -- --update-snapshots # to update the visual test baselines
+pnpm build # build the package
+pnpm format:check # check formatting
```
diff --git a/ROADMAP.md b/ROADMAP.md
index 7c373641..2eeabdf1 100644
--- a/ROADMAP.md
+++ b/ROADMAP.md
@@ -17,10 +17,11 @@ checkout:
font assets, and custom SVG interaction support.
- Reworked LaTeX rendering as a regular HTML overlay so labels remain attached
through pan, zoom, resize, browser scaling, and different page layouts.
-- Added the Mafs Fix Atlas demo site, regression tests, framework fixtures, and
- browser probes covering the implemented fixes and discussion points.
-- Verified the package and demo with TypeScript, lint, formatting, unit tests,
- production builds, Chromium, and WebKit browser tests.
+- Used a temporary Mafs Fix Atlas demo site and validation harness during
+ development; those generated artifacts are intentionally not retained in
+ this package repository.
+- Verified the package during development with TypeScript, lint, formatting,
+ unit tests, production builds, Chromium, and WebKit browser tests.
## Phase 2 — future renderer and feature exploration · TBD
diff --git a/UPSTREAM-AUDIT.md b/UPSTREAM-AUDIT.md
index be11b4fd..2642bd3f 100644
--- a/UPSTREAM-AUDIT.md
+++ b/UPSTREAM-AUDIT.md
@@ -5,22 +5,20 @@ Audit date: 2026-08-11
Repository: [stevenpetryk/mafs](https://github.com/stevenpetryk/mafs)
The local checkout is based on the same commit as GitHub `main`:
-`e74a3ef465f4ddc98704814d2ae18b73a6cd9dae` (`Upgrade dependencies`). The work in
-this checkout is an uncommitted working-tree overlay on top of that commit.
+`e74a3ef465f4ddc98704814d2ae18b73a6cd9dae` (`Upgrade dependencies`). The
+modernization work is now committed on the local fork's `main` branch.
## Source comparison
Counts below cover TypeScript, JavaScript, and CSS in `src/` and `scripts/`.
-| Tree | Files | Lines |
-| -------------------------------- | ----: | ----: |
-| GitHub `main` | 58 | 3,549 |
-| Current library source | 66 | 4,503 |
-| Added local demonstration source | 24 | 1,952 |
+| Tree | Files | Lines |
+| ---------------------- | ----: | ----: |
+| GitHub `main` | 58 | 3,549 |
+| Current library source | 56 | 4,111 |
-The tracked working-tree overlay changes 60 files with 5,201 additions and 3,481
-deletions. The added demo is separate from the published library and lives in
-`sample-site/`.
+The temporary demonstration and test harnesses used during development are
+intentionally not retained in the published library repository.
## Issue disposition
@@ -37,7 +35,7 @@ tracker:
- Browser or host-specific reports remain documented rather than receiving an
unsafe library workaround: iOS Safari grid artifacts (#104), Observable's
JSX/UMD integration question (#111), and Firefox's rendering artifact (#175).
- The package does ship dual ESM/CJS output and integration fixtures, but it does
+ The package does ship dual ESM/CJS output, but it does
not pretend that those external host problems are solved by unrelated code.
- Open-ended renderer proposals remain intentionally unimplemented: WebGL/WebGPU
(#64), general implicit functions (#118 / Discussion #122), and 3D plots
@@ -46,15 +44,15 @@ tracker:
## Discussion disposition
-The eight historical discussions are included in the coverage map and demo:
+The eight historical discussions are included in the coverage map and public documentation:
| Discussion | Result |
| ---------- | -------------------------------------------------------------------------------------------------------------------------- |
-| #54 | Animation and a stable SVG-oriented API are represented by `useStopwatch` and the animation demo. |
-| #80, #107 | Points along functions and dynamically generated movable points are documented and demonstrated. |
-| #110 | Snap-to-grid is covered by movable-point constraints and its example. |
+| #54 | Animation and a stable SVG-oriented API are represented by `useStopwatch` and the public documentation. |
+| #80, #107 | Points along functions and dynamically generated movable points are documented in the public guides. |
+| #110 | Snap-to-grid is covered by movable-point constraints and its documentation. |
| #130 | Logarithmic plotting is covered by `Plot.OfX` with an explicit positive domain. |
-| #167 | Theme overrides, line styles, labels, and axis arrows are demonstrated. |
+| #167 | Theme overrides, line styles, labels, and axis arrows are documented. |
| #122, #180 | Reviewed as open-ended implicit-function and 3D-renderer proposals; no bounded API or safe implementation can be inferred. |
## LaTeX follow-up
@@ -64,5 +62,5 @@ dedicated overlay outside the SVG, and their positions are derived from the SVG
screen transform. This avoids browser-specific `foreignObject` behavior while
keeping labels attached through camera pan/zoom, responsive layout changes, and
browser zoom. The demo uses `String.raw` to keep TeX backslashes unambiguous. The
-browser probe checks initial placement, horizontal and vertical camera movement,
-resize, and 200% zoom.
+The implementation was validated during development across horizontal and
+vertical camera movement, resize, and scaled layouts.
diff --git a/demo-01-foundations.png b/demo-01-foundations.png
deleted file mode 100644
index e0c1866c..00000000
Binary files a/demo-01-foundations.png and /dev/null differ
diff --git a/demo-03-discontinuities.png b/demo-03-discontinuities.png
deleted file mode 100644
index 06845808..00000000
Binary files a/demo-03-discontinuities.png and /dev/null differ
diff --git a/demo-04-vector-field.png b/demo-04-vector-field.png
deleted file mode 100644
index dd3b6968..00000000
Binary files a/demo-04-vector-field.png and /dev/null differ
diff --git a/demo-07-movables.png b/demo-07-movables.png
deleted file mode 100644
index fbed89ef..00000000
Binary files a/demo-07-movables.png and /dev/null differ
diff --git a/demo-13-transform.png b/demo-13-transform.png
deleted file mode 100644
index bbcd75a6..00000000
Binary files a/demo-13-transform.png and /dev/null differ
diff --git a/demo-15-latex.png b/demo-15-latex.png
deleted file mode 100644
index 23f702bf..00000000
Binary files a/demo-15-latex.png and /dev/null differ
diff --git a/demo-full.png b/demo-full.png
deleted file mode 100644
index 5e107944..00000000
Binary files a/demo-full.png and /dev/null differ
diff --git a/e2e/components/MafsDragging.tsx b/e2e/components/MafsDragging.tsx
deleted file mode 100644
index 4afa20c9..00000000
--- a/e2e/components/MafsDragging.tsx
+++ /dev/null
@@ -1,23 +0,0 @@
-import { Mafs, Coordinates, Circle, useMovablePoint, Theme, Debug } from "../../src"
-
-export function MafsDragging() {
- const point1 = useMovablePoint([0, 0], { color: Theme.blue })
- const point2 = useMovablePoint([0, 1], { color: Theme.red })
- const point3 = useMovablePoint([0, 2], { color: Theme.green })
-
- return (
-
-
-
-
-
-
-
-
-
- {point1.element}
- {point2.element}
- {point3.element}
-
- )
-}
diff --git a/e2e/generated-vrt.spec.tsx b/e2e/generated-vrt.spec.tsx
deleted file mode 100644
index 72e66127..00000000
--- a/e2e/generated-vrt.spec.tsx
+++ /dev/null
@@ -1,440 +0,0 @@
-// THIS FILE IS GENERATED BY ./scripts/testgen.ts
-/* eslint-disable @typescript-eslint/no-explicit-any */
-
-import { expect, test } from "@playwright/experimental-ct-react"
-import { Page } from "@playwright/test"
-import { TestContextProvider } from "../src/context/TestContext"
-
-import LinePointAngleExample from "../docs/components/guide-examples/LinePointAngleExample"
-import LinePointSlopeExample from "../docs/components/guide-examples/LinePointSlopeExample"
-import LineSegmentExample from "../docs/components/guide-examples/LineSegmentExample"
-import LineThroughPointsExample from "../docs/components/guide-examples/LineThroughPointsExample"
-import MovableCircle from "../docs/components/guide-examples/MovableCircle"
-import MovableEllipse from "../docs/components/guide-examples/MovableEllipse"
-import PlainMafsExample from "../docs/components/guide-examples/PlainMafsExample"
-import PolygonExample from "../docs/components/guide-examples/PolygonExample"
-import PolylineExample from "../docs/components/guide-examples/PolylineExample"
-import SnapPoint from "../docs/components/guide-examples/SnapPoint"
-import TextExample from "../docs/components/guide-examples/TextExample"
-import VectorFieldExample from "../docs/components/guide-examples/VectorFieldExample"
-import PizzaMarch from "../docs/components/guide-examples/custom/pizza-march"
-import PizzaSlice from "../docs/components/guide-examples/custom/pizza-slice"
-import PointCloud from "../docs/components/guide-examples/custom/point-cloud"
-import DebugExample from "../docs/components/guide-examples/debug/DebugExample"
-import PaneVisualizerExample from "../docs/components/guide-examples/debug/PaneVisualizerExample"
-import DynamicMovablePoints from "../docs/components/guide-examples/display/DynamicMovablePoints"
-import PointsAlongFunction from "../docs/components/guide-examples/display/PointsAlongFunction"
-import SimplePoint from "../docs/components/guide-examples/display/SimplePoint"
-import FancyParabola from "../docs/components/guide-examples/examples/FancyParabola"
-import ProjectileMotion from "../docs/components/guide-examples/examples/ProjectileMotion"
-import Riemann from "../docs/components/guide-examples/examples/Riemann"
-import Draggable from "../docs/components/guide-examples/hello-fx/draggable"
-import Plain from "../docs/components/guide-examples/hello-fx/plain"
-import SinePi from "../docs/components/guide-examples/hello-fx/sine-pi"
-import Sine from "../docs/components/guide-examples/hello-fx/sine"
-import Subdivisions from "../docs/components/guide-examples/hello-fx/subdivisions"
-import Inequalities from "../docs/components/guide-examples/plots/inequalities"
-import OfXAndY from "../docs/components/guide-examples/plots/of-x-and-y"
-import SineStressTest from "../docs/components/guide-examples/plots/sine-stress-test"
-import TwistyBoi from "../docs/components/guide-examples/plots/twisty-boi"
-import SimpleTransform from "../docs/components/guide-examples/utility/SimpleTransform"
-import CartesianCoordinatesConfigExample from "../docs/components/guide-examples/display/coordinates/CartesianCoordinatesConfigExample"
-import CartesianCoordinatesExample from "../docs/components/guide-examples/display/coordinates/CartesianCoordinatesExample"
-import PolarCoordinatesExample from "../docs/components/guide-examples/display/coordinates/PolarCoordinatesExample"
-import ImageAnchorExample from "../docs/components/guide-examples/display/images/ImageAnchorExample"
-import ImageExample from "../docs/components/guide-examples/display/images/ImageExample"
-import VectorExample from "../docs/components/guide-examples/display/vectors/VectorExample"
-import ContainViewbox from "../docs/components/guide-examples/display/viewbox/ContainViewbox"
-import StretchViewbox from "../docs/components/guide-examples/display/viewbox/StretchViewbox"
-import ZoomExample from "../docs/components/guide-examples/display/viewbox/ZoomExample"
-
-async function visualTest(mount: any, page: Page, node: React.ReactElement) {
- const component = await mount(node)
- if ((await component.locator(".MafsView").count()) === 0) {
- await expect(component).toHaveClass("MafsView")
- } else {
- await expect(component.locator(".MafsView")).toHaveClass("MafsView")
- }
- await expect(page).toHaveScreenshot()
-}
-
-test("guide-examples/LinePointAngleExample", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/LinePointSlopeExample", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/LineSegmentExample", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/LineThroughPointsExample", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/MovableCircle", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/MovableEllipse", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/PlainMafsExample", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/PolygonExample", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/PolylineExample", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/SnapPoint", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/TextExample", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/VectorFieldExample", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/custom/PizzaMarch", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/custom/PizzaSlice", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/custom/PointCloud", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/debug/DebugExample", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/debug/PaneVisualizerExample", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/display/DynamicMovablePoints", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/display/PointsAlongFunction", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/display/SimplePoint", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/examples/FancyParabola", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/examples/ProjectileMotion", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/examples/Riemann", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/hello-fx/Draggable", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/hello-fx/Plain", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/hello-fx/SinePi", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/hello-fx/Sine", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/hello-fx/Subdivisions", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/plots/Inequalities", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/plots/OfXAndY", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/plots/SineStressTest", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/plots/TwistyBoi", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/utility/SimpleTransform", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/display/coordinates/CartesianCoordinatesConfigExample", async ({
- mount,
- page,
-}) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/display/coordinates/CartesianCoordinatesExample", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/display/coordinates/PolarCoordinatesExample", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/display/images/ImageAnchorExample", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/display/images/ImageExample", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/display/vectors/VectorExample", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/display/viewbox/ContainViewbox", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/display/viewbox/StretchViewbox", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
-
-test("guide-examples/display/viewbox/ZoomExample", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
-
- ,
- ))
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointAngleExample-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointAngleExample-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index 99ee5d9a..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointAngleExample-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointAngleExample-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointAngleExample-1-Mobile-Safari-darwin.png
deleted file mode 100644
index 508228df..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointAngleExample-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointAngleExample-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointAngleExample-1-chromium-darwin.png
deleted file mode 100644
index 14af25b6..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointAngleExample-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointAngleExample-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointAngleExample-1-firefox-darwin.png
deleted file mode 100644
index 957ea547..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointAngleExample-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointAngleExample-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointAngleExample-1-webkit-darwin.png
deleted file mode 100644
index e2c843fe..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointAngleExample-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointSlopeExample-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointSlopeExample-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index 3e36038e..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointSlopeExample-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointSlopeExample-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointSlopeExample-1-Mobile-Safari-darwin.png
deleted file mode 100644
index 1070d76f..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointSlopeExample-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointSlopeExample-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointSlopeExample-1-chromium-darwin.png
deleted file mode 100644
index 2e0c6473..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointSlopeExample-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointSlopeExample-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointSlopeExample-1-firefox-darwin.png
deleted file mode 100644
index ee8f1c67..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointSlopeExample-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointSlopeExample-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointSlopeExample-1-webkit-darwin.png
deleted file mode 100644
index 3d335864..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LinePointSlopeExample-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineSegmentExample-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineSegmentExample-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index 1727068a..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineSegmentExample-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineSegmentExample-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineSegmentExample-1-Mobile-Safari-darwin.png
deleted file mode 100644
index 91f072dd..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineSegmentExample-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineSegmentExample-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineSegmentExample-1-chromium-darwin.png
deleted file mode 100644
index 8dc1e361..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineSegmentExample-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineSegmentExample-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineSegmentExample-1-firefox-darwin.png
deleted file mode 100644
index cc9b5ef3..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineSegmentExample-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineSegmentExample-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineSegmentExample-1-webkit-darwin.png
deleted file mode 100644
index b456a058..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineSegmentExample-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineThroughPointsExample-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineThroughPointsExample-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index 91c0455f..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineThroughPointsExample-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineThroughPointsExample-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineThroughPointsExample-1-Mobile-Safari-darwin.png
deleted file mode 100644
index 47a2fa01..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineThroughPointsExample-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineThroughPointsExample-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineThroughPointsExample-1-chromium-darwin.png
deleted file mode 100644
index 127097ae..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineThroughPointsExample-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineThroughPointsExample-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineThroughPointsExample-1-firefox-darwin.png
deleted file mode 100644
index d0c72812..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineThroughPointsExample-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineThroughPointsExample-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineThroughPointsExample-1-webkit-darwin.png
deleted file mode 100644
index 93fcb476..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-LineThroughPointsExample-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableCircle-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableCircle-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index d8afa303..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableCircle-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableCircle-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableCircle-1-Mobile-Safari-darwin.png
deleted file mode 100644
index e00347cc..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableCircle-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableCircle-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableCircle-1-chromium-darwin.png
deleted file mode 100644
index 7c6f5bd3..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableCircle-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableCircle-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableCircle-1-firefox-darwin.png
deleted file mode 100644
index 7cec0690..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableCircle-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableCircle-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableCircle-1-webkit-darwin.png
deleted file mode 100644
index d896e92b..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableCircle-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableEllipse-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableEllipse-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index abf3f56b..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableEllipse-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableEllipse-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableEllipse-1-Mobile-Safari-darwin.png
deleted file mode 100644
index 2162190b..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableEllipse-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableEllipse-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableEllipse-1-chromium-darwin.png
deleted file mode 100644
index 7da317b5..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableEllipse-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableEllipse-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableEllipse-1-firefox-darwin.png
deleted file mode 100644
index 27c71b31..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableEllipse-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableEllipse-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableEllipse-1-webkit-darwin.png
deleted file mode 100644
index 646faac9..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-MovableEllipse-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PlainMafsExample-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PlainMafsExample-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index 12f54645..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PlainMafsExample-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PlainMafsExample-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PlainMafsExample-1-Mobile-Safari-darwin.png
deleted file mode 100644
index e1107d4b..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PlainMafsExample-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PlainMafsExample-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PlainMafsExample-1-chromium-darwin.png
deleted file mode 100644
index eac52e73..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PlainMafsExample-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PlainMafsExample-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PlainMafsExample-1-firefox-darwin.png
deleted file mode 100644
index 4da01244..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PlainMafsExample-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PlainMafsExample-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PlainMafsExample-1-webkit-darwin.png
deleted file mode 100644
index b8f46d08..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PlainMafsExample-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolygonExample-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolygonExample-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index 881a5a43..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolygonExample-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolygonExample-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolygonExample-1-Mobile-Safari-darwin.png
deleted file mode 100644
index f33be512..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolygonExample-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolygonExample-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolygonExample-1-chromium-darwin.png
deleted file mode 100644
index 152a11ac..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolygonExample-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolygonExample-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolygonExample-1-firefox-darwin.png
deleted file mode 100644
index 15b4f900..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolygonExample-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolygonExample-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolygonExample-1-webkit-darwin.png
deleted file mode 100644
index f81c97d2..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolygonExample-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolylineExample-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolylineExample-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index 59ed7182..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolylineExample-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolylineExample-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolylineExample-1-Mobile-Safari-darwin.png
deleted file mode 100644
index 6524c343..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolylineExample-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolylineExample-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolylineExample-1-chromium-darwin.png
deleted file mode 100644
index 294fabda..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolylineExample-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolylineExample-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolylineExample-1-firefox-darwin.png
deleted file mode 100644
index 3aef8170..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolylineExample-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolylineExample-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolylineExample-1-webkit-darwin.png
deleted file mode 100644
index fba28b02..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-PolylineExample-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-SnapPoint-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-SnapPoint-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index c727c03e..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-SnapPoint-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-SnapPoint-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-SnapPoint-1-Mobile-Safari-darwin.png
deleted file mode 100644
index 3df20538..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-SnapPoint-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-SnapPoint-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-SnapPoint-1-chromium-darwin.png
deleted file mode 100644
index f526c236..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-SnapPoint-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-SnapPoint-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-SnapPoint-1-firefox-darwin.png
deleted file mode 100644
index 19388efd..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-SnapPoint-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-SnapPoint-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-SnapPoint-1-webkit-darwin.png
deleted file mode 100644
index ccb014d3..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-SnapPoint-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-TextExample-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-TextExample-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index d05319ae..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-TextExample-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-TextExample-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-TextExample-1-Mobile-Safari-darwin.png
deleted file mode 100644
index 1d5b4afa..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-TextExample-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-TextExample-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-TextExample-1-chromium-darwin.png
deleted file mode 100644
index efab1997..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-TextExample-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-TextExample-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-TextExample-1-firefox-darwin.png
deleted file mode 100644
index 4970e82c..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-TextExample-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-TextExample-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-TextExample-1-webkit-darwin.png
deleted file mode 100644
index 263150e5..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-TextExample-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-VectorFieldExample-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-VectorFieldExample-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index 5c731aaf..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-VectorFieldExample-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-VectorFieldExample-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-VectorFieldExample-1-Mobile-Safari-darwin.png
deleted file mode 100644
index 93935304..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-VectorFieldExample-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-VectorFieldExample-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-VectorFieldExample-1-chromium-darwin.png
deleted file mode 100644
index 5cdd9f00..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-VectorFieldExample-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-VectorFieldExample-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-VectorFieldExample-1-firefox-darwin.png
deleted file mode 100644
index 65a1f6f1..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-VectorFieldExample-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-VectorFieldExample-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-VectorFieldExample-1-webkit-darwin.png
deleted file mode 100644
index 90ab98e3..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-VectorFieldExample-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaMarch-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaMarch-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index 966e8e9d..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaMarch-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaMarch-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaMarch-1-Mobile-Safari-darwin.png
deleted file mode 100644
index c5d7b35d..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaMarch-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaMarch-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaMarch-1-chromium-darwin.png
deleted file mode 100644
index 9f553945..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaMarch-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaMarch-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaMarch-1-firefox-darwin.png
deleted file mode 100644
index 03dee88f..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaMarch-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaMarch-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaMarch-1-webkit-darwin.png
deleted file mode 100644
index ec245c9b..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaMarch-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaSlice-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaSlice-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index a32f4305..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaSlice-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaSlice-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaSlice-1-Mobile-Safari-darwin.png
deleted file mode 100644
index fef7adc1..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaSlice-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaSlice-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaSlice-1-chromium-darwin.png
deleted file mode 100644
index 84f49b4a..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaSlice-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaSlice-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaSlice-1-firefox-darwin.png
deleted file mode 100644
index 9f1c3f3a..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaSlice-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaSlice-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaSlice-1-webkit-darwin.png
deleted file mode 100644
index c1f61f19..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PizzaSlice-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PointCloud-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PointCloud-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index c051029c..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PointCloud-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PointCloud-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PointCloud-1-Mobile-Safari-darwin.png
deleted file mode 100644
index 08967898..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PointCloud-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PointCloud-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PointCloud-1-chromium-darwin.png
deleted file mode 100644
index b6d7d9ed..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PointCloud-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PointCloud-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PointCloud-1-firefox-darwin.png
deleted file mode 100644
index 8bc21826..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PointCloud-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PointCloud-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PointCloud-1-webkit-darwin.png
deleted file mode 100644
index b156a505..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-custom-PointCloud-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index 34cbbd04..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-Mobile-Safari-darwin.png
deleted file mode 100644
index 67274f7d..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-chromium-darwin.png
deleted file mode 100644
index e35bcf78..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-firefox-darwin.png
deleted file mode 100644
index 92dcf7a3..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-webkit-darwin.png
deleted file mode 100644
index 1ca842fa..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-PaneVisualizerExample-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-PaneVisualizerExample-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index 7ba783d6..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-PaneVisualizerExample-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-PaneVisualizerExample-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-PaneVisualizerExample-1-Mobile-Safari-darwin.png
deleted file mode 100644
index ff393391..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-PaneVisualizerExample-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-PaneVisualizerExample-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-PaneVisualizerExample-1-chromium-darwin.png
deleted file mode 100644
index 2432985a..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-PaneVisualizerExample-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-PaneVisualizerExample-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-PaneVisualizerExample-1-firefox-darwin.png
deleted file mode 100644
index 95928e27..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-PaneVisualizerExample-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-PaneVisualizerExample-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-PaneVisualizerExample-1-webkit-darwin.png
deleted file mode 100644
index d14dca75..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-PaneVisualizerExample-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-DynamicMovablePoints-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-DynamicMovablePoints-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index 0752544e..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-DynamicMovablePoints-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-DynamicMovablePoints-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-DynamicMovablePoints-1-Mobile-Safari-darwin.png
deleted file mode 100644
index c132de6f..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-DynamicMovablePoints-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-DynamicMovablePoints-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-DynamicMovablePoints-1-chromium-darwin.png
deleted file mode 100644
index 863aab54..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-DynamicMovablePoints-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-DynamicMovablePoints-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-DynamicMovablePoints-1-firefox-darwin.png
deleted file mode 100644
index 52294233..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-DynamicMovablePoints-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-DynamicMovablePoints-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-DynamicMovablePoints-1-webkit-darwin.png
deleted file mode 100644
index 2aabb2a1..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-DynamicMovablePoints-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-Latex-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-Latex-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index f5b53d9a..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-Latex-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-Latex-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-Latex-1-chromium-darwin.png
deleted file mode 100644
index f5b53d9a..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-Latex-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-Latex-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-Latex-1-webkit-darwin.png
deleted file mode 100644
index e675c8bb..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-Latex-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-LatexDoc-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-LatexDoc-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index f5b53d9a..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-LatexDoc-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-LatexDoc-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-LatexDoc-1-Mobile-Safari-darwin.png
deleted file mode 100644
index e675c8bb..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-LatexDoc-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-LatexDoc-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-LatexDoc-1-chromium-darwin.png
deleted file mode 100644
index f5b53d9a..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-LatexDoc-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-LatexDoc-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-LatexDoc-1-webkit-darwin.png
deleted file mode 100644
index e675c8bb..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-LatexDoc-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-PointsAlongFunction-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-PointsAlongFunction-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index 1bc1a514..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-PointsAlongFunction-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-PointsAlongFunction-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-PointsAlongFunction-1-Mobile-Safari-darwin.png
deleted file mode 100644
index c8b4ea42..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-PointsAlongFunction-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-PointsAlongFunction-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-PointsAlongFunction-1-chromium-darwin.png
deleted file mode 100644
index a26ff546..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-PointsAlongFunction-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-PointsAlongFunction-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-PointsAlongFunction-1-firefox-darwin.png
deleted file mode 100644
index c1b0273e..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-PointsAlongFunction-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-PointsAlongFunction-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-PointsAlongFunction-1-webkit-darwin.png
deleted file mode 100644
index 2f0a5ecf..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-PointsAlongFunction-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-SimplePoint-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-SimplePoint-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index 0972e422..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-SimplePoint-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-SimplePoint-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-SimplePoint-1-Mobile-Safari-darwin.png
deleted file mode 100644
index 67b5fff5..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-SimplePoint-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-SimplePoint-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-SimplePoint-1-chromium-darwin.png
deleted file mode 100644
index ec2c4a9d..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-SimplePoint-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-SimplePoint-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-SimplePoint-1-firefox-darwin.png
deleted file mode 100644
index 16776fa3..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-SimplePoint-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-SimplePoint-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-SimplePoint-1-webkit-darwin.png
deleted file mode 100644
index d2043393..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-SimplePoint-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesConfigExample-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesConfigExample-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index 5ec7bdb3..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesConfigExample-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesConfigExample-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesConfigExample-1-Mobile-Safari-darwin.png
deleted file mode 100644
index 3017aa7b..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesConfigExample-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesConfigExample-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesConfigExample-1-chromium-darwin.png
deleted file mode 100644
index 217e0e04..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesConfigExample-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesConfigExample-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesConfigExample-1-firefox-darwin.png
deleted file mode 100644
index 79c59a10..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesConfigExample-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesConfigExample-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesConfigExample-1-webkit-darwin.png
deleted file mode 100644
index d2605965..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesConfigExample-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesExample-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesExample-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index c938eb96..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesExample-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesExample-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesExample-1-Mobile-Safari-darwin.png
deleted file mode 100644
index 9e31058c..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesExample-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesExample-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesExample-1-chromium-darwin.png
deleted file mode 100644
index 169003e9..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesExample-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesExample-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesExample-1-firefox-darwin.png
deleted file mode 100644
index cd78d373..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesExample-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesExample-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesExample-1-webkit-darwin.png
deleted file mode 100644
index 8e5016fe..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-CartesianCoordinatesExample-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-PolarCoordinatesExample-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-PolarCoordinatesExample-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index 97bf45fc..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-PolarCoordinatesExample-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-PolarCoordinatesExample-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-PolarCoordinatesExample-1-Mobile-Safari-darwin.png
deleted file mode 100644
index e5798cad..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-PolarCoordinatesExample-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-PolarCoordinatesExample-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-PolarCoordinatesExample-1-chromium-darwin.png
deleted file mode 100644
index 30cbb2b6..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-PolarCoordinatesExample-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-PolarCoordinatesExample-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-PolarCoordinatesExample-1-firefox-darwin.png
deleted file mode 100644
index 6c9431df..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-PolarCoordinatesExample-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-PolarCoordinatesExample-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-PolarCoordinatesExample-1-webkit-darwin.png
deleted file mode 100644
index a190f3ed..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-coordinates-PolarCoordinatesExample-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageAnchorExample-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageAnchorExample-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index 9b3f7436..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageAnchorExample-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageAnchorExample-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageAnchorExample-1-Mobile-Safari-darwin.png
deleted file mode 100644
index f3dd7ce6..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageAnchorExample-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageAnchorExample-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageAnchorExample-1-chromium-darwin.png
deleted file mode 100644
index 56ef8989..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageAnchorExample-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageAnchorExample-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageAnchorExample-1-firefox-darwin.png
deleted file mode 100644
index edc4352f..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageAnchorExample-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageAnchorExample-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageAnchorExample-1-webkit-darwin.png
deleted file mode 100644
index 2d14d4da..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageAnchorExample-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageExample-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageExample-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index 9e44e8ce..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageExample-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageExample-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageExample-1-Mobile-Safari-darwin.png
deleted file mode 100644
index 13e82768..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageExample-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageExample-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageExample-1-chromium-darwin.png
deleted file mode 100644
index 7fa38d6a..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageExample-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageExample-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageExample-1-firefox-darwin.png
deleted file mode 100644
index 37683718..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageExample-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageExample-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageExample-1-webkit-darwin.png
deleted file mode 100644
index c012b265..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-images-ImageExample-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-vectors-VectorExample-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-vectors-VectorExample-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index f4970ccb..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-vectors-VectorExample-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-vectors-VectorExample-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-vectors-VectorExample-1-Mobile-Safari-darwin.png
deleted file mode 100644
index 4bbf00c5..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-vectors-VectorExample-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-vectors-VectorExample-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-vectors-VectorExample-1-chromium-darwin.png
deleted file mode 100644
index 4827a770..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-vectors-VectorExample-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-vectors-VectorExample-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-vectors-VectorExample-1-firefox-darwin.png
deleted file mode 100644
index 3178ed42..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-vectors-VectorExample-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-vectors-VectorExample-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-vectors-VectorExample-1-webkit-darwin.png
deleted file mode 100644
index 70ee6bc9..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-vectors-VectorExample-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ContainViewbox-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ContainViewbox-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index 2b9e1ef6..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ContainViewbox-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ContainViewbox-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ContainViewbox-1-Mobile-Safari-darwin.png
deleted file mode 100644
index 0bd3edb0..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ContainViewbox-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ContainViewbox-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ContainViewbox-1-chromium-darwin.png
deleted file mode 100644
index 3a34c531..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ContainViewbox-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ContainViewbox-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ContainViewbox-1-firefox-darwin.png
deleted file mode 100644
index 4b64664a..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ContainViewbox-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ContainViewbox-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ContainViewbox-1-webkit-darwin.png
deleted file mode 100644
index 3ada55d5..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ContainViewbox-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-StretchViewbox-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-StretchViewbox-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index e0768b29..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-StretchViewbox-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-StretchViewbox-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-StretchViewbox-1-Mobile-Safari-darwin.png
deleted file mode 100644
index 0a3f9ad1..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-StretchViewbox-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-StretchViewbox-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-StretchViewbox-1-chromium-darwin.png
deleted file mode 100644
index 3a34c531..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-StretchViewbox-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-StretchViewbox-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-StretchViewbox-1-firefox-darwin.png
deleted file mode 100644
index 4b64664a..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-StretchViewbox-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-StretchViewbox-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-StretchViewbox-1-webkit-darwin.png
deleted file mode 100644
index 3ada55d5..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-StretchViewbox-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ZoomExample-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ZoomExample-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index d2dc73b1..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ZoomExample-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ZoomExample-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ZoomExample-1-Mobile-Safari-darwin.png
deleted file mode 100644
index 71b8c348..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ZoomExample-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ZoomExample-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ZoomExample-1-chromium-darwin.png
deleted file mode 100644
index 9fc29b31..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ZoomExample-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ZoomExample-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ZoomExample-1-firefox-darwin.png
deleted file mode 100644
index 3ea853eb..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ZoomExample-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ZoomExample-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ZoomExample-1-webkit-darwin.png
deleted file mode 100644
index 34bfd28c..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-display-viewbox-ZoomExample-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-FancyParabola-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-FancyParabola-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index 66db6688..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-FancyParabola-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-FancyParabola-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-FancyParabola-1-Mobile-Safari-darwin.png
deleted file mode 100644
index 74677cea..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-FancyParabola-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-FancyParabola-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-FancyParabola-1-chromium-darwin.png
deleted file mode 100644
index 838672dd..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-FancyParabola-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-FancyParabola-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-FancyParabola-1-firefox-darwin.png
deleted file mode 100644
index d853c95e..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-FancyParabola-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-FancyParabola-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-FancyParabola-1-webkit-darwin.png
deleted file mode 100644
index 7b397171..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-FancyParabola-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-ProjectileMotion-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-ProjectileMotion-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index 187b1633..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-ProjectileMotion-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-ProjectileMotion-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-ProjectileMotion-1-Mobile-Safari-darwin.png
deleted file mode 100644
index ce6ffa60..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-ProjectileMotion-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-ProjectileMotion-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-ProjectileMotion-1-chromium-darwin.png
deleted file mode 100644
index d3fdca0a..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-ProjectileMotion-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-ProjectileMotion-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-ProjectileMotion-1-firefox-darwin.png
deleted file mode 100644
index 1f6df353..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-ProjectileMotion-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-ProjectileMotion-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-ProjectileMotion-1-webkit-darwin.png
deleted file mode 100644
index ce3ac595..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-ProjectileMotion-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-Riemann-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-Riemann-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index 151455f5..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-Riemann-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-Riemann-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-Riemann-1-Mobile-Safari-darwin.png
deleted file mode 100644
index 397d54bc..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-Riemann-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-Riemann-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-Riemann-1-chromium-darwin.png
deleted file mode 100644
index 3ab0cfdd..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-Riemann-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-Riemann-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-Riemann-1-firefox-darwin.png
deleted file mode 100644
index 6e34da38..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-Riemann-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-Riemann-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-Riemann-1-webkit-darwin.png
deleted file mode 100644
index 4a3d1ffc..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-examples-Riemann-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Draggable-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Draggable-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index 30480119..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Draggable-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Draggable-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Draggable-1-Mobile-Safari-darwin.png
deleted file mode 100644
index c8f94acd..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Draggable-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Draggable-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Draggable-1-chromium-darwin.png
deleted file mode 100644
index 625b25cc..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Draggable-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Draggable-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Draggable-1-firefox-darwin.png
deleted file mode 100644
index 3a0edcd1..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Draggable-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Draggable-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Draggable-1-webkit-darwin.png
deleted file mode 100644
index 25ce03b1..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Draggable-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Plain-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Plain-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index c938eb96..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Plain-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Plain-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Plain-1-Mobile-Safari-darwin.png
deleted file mode 100644
index 9e31058c..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Plain-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Plain-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Plain-1-chromium-darwin.png
deleted file mode 100644
index 169003e9..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Plain-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Plain-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Plain-1-firefox-darwin.png
deleted file mode 100644
index cd78d373..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Plain-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Plain-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Plain-1-webkit-darwin.png
deleted file mode 100644
index 8e5016fe..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Plain-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Sine-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Sine-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index 8972fdfc..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Sine-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Sine-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Sine-1-Mobile-Safari-darwin.png
deleted file mode 100644
index 3cbe6269..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Sine-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Sine-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Sine-1-chromium-darwin.png
deleted file mode 100644
index b17d3db9..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Sine-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Sine-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Sine-1-firefox-darwin.png
deleted file mode 100644
index 32379c50..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Sine-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Sine-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Sine-1-webkit-darwin.png
deleted file mode 100644
index 9f436fbf..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Sine-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-SinePi-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-SinePi-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index 49c7a141..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-SinePi-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-SinePi-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-SinePi-1-Mobile-Safari-darwin.png
deleted file mode 100644
index 7e8f9bc3..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-SinePi-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-SinePi-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-SinePi-1-chromium-darwin.png
deleted file mode 100644
index 97e49ef0..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-SinePi-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-SinePi-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-SinePi-1-firefox-darwin.png
deleted file mode 100644
index 59ebae72..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-SinePi-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-SinePi-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-SinePi-1-webkit-darwin.png
deleted file mode 100644
index e2ce6788..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-SinePi-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Subdivisions-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Subdivisions-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index d416ad11..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Subdivisions-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Subdivisions-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Subdivisions-1-Mobile-Safari-darwin.png
deleted file mode 100644
index 58561f50..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Subdivisions-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Subdivisions-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Subdivisions-1-chromium-darwin.png
deleted file mode 100644
index 16d01504..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Subdivisions-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Subdivisions-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Subdivisions-1-firefox-darwin.png
deleted file mode 100644
index a6b412ac..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Subdivisions-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Subdivisions-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Subdivisions-1-webkit-darwin.png
deleted file mode 100644
index 0654857b..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-hello-fx-Subdivisions-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-Inequalities-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-Inequalities-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index 10de1890..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-Inequalities-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-Inequalities-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-Inequalities-1-Mobile-Safari-darwin.png
deleted file mode 100644
index af339595..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-Inequalities-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-Inequalities-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-Inequalities-1-chromium-darwin.png
deleted file mode 100644
index dab15bed..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-Inequalities-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-Inequalities-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-Inequalities-1-firefox-darwin.png
deleted file mode 100644
index e349d3d1..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-Inequalities-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-Inequalities-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-Inequalities-1-webkit-darwin.png
deleted file mode 100644
index f4289165..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-Inequalities-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-OfXAndY-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-OfXAndY-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index 2ca3126e..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-OfXAndY-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-OfXAndY-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-OfXAndY-1-Mobile-Safari-darwin.png
deleted file mode 100644
index e4b7ad27..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-OfXAndY-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-OfXAndY-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-OfXAndY-1-chromium-darwin.png
deleted file mode 100644
index f586769d..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-OfXAndY-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-OfXAndY-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-OfXAndY-1-firefox-darwin.png
deleted file mode 100644
index 12536171..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-OfXAndY-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-OfXAndY-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-OfXAndY-1-webkit-darwin.png
deleted file mode 100644
index a930270e..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-OfXAndY-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-SineStressTest-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-SineStressTest-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index 16969511..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-SineStressTest-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-SineStressTest-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-SineStressTest-1-Mobile-Safari-darwin.png
deleted file mode 100644
index 051ab69c..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-SineStressTest-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-SineStressTest-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-SineStressTest-1-chromium-darwin.png
deleted file mode 100644
index 43e29282..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-SineStressTest-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-SineStressTest-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-SineStressTest-1-firefox-darwin.png
deleted file mode 100644
index c0305881..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-SineStressTest-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-SineStressTest-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-SineStressTest-1-webkit-darwin.png
deleted file mode 100644
index b2b21cb5..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-SineStressTest-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-TwistyBoi-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-TwistyBoi-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index c4f81fbf..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-TwistyBoi-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-TwistyBoi-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-TwistyBoi-1-Mobile-Safari-darwin.png
deleted file mode 100644
index 711bcc8a..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-TwistyBoi-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-TwistyBoi-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-TwistyBoi-1-chromium-darwin.png
deleted file mode 100644
index 38f242f3..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-TwistyBoi-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-TwistyBoi-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-TwistyBoi-1-firefox-darwin.png
deleted file mode 100644
index 810f6b9a..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-TwistyBoi-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-TwistyBoi-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-TwistyBoi-1-webkit-darwin.png
deleted file mode 100644
index 3564968c..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-plots-TwistyBoi-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-utility-SimpleTransform-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-utility-SimpleTransform-1-Mobile-Chrome-darwin.png
deleted file mode 100644
index b1e16840..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-utility-SimpleTransform-1-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-utility-SimpleTransform-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-utility-SimpleTransform-1-Mobile-Safari-darwin.png
deleted file mode 100644
index 69b4e38a..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-utility-SimpleTransform-1-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-utility-SimpleTransform-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-utility-SimpleTransform-1-chromium-darwin.png
deleted file mode 100644
index ac1dc298..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-utility-SimpleTransform-1-chromium-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-utility-SimpleTransform-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-utility-SimpleTransform-1-firefox-darwin.png
deleted file mode 100644
index b23d00aa..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-utility-SimpleTransform-1-firefox-darwin.png and /dev/null differ
diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-utility-SimpleTransform-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-utility-SimpleTransform-1-webkit-darwin.png
deleted file mode 100644
index 74a912e6..00000000
Binary files a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-utility-SimpleTransform-1-webkit-darwin.png and /dev/null differ
diff --git a/e2e/mafs-panning.spec.tsx b/e2e/mafs-panning.spec.tsx
deleted file mode 100644
index f91ab215..00000000
--- a/e2e/mafs-panning.spec.tsx
+++ /dev/null
@@ -1,15 +0,0 @@
-import { expect, test } from "@playwright/experimental-ct-react"
-import { MafsDragging } from "./components/MafsDragging"
-
-test("Panning the view", async ({ mount, page }) => {
- const component = await mount( )
- await page.waitForSelector(".MafsView")
-
- await component.focus()
- await page.keyboard.press("Alt+ArrowRight")
- await expect(page).toHaveScreenshot("after-option-arrow.png")
- await page.keyboard.press("ArrowRight")
- await expect(page).toHaveScreenshot("after-arrow.png")
- await page.keyboard.press("Shift+ArrowRight")
- await expect(page).toHaveScreenshot("after-shift-arrow.png")
-})
diff --git a/e2e/mafs-panning.spec.tsx-snapshots/after-arrow-Mobile-Chrome-darwin.png b/e2e/mafs-panning.spec.tsx-snapshots/after-arrow-Mobile-Chrome-darwin.png
deleted file mode 100644
index e482a69b..00000000
Binary files a/e2e/mafs-panning.spec.tsx-snapshots/after-arrow-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/mafs-panning.spec.tsx-snapshots/after-arrow-Mobile-Safari-darwin.png b/e2e/mafs-panning.spec.tsx-snapshots/after-arrow-Mobile-Safari-darwin.png
deleted file mode 100644
index e5ccb95e..00000000
Binary files a/e2e/mafs-panning.spec.tsx-snapshots/after-arrow-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/mafs-panning.spec.tsx-snapshots/after-arrow-chromium-darwin.png b/e2e/mafs-panning.spec.tsx-snapshots/after-arrow-chromium-darwin.png
deleted file mode 100644
index 0d963362..00000000
Binary files a/e2e/mafs-panning.spec.tsx-snapshots/after-arrow-chromium-darwin.png and /dev/null differ
diff --git a/e2e/mafs-panning.spec.tsx-snapshots/after-arrow-firefox-darwin.png b/e2e/mafs-panning.spec.tsx-snapshots/after-arrow-firefox-darwin.png
deleted file mode 100644
index 041f13f7..00000000
Binary files a/e2e/mafs-panning.spec.tsx-snapshots/after-arrow-firefox-darwin.png and /dev/null differ
diff --git a/e2e/mafs-panning.spec.tsx-snapshots/after-arrow-webkit-darwin.png b/e2e/mafs-panning.spec.tsx-snapshots/after-arrow-webkit-darwin.png
deleted file mode 100644
index ce349882..00000000
Binary files a/e2e/mafs-panning.spec.tsx-snapshots/after-arrow-webkit-darwin.png and /dev/null differ
diff --git a/e2e/mafs-panning.spec.tsx-snapshots/after-option-arrow-Mobile-Chrome-darwin.png b/e2e/mafs-panning.spec.tsx-snapshots/after-option-arrow-Mobile-Chrome-darwin.png
deleted file mode 100644
index 33eaf4a1..00000000
Binary files a/e2e/mafs-panning.spec.tsx-snapshots/after-option-arrow-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/mafs-panning.spec.tsx-snapshots/after-option-arrow-Mobile-Safari-darwin.png b/e2e/mafs-panning.spec.tsx-snapshots/after-option-arrow-Mobile-Safari-darwin.png
deleted file mode 100644
index 935ca3d1..00000000
Binary files a/e2e/mafs-panning.spec.tsx-snapshots/after-option-arrow-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/mafs-panning.spec.tsx-snapshots/after-option-arrow-chromium-darwin.png b/e2e/mafs-panning.spec.tsx-snapshots/after-option-arrow-chromium-darwin.png
deleted file mode 100644
index ec1bc9e2..00000000
Binary files a/e2e/mafs-panning.spec.tsx-snapshots/after-option-arrow-chromium-darwin.png and /dev/null differ
diff --git a/e2e/mafs-panning.spec.tsx-snapshots/after-option-arrow-firefox-darwin.png b/e2e/mafs-panning.spec.tsx-snapshots/after-option-arrow-firefox-darwin.png
deleted file mode 100644
index 9ccb9174..00000000
Binary files a/e2e/mafs-panning.spec.tsx-snapshots/after-option-arrow-firefox-darwin.png and /dev/null differ
diff --git a/e2e/mafs-panning.spec.tsx-snapshots/after-option-arrow-webkit-darwin.png b/e2e/mafs-panning.spec.tsx-snapshots/after-option-arrow-webkit-darwin.png
deleted file mode 100644
index d4a337c1..00000000
Binary files a/e2e/mafs-panning.spec.tsx-snapshots/after-option-arrow-webkit-darwin.png and /dev/null differ
diff --git a/e2e/mafs-panning.spec.tsx-snapshots/after-shift-arrow-Mobile-Chrome-darwin.png b/e2e/mafs-panning.spec.tsx-snapshots/after-shift-arrow-Mobile-Chrome-darwin.png
deleted file mode 100644
index b633fabe..00000000
Binary files a/e2e/mafs-panning.spec.tsx-snapshots/after-shift-arrow-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/mafs-panning.spec.tsx-snapshots/after-shift-arrow-Mobile-Safari-darwin.png b/e2e/mafs-panning.spec.tsx-snapshots/after-shift-arrow-Mobile-Safari-darwin.png
deleted file mode 100644
index 96f7d95e..00000000
Binary files a/e2e/mafs-panning.spec.tsx-snapshots/after-shift-arrow-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/mafs-panning.spec.tsx-snapshots/after-shift-arrow-chromium-darwin.png b/e2e/mafs-panning.spec.tsx-snapshots/after-shift-arrow-chromium-darwin.png
deleted file mode 100644
index c95a0213..00000000
Binary files a/e2e/mafs-panning.spec.tsx-snapshots/after-shift-arrow-chromium-darwin.png and /dev/null differ
diff --git a/e2e/mafs-panning.spec.tsx-snapshots/after-shift-arrow-firefox-darwin.png b/e2e/mafs-panning.spec.tsx-snapshots/after-shift-arrow-firefox-darwin.png
deleted file mode 100644
index a69bd67a..00000000
Binary files a/e2e/mafs-panning.spec.tsx-snapshots/after-shift-arrow-firefox-darwin.png and /dev/null differ
diff --git a/e2e/mafs-panning.spec.tsx-snapshots/after-shift-arrow-webkit-darwin.png b/e2e/mafs-panning.spec.tsx-snapshots/after-shift-arrow-webkit-darwin.png
deleted file mode 100644
index cec21eb9..00000000
Binary files a/e2e/mafs-panning.spec.tsx-snapshots/after-shift-arrow-webkit-darwin.png and /dev/null differ
diff --git a/e2e/movable-point.spec.tsx b/e2e/movable-point.spec.tsx
deleted file mode 100644
index 507bdd76..00000000
--- a/e2e/movable-point.spec.tsx
+++ /dev/null
@@ -1,23 +0,0 @@
-import { expect, test } from "@playwright/experimental-ct-react"
-import { MafsDragging } from "./components/MafsDragging"
-
-test("Moving MovablePoints", async ({ mount, page }) => {
- const component = await mount( )
- await page.waitForSelector(".mafs-movable-point")
-
- const points = await component.locator(".mafs-movable-point").all()
- expect(points.length).toBe(3)
- const [point1, point2, point3] = points
-
- await expect(page).toHaveScreenshot("before-moving.png")
-
- await point1.focus()
- await page.keyboard.press("ArrowRight")
- await point2.focus()
- await page.keyboard.press("Alt+ArrowRight")
- await point3.focus()
- await page.keyboard.press("Shift+ArrowRight")
-
- await point3.blur()
- await expect(page).toHaveScreenshot("after-moving.png")
-})
diff --git a/e2e/movable-point.spec.tsx-snapshots/after-moving-Mobile-Chrome-darwin.png b/e2e/movable-point.spec.tsx-snapshots/after-moving-Mobile-Chrome-darwin.png
deleted file mode 100644
index e29daaa1..00000000
Binary files a/e2e/movable-point.spec.tsx-snapshots/after-moving-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/movable-point.spec.tsx-snapshots/after-moving-Mobile-Safari-darwin.png b/e2e/movable-point.spec.tsx-snapshots/after-moving-Mobile-Safari-darwin.png
deleted file mode 100644
index 323978c6..00000000
Binary files a/e2e/movable-point.spec.tsx-snapshots/after-moving-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/movable-point.spec.tsx-snapshots/after-moving-chromium-darwin.png b/e2e/movable-point.spec.tsx-snapshots/after-moving-chromium-darwin.png
deleted file mode 100644
index 3b445bd7..00000000
Binary files a/e2e/movable-point.spec.tsx-snapshots/after-moving-chromium-darwin.png and /dev/null differ
diff --git a/e2e/movable-point.spec.tsx-snapshots/after-moving-firefox-darwin.png b/e2e/movable-point.spec.tsx-snapshots/after-moving-firefox-darwin.png
deleted file mode 100644
index 1f3a48ee..00000000
Binary files a/e2e/movable-point.spec.tsx-snapshots/after-moving-firefox-darwin.png and /dev/null differ
diff --git a/e2e/movable-point.spec.tsx-snapshots/after-moving-webkit-darwin.png b/e2e/movable-point.spec.tsx-snapshots/after-moving-webkit-darwin.png
deleted file mode 100644
index 0e554d9d..00000000
Binary files a/e2e/movable-point.spec.tsx-snapshots/after-moving-webkit-darwin.png and /dev/null differ
diff --git a/e2e/movable-point.spec.tsx-snapshots/before-moving-Mobile-Chrome-darwin.png b/e2e/movable-point.spec.tsx-snapshots/before-moving-Mobile-Chrome-darwin.png
deleted file mode 100644
index 157f7461..00000000
Binary files a/e2e/movable-point.spec.tsx-snapshots/before-moving-Mobile-Chrome-darwin.png and /dev/null differ
diff --git a/e2e/movable-point.spec.tsx-snapshots/before-moving-Mobile-Safari-darwin.png b/e2e/movable-point.spec.tsx-snapshots/before-moving-Mobile-Safari-darwin.png
deleted file mode 100644
index b43f6503..00000000
Binary files a/e2e/movable-point.spec.tsx-snapshots/before-moving-Mobile-Safari-darwin.png and /dev/null differ
diff --git a/e2e/movable-point.spec.tsx-snapshots/before-moving-chromium-darwin.png b/e2e/movable-point.spec.tsx-snapshots/before-moving-chromium-darwin.png
deleted file mode 100644
index 74f5a2b4..00000000
Binary files a/e2e/movable-point.spec.tsx-snapshots/before-moving-chromium-darwin.png and /dev/null differ
diff --git a/e2e/movable-point.spec.tsx-snapshots/before-moving-firefox-darwin.png b/e2e/movable-point.spec.tsx-snapshots/before-moving-firefox-darwin.png
deleted file mode 100644
index 8d650a34..00000000
Binary files a/e2e/movable-point.spec.tsx-snapshots/before-moving-firefox-darwin.png and /dev/null differ
diff --git a/e2e/movable-point.spec.tsx-snapshots/before-moving-webkit-darwin.png b/e2e/movable-point.spec.tsx-snapshots/before-moving-webkit-darwin.png
deleted file mode 100644
index 5cb77a66..00000000
Binary files a/e2e/movable-point.spec.tsx-snapshots/before-moving-webkit-darwin.png and /dev/null differ
diff --git a/eslint.config.mjs b/eslint.config.mjs
index ca82cedc..e84da51a 100644
--- a/eslint.config.mjs
+++ b/eslint.config.mjs
@@ -6,19 +6,7 @@ import prettier from "eslint-config-prettier"
export default tseslint.config(
{
- ignores: [
- "node_modules/",
- "build/",
- "docs/.next/",
- "sample-site/dist/",
- "sample-site/node_modules/",
- "playwright-report/",
- "test-results/",
- "playwright/.cache/",
- ".api-report/temp/",
- "tests/frameworks/",
- "**/*.config.js",
- ],
+ ignores: ["node_modules/", "build/", "docs/.next/", ".api-report/temp/", "**/*.config.js"],
},
js.configs.recommended,
...tseslint.configs.recommended,
@@ -40,7 +28,7 @@ export default tseslint.config(
},
},
{
- files: ["scripts/**/*", "tests/**/*", "e2e/**/*"],
+ files: ["scripts/**/*"],
rules: {
"no-console": "off",
},
@@ -51,17 +39,4 @@ export default tseslint.config(
"no-console": "off",
},
},
- {
- files: ["sample-site/**/*.{mjs,js,ts,tsx}"],
- languageOptions: {
- globals: {
- console: "readonly",
- document: "readonly",
- setTimeout: "readonly",
- },
- },
- rules: {
- "no-console": "off",
- },
- },
)
diff --git a/package.json b/package.json
index e575e174..7dbbdf7e 100644
--- a/package.json
+++ b/package.json
@@ -39,9 +39,6 @@
],
"scripts": {
"start": "tsx scripts/dev.ts",
- "test": "pnpm -s test:unit && pnpm -s test:e2e",
- "test:unit": "vitest",
- "test:e2e": "tsx scripts/testgen.ts && playwright test",
"build": "tsx scripts/build.ts",
"build:docs": "pnpm -s docgen && cd docs && pnpm -s build",
"docgen": "tsx scripts/docgen-cli.ts",
@@ -52,14 +49,11 @@
"format": "prettier --write .",
"format:check": "prettier --check .",
"prepack": "tsx scripts/prepack.ts",
- "prepublishOnly": "pnpm test && pnpm lint && pnpm typecheck:ts6 && pnpm typecheck && pnpm build",
- "publish-branch": "tsx scripts/publish-branch.ts"
+ "prepublishOnly": "pnpm lint && pnpm typecheck:ts6 && pnpm typecheck && pnpm build"
},
"devDependencies": {
"@eslint/js": "^9.28.0",
"@microsoft/api-extractor": "^7.52.7",
- "@playwright/experimental-ct-react": "~1.61.0",
- "@playwright/test": "~1.61.0",
"@swc/core": "^1.11.24",
"@types/fs-extra": "^11.0.4",
"@types/katex": "^0.16.7",
@@ -74,7 +68,6 @@
"eslint-plugin-react-hooks": "^5.2.0",
"fast-glob": "^3.3.3",
"fs-extra": "^11.3.0",
- "happy-dom": "^17.6.3",
"prettier": "^3.5.3",
"react": "^18.3.1",
"react-docgen-typescript": "2.2.2",
@@ -83,8 +76,7 @@
"tsx": "^4.20.1",
"typescript": "npm:@typescript/typescript6@^6.0.2",
"typescript-eslint": "^8.33.0",
- "vite": "^6.3.5",
- "vitest": "^3.1.4"
+ "vite": "^6.3.5"
},
"peerDependencies": {
"react": ">=18",
diff --git a/playwright.config.ts b/playwright.config.ts
deleted file mode 100644
index 26277bc3..00000000
--- a/playwright.config.ts
+++ /dev/null
@@ -1,54 +0,0 @@
-import { defineConfig } from "@playwright/experimental-ct-react"
-import { devices, ViewportSize } from "@playwright/test"
-
-const viewport: ViewportSize = { width: 500, height: 500 }
-
-export default defineConfig({
- timeout: 30 * 1000,
- expect: {
- timeout: 5000,
- toHaveScreenshot: {
- maxDiffPixelRatio: 0.02,
- },
- },
- fullyParallel: true,
- forbidOnly: !!process.env.CI,
- retries: process.env.CI ? 2 : 0,
- workers: undefined,
- reporter: "html",
- use: {
- actionTimeout: 0,
- trace: "on-first-retry",
-
- ctViteConfig: {
- resolve: {
- alias: {
- mafs: "src/index.tsx",
- },
- },
- },
- },
- projects: [
- { name: "chromium", use: { ...devices["Desktop Chrome"], viewport }, testDir: "./e2e" },
- { name: "firefox", use: { ...devices["Desktop Firefox"], viewport }, testDir: "./e2e" },
- { name: "webkit", use: { ...devices["Desktop Safari"], viewport }, testDir: "./e2e" },
- { name: "Mobile Chrome", use: { ...devices["Pixel 5"], viewport }, testDir: "./e2e" },
- { name: "Mobile Safari", use: { ...devices["iPhone 12"], viewport }, testDir: "./e2e" },
-
- {
- name: "frameworks-setup",
- use: { ...devices["Desktop Chrome"], viewport },
- testDir: "./tests",
- testMatch: "tests/frameworks/setup.ts",
- },
- {
- name: "frameworks",
- use: { ...devices["Desktop Chrome"], viewport },
- testDir: "./tests",
- testMatch: "tests/frameworks/*.spec.tsx",
- dependencies: ["frameworks-setup"],
- // Since these tests operate on the actual file system, parallelism messes them up.
- fullyParallel: false,
- },
- ],
-})
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ec9118be..7460f1a9 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -27,12 +27,6 @@ importers:
'@microsoft/api-extractor':
specifier: ^7.52.7
version: 7.58.12(@types/node@22.20.1)
- '@playwright/experimental-ct-react':
- specifier: ~1.61.0
- version: 1.61.1(@types/node@22.20.1)(jiti@1.21.6)(terser@5.36.0)(tsx@4.23.12)(vite@6.4.3(@types/node@22.20.1)(jiti@1.21.6)(terser@5.36.0)(tsx@4.23.12)(yaml@2.6.0))(yaml@2.6.0)
- '@playwright/test':
- specifier: ~1.61.0
- version: 1.61.1
'@swc/core':
specifier: ^1.11.24
version: 1.15.47
@@ -75,9 +69,6 @@ importers:
fs-extra:
specifier: ^11.3.0
version: 11.4.0
- happy-dom:
- specifier: ^17.6.3
- version: 17.6.3
prettier:
specifier: ^3.5.3
version: 3.9.6
@@ -105,9 +96,6 @@ importers:
vite:
specifier: ^6.3.5
version: 6.4.3(@types/node@22.20.1)(jiti@1.21.6)(terser@5.36.0)(tsx@4.23.12)(yaml@2.6.0)
- vitest:
- specifier: ^3.1.4
- version: 3.2.7(@types/debug@4.1.12)(@types/node@22.20.1)(happy-dom@17.6.3)(jiti@1.21.6)(terser@5.36.0)(tsx@4.23.12)(yaml@2.6.0)
docs:
dependencies:
@@ -128,7 +116,7 @@ importers:
version: 18.3.7(@types/react@18.3.31)
'@vercel/analytics':
specifier: ^1.3.1
- version: 1.3.1(next@14.2.15(@playwright/test@1.61.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)
+ version: 1.3.1(next@14.2.15(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)
endent:
specifier: ^2.1.0
version: 2.1.0
@@ -146,7 +134,7 @@ importers:
version: link:../src
next:
specifier: ^14.2.15
- version: 14.2.15(@playwright/test@1.61.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ version: 14.2.15(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
react:
specifier: 18.2.0
version: 18.2.0
@@ -191,120 +179,12 @@ importers:
specifier: ^5.95.0
version: 5.95.0(@swc/core@1.15.47)(esbuild@0.25.12)
- sample-site:
- dependencies:
- react:
- specifier: ^18.3.1
- version: 18.3.1
- react-dom:
- specifier: ^18.3.1
- version: 18.3.1(react@18.3.1)
- devDependencies:
- '@types/react':
- specifier: ^18.3.20
- version: 18.3.31
- '@types/react-dom':
- specifier: ^18.3.7
- version: 18.3.7(@types/react@18.3.31)
- '@vitejs/plugin-react':
- specifier: ^4.4.1
- version: 4.7.0(vite@6.4.3(@types/node@22.20.1)(jiti@1.21.6)(terser@5.36.0)(tsx@4.23.12)(yaml@2.6.0))
- typescript:
- specifier: ^5.8.3
- version: 5.9.3
- vite:
- specifier: ^6.3.5
- version: 6.4.3(@types/node@22.20.1)(jiti@1.21.6)(terser@5.36.0)(tsx@4.23.12)(yaml@2.6.0)
-
packages:
'@alloc/quick-lru@5.2.0':
resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
engines: {node: '>=10'}
- '@babel/code-frame@7.29.7':
- resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/compat-data@7.29.7':
- resolution: {integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==}
- engines: {node: '>=6.9.0'}
-
- '@babel/core@7.29.7':
- resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==}
- engines: {node: '>=6.9.0'}
-
- '@babel/generator@7.29.8':
- resolution: {integrity: sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-compilation-targets@7.29.7':
- resolution: {integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-globals@7.29.7':
- resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-module-imports@7.29.7':
- resolution: {integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-module-transforms@7.29.7':
- resolution: {integrity: sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0
-
- '@babel/helper-plugin-utils@7.29.7':
- resolution: {integrity: sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-string-parser@7.29.7':
- resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-validator-identifier@7.29.7':
- resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-validator-option@7.29.7':
- resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helpers@7.29.7':
- resolution: {integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==}
- engines: {node: '>=6.9.0'}
-
- '@babel/parser@7.29.8':
- resolution: {integrity: sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==}
- engines: {node: '>=6.0.0'}
- hasBin: true
-
- '@babel/plugin-transform-react-jsx-self@7.29.7':
- resolution: {integrity: sha512-TL0hMc9xzy86VD31nUiwzd5otRAcyEPcsegCxolO0PvcXuH1v0kECe/UIznYFihpkvU5wg/jk4v0TTEFfm53fw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-transform-react-jsx-source@7.29.7':
- resolution: {integrity: sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/template@7.29.7':
- resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==}
- engines: {node: '>=6.9.0'}
-
- '@babel/traverse@7.29.8':
- resolution: {integrity: sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==}
- engines: {node: '>=6.9.0'}
-
- '@babel/types@7.29.8':
- resolution: {integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==}
- engines: {node: '>=6.9.0'}
-
'@esbuild/aix-ppc64@0.25.12':
resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==}
engines: {node: '>=18'}
@@ -679,16 +559,10 @@ packages:
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
engines: {node: '>=12'}
- '@jridgewell/gen-mapping@0.3.13':
- resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
-
'@jridgewell/gen-mapping@0.3.5':
resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
engines: {node: '>=6.0.0'}
- '@jridgewell/remapping@2.3.5':
- resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==}
-
'@jridgewell/resolve-uri@3.1.0':
resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
engines: {node: '>=6.0.0'}
@@ -703,15 +577,9 @@ packages:
'@jridgewell/sourcemap-codec@1.4.15':
resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
- '@jridgewell/sourcemap-codec@1.5.0':
- resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
-
'@jridgewell/trace-mapping@0.3.25':
resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
- '@jridgewell/trace-mapping@0.3.31':
- resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
-
'@juggle/resize-observer@3.4.0':
resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==}
@@ -807,28 +675,11 @@ packages:
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
- '@playwright/experimental-ct-core@1.61.1':
- resolution: {integrity: sha512-O3KeEn5wYHCT57TBGbKYk5A0xHlAvXGiukPEu+Hy5FeEqvxt4LFKY+5M//VnqqCIFGsh2iGtgQbtfpdvHgt0zg==}
- engines: {node: '>=18'}
-
- '@playwright/experimental-ct-react@1.61.1':
- resolution: {integrity: sha512-NVIXJ2QxanU8n1KX/bANLXWSI0FcK4B8kBvGBDD9uEMnTF9pYf4S628nIgPaUBYEEDLYQxFxCVzN2eYN/Oz7Yw==}
- engines: {node: '>=18'}
- hasBin: true
-
- '@playwright/test@1.61.1':
- resolution: {integrity: sha512-8nKv6+0RJSL9FE4jYOEGXnPeM/Hg12qZpmqzZjRh3qM0Y7c3z1mrOTfFLids72RDQYVh9WpLEfR5WdpNX4fkig==}
- engines: {node: '>=18'}
- hasBin: true
-
'@radix-ui/react-icons@1.3.0':
resolution: {integrity: sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==}
peerDependencies:
react: ^16.x || ^17.x || ^18.x
- '@rolldown/pluginutils@1.0.0-beta.27':
- resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==}
-
'@rollup/rollup-android-arm-eabi@4.62.4':
resolution: {integrity: sha512-RrPokAb7dmbxFoeO3TloqHyOjgye8RkBhSqmp4aJMIex4c9r46ZstPnleDQOq1t46VOVjwIuwNogIqbodV1Vvg==}
cpu: [arm]
@@ -1080,27 +931,9 @@ packages:
'@types/argparse@1.0.38':
resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==}
- '@types/babel__core@7.20.5':
- resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
-
- '@types/babel__generator@7.27.0':
- resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==}
-
- '@types/babel__template@7.4.4':
- resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
-
- '@types/babel__traverse@7.28.0':
- resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==}
-
- '@types/chai@5.2.3':
- resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==}
-
'@types/debug@4.1.12':
resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
- '@types/deep-eql@4.0.2':
- resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==}
-
'@types/estree-jsx@1.0.5':
resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==}
@@ -1368,41 +1201,6 @@ packages:
react:
optional: true
- '@vitejs/plugin-react@4.7.0':
- resolution: {integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==}
- engines: {node: ^14.18.0 || >=16.0.0}
- peerDependencies:
- vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0
-
- '@vitest/expect@3.2.7':
- resolution: {integrity: sha512-E8eBXaKibuvH2pSZErOjdVb5vF4PbKYcrnluBTYxEk1l/VhhwZg1kZQsdtjq+CsF5CFydf2Rdkz7jDHKSisi3w==}
-
- '@vitest/mocker@3.2.7':
- resolution: {integrity: sha512-Trr0hYO9CM3Wj6ksWHRhK9IZpIY6wTMO5u/MqXurMxT57sWBaOPEtP3Oq60ihZuh5JsiagKfz95OcxdEP6dBrA==}
- peerDependencies:
- msw: ^2.4.9
- vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0
- peerDependenciesMeta:
- msw:
- optional: true
- vite:
- optional: true
-
- '@vitest/pretty-format@3.2.7':
- resolution: {integrity: sha512-KUHlwqVu0sRlhCdyPdQ/wBoTfRahjUky1MubOmYw9fWfIZy1gNoHpuaaQBPAaMaVYdQYHJLurzj8ECCj5OwTqA==}
-
- '@vitest/runner@3.2.7':
- resolution: {integrity: sha512-sB9y4ovltoQP+WaUPwmSxO9WIg9Ig694Di5PalVPsYHklAdE027mehpWF2SQSVq+k6sFgaivbTjTJwZLSHbedA==}
-
- '@vitest/snapshot@3.2.7':
- resolution: {integrity: sha512-7C+MwShwtBSI5Buwoyg3s/iY1eHL9PKAf+O1wVh/TdnjXUtkoL/9YQtre90i4MtNXM6edP1wJ2zOBpfCyhIS7g==}
-
- '@vitest/spy@3.2.7':
- resolution: {integrity: sha512-Q2eQGI6d2L/hBtZ0qNuKcAGid68XK6cv1xsoaIma6PaJhHPoqcEJhYpXZ/5myCMqkNgtP6UKuBhbc0nHKnrkuQ==}
-
- '@vitest/utils@3.2.7':
- resolution: {integrity: sha512-x6BDOd7dyo3PFLY3I9/HJ25X/6OurhGXk2/B9gOZNPF7XDVjeBK4k01lQE5uvDpbuheErh91qYuE1E2OEjK3Rw==}
-
'@webassemblyjs/ast@1.12.1':
resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==}
@@ -1573,10 +1371,6 @@ packages:
resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==}
engines: {node: '>= 0.4'}
- assertion-error@2.0.1:
- resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
- engines: {node: '>=12'}
-
autoprefixer@10.4.20:
resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==}
engines: {node: ^10 || ^12 || >=14}
@@ -1631,10 +1425,6 @@ packages:
resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
engines: {node: '>=10.16.0'}
- cac@6.7.14:
- resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
- engines: {node: '>=8'}
-
call-bind-apply-helpers@1.0.2:
resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
engines: {node: '>= 0.4'}
@@ -1665,10 +1455,6 @@ packages:
ccount@2.0.1:
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
- chai@5.2.0:
- resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==}
- engines: {node: '>=12'}
-
chalk@4.1.2:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
@@ -1685,10 +1471,6 @@ packages:
character-reference-invalid@2.0.1:
resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==}
- check-error@2.1.1:
- resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==}
- engines: {node: '>= 16'}
-
chokidar@3.6.0:
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
engines: {node: '>= 8.10.0'}
@@ -1724,9 +1506,6 @@ packages:
concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
- convert-source-map@2.0.0:
- resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
-
cross-spawn@7.0.3:
resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
engines: {node: '>= 8'}
@@ -1800,10 +1579,6 @@ packages:
dedent@0.7.0:
resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==}
- deep-eql@5.0.2:
- resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==}
- engines: {node: '>=6'}
-
deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
@@ -1898,9 +1673,6 @@ packages:
es-module-lexer@1.5.4:
resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==}
- es-module-lexer@1.7.0:
- resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==}
-
es-object-atoms@1.0.0:
resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==}
engines: {node: '>= 0.4'}
@@ -2017,9 +1789,6 @@ packages:
estree-util-is-identifier-name@3.0.0:
resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==}
- estree-walker@3.0.3:
- resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
-
esutils@2.0.3:
resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
engines: {node: '>=0.10.0'}
@@ -2028,10 +1797,6 @@ packages:
resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
engines: {node: '>=0.8.x'}
- expect-type@1.4.0:
- resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==}
- engines: {node: '>=12.0.0'}
-
extend@3.0.2:
resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
@@ -2111,11 +1876,6 @@ packages:
resolution: {integrity: sha512-EQsFzMUJkCKGr1ePqlYADkIUmHW1s3ZXr5Yqy6wbGrfUCphpl2maM/kyOIRA2HpP3AaFQTZXD4ldjek+nccddA==}
engines: {node: '>=14.14'}
- fsevents@2.3.2:
- resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
- engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
- os: [darwin]
-
fsevents@2.3.3:
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
@@ -2135,10 +1895,6 @@ packages:
functions-have-names@1.2.3:
resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
- gensync@1.0.0-beta.2:
- resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
- engines: {node: '>=6.9.0'}
-
get-intrinsic@1.2.4:
resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
engines: {node: '>= 0.4'}
@@ -2193,10 +1949,6 @@ packages:
graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
- happy-dom@17.6.3:
- resolution: {integrity: sha512-UVIHeVhxmxedbWPCfgS55Jg2rDfwf2BCKeylcPSqazLz5w3Kri7Q4xdBJubsr/+VUzFLh0VjIvh13RaDA2/Xug==}
- engines: {node: '>=20.0.0'}
-
has-bigints@1.0.2:
resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
@@ -2498,18 +2250,10 @@ packages:
js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
- js-tokens@9.0.1:
- resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==}
-
js-yaml@4.3.1:
resolution: {integrity: sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==}
hasBin: true
- jsesc@3.1.0:
- resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
- engines: {node: '>=6'}
- hasBin: true
-
json-buffer@3.0.1:
resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
@@ -2588,21 +2332,9 @@ packages:
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
hasBin: true
- loupe@3.1.3:
- resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==}
-
- loupe@3.2.1:
- resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==}
-
lru-cache@10.4.3:
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
- lru-cache@5.1.1:
- resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
-
- magic-string@0.30.17:
- resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
-
math-intrinsics@1.1.0:
resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
engines: {node: '>= 0.4'}
@@ -2947,13 +2679,6 @@ packages:
resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
engines: {node: '>=16 || 14 >=14.18'}
- pathe@2.0.3:
- resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
-
- pathval@2.0.0:
- resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
- engines: {node: '>= 14.16'}
-
picocolors@1.1.1:
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
@@ -2973,16 +2698,6 @@ packages:
resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
engines: {node: '>= 6'}
- playwright-core@1.61.1:
- resolution: {integrity: sha512-h7Qlt6m4REp25qvIdvbDtVmD4LqVXfpRxhORv9L0jzETM05p4fuPJ3dKyuSXQxDSbXnmS79HAgi9589lGSpLkg==}
- engines: {node: '>=18'}
- hasBin: true
-
- playwright@1.61.1:
- resolution: {integrity: sha512-DWnY5o3YbLWK4GovuAVwpqL+1VwGNdUGrRr++8j8PtQQzvAVZUIMjKQ90fY689sEJZJBbZVw1rXaOKSTitkzPQ==}
- engines: {node: '>=18'}
- hasBin: true
-
possible-typed-array-names@1.0.0:
resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
engines: {node: '>= 0.4'}
@@ -3098,10 +2813,6 @@ packages:
'@types/react': '>=16'
react: '>=16'
- react-refresh@0.17.0:
- resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==}
- engines: {node: '>=0.10.0'}
-
react@18.2.0:
resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
engines: {node: '>=0.10.0'}
@@ -3266,9 +2977,6 @@ packages:
resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==}
engines: {node: '>= 0.4'}
- siginfo@2.0.0:
- resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
-
signal-exit@4.1.0:
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
engines: {node: '>=14'}
@@ -3290,12 +2998,6 @@ packages:
sprintf-js@1.0.3:
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
- stackback@0.0.2:
- resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
-
- std-env@3.10.0:
- resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==}
-
stop-iteration-iterator@1.1.0:
resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==}
engines: {node: '>= 0.4'}
@@ -3357,9 +3059,6 @@ packages:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
- strip-literal@3.1.0:
- resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==}
-
style-to-object@0.4.4:
resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==}
@@ -3436,28 +3135,10 @@ packages:
tiny-invariant@1.3.3:
resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
- tinybench@2.9.0:
- resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
-
- tinyexec@0.3.2:
- resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==}
-
tinyglobby@0.2.17:
resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==}
engines: {node: '>=12.0.0'}
- tinypool@1.1.1:
- resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==}
- engines: {node: ^18.0.0 || >=20.0.0}
-
- tinyrainbow@2.0.0:
- resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==}
- engines: {node: '>=14.0.0'}
-
- tinyspy@4.0.4:
- resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==}
- engines: {node: '>=14.0.0'}
-
to-regex-range@5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
@@ -3633,11 +3314,6 @@ packages:
vfile@5.3.7:
resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==}
- vite-node@3.2.4:
- resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==}
- engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
- hasBin: true
-
vite@6.4.3:
resolution: {integrity: sha512-NTKlcQjlAK7MlQoyb6LgaqHc8sso/pVyUJYWMws3jg21uTJw/LddqIFPcPqP6PzpgbIcZyKI85sFE4HBrQDA8A==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
@@ -3678,34 +3354,6 @@ packages:
yaml:
optional: true
- vitest@3.2.7:
- resolution: {integrity: sha512-KrxIJ62Fd89gfysR4WotlgZABiz2dqFPgqGzX7s+CwsqLFomRH7777ZcrOD6+WVAh7khPQP41A+BKbpcJFrdEg==}
- engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
- hasBin: true
- peerDependencies:
- '@edge-runtime/vm': '*'
- '@types/debug': ^4.1.12
- '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
- '@vitest/browser': 3.2.7
- '@vitest/ui': 3.2.7
- happy-dom: '*'
- jsdom: '*'
- peerDependenciesMeta:
- '@edge-runtime/vm':
- optional: true
- '@types/debug':
- optional: true
- '@types/node':
- optional: true
- '@vitest/browser':
- optional: true
- '@vitest/ui':
- optional: true
- happy-dom:
- optional: true
- jsdom:
- optional: true
-
vscode-oniguruma@2.0.1:
resolution: {integrity: sha512-poJU8iHIWnC3vgphJnrLZyI3YdqRlR27xzqDmpPXYzA93R4Gk8z7T6oqDzDoHjoikA2aS82crdXFkjELCdJsjQ==}
@@ -3719,10 +3367,6 @@ packages:
web-namespaces@2.0.1:
resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
- webidl-conversions@7.0.0:
- resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
- engines: {node: '>=12'}
-
webpack-sources@3.2.3:
resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
engines: {node: '>=10.13.0'}
@@ -3737,10 +3381,6 @@ packages:
webpack-cli:
optional: true
- whatwg-mimetype@3.0.0:
- resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}
- engines: {node: '>=12'}
-
which-boxed-primitive@1.0.2:
resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
@@ -3769,11 +3409,6 @@ packages:
engines: {node: '>= 8'}
hasBin: true
- why-is-node-running@2.3.0:
- resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==}
- engines: {node: '>=8'}
- hasBin: true
-
word-wrap@1.2.5:
resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
engines: {node: '>=0.10.0'}
@@ -3786,9 +3421,6 @@ packages:
resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
engines: {node: '>=12'}
- yallist@3.1.1:
- resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
-
yaml@2.6.0:
resolution: {integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==}
engines: {node: '>= 14'}
@@ -3805,118 +3437,6 @@ snapshots:
'@alloc/quick-lru@5.2.0': {}
- '@babel/code-frame@7.29.7':
- dependencies:
- '@babel/helper-validator-identifier': 7.29.7
- js-tokens: 4.0.0
- picocolors: 1.1.1
-
- '@babel/compat-data@7.29.7': {}
-
- '@babel/core@7.29.7':
- dependencies:
- '@babel/code-frame': 7.29.7
- '@babel/generator': 7.29.8
- '@babel/helper-compilation-targets': 7.29.7
- '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7)
- '@babel/helpers': 7.29.7
- '@babel/parser': 7.29.8
- '@babel/template': 7.29.7
- '@babel/traverse': 7.29.8
- '@babel/types': 7.29.8
- '@jridgewell/remapping': 2.3.5
- convert-source-map: 2.0.0
- debug: 4.4.3
- gensync: 1.0.0-beta.2
- json5: 2.2.3
- semver: 6.3.1
- transitivePeerDependencies:
- - supports-color
-
- '@babel/generator@7.29.8':
- dependencies:
- '@babel/parser': 7.29.8
- '@babel/types': 7.29.8
- '@jridgewell/gen-mapping': 0.3.13
- '@jridgewell/trace-mapping': 0.3.31
- jsesc: 3.1.0
-
- '@babel/helper-compilation-targets@7.29.7':
- 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
-
- '@babel/helper-globals@7.29.7': {}
-
- '@babel/helper-module-imports@7.29.7':
- dependencies:
- '@babel/traverse': 7.29.8
- '@babel/types': 7.29.8
- transitivePeerDependencies:
- - supports-color
-
- '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)':
- dependencies:
- '@babel/core': 7.29.7
- '@babel/helper-module-imports': 7.29.7
- '@babel/helper-validator-identifier': 7.29.7
- '@babel/traverse': 7.29.8
- transitivePeerDependencies:
- - supports-color
-
- '@babel/helper-plugin-utils@7.29.7': {}
-
- '@babel/helper-string-parser@7.29.7': {}
-
- '@babel/helper-validator-identifier@7.29.7': {}
-
- '@babel/helper-validator-option@7.29.7': {}
-
- '@babel/helpers@7.29.7':
- dependencies:
- '@babel/template': 7.29.7
- '@babel/types': 7.29.8
-
- '@babel/parser@7.29.8':
- dependencies:
- '@babel/types': 7.29.8
-
- '@babel/plugin-transform-react-jsx-self@7.29.7(@babel/core@7.29.7)':
- dependencies:
- '@babel/core': 7.29.7
- '@babel/helper-plugin-utils': 7.29.7
-
- '@babel/plugin-transform-react-jsx-source@7.29.7(@babel/core@7.29.7)':
- dependencies:
- '@babel/core': 7.29.7
- '@babel/helper-plugin-utils': 7.29.7
-
- '@babel/template@7.29.7':
- dependencies:
- '@babel/code-frame': 7.29.7
- '@babel/parser': 7.29.8
- '@babel/types': 7.29.8
-
- '@babel/traverse@7.29.8':
- dependencies:
- '@babel/code-frame': 7.29.7
- '@babel/generator': 7.29.8
- '@babel/helper-globals': 7.29.7
- '@babel/parser': 7.29.8
- '@babel/template': 7.29.7
- '@babel/types': 7.29.8
- debug: 4.4.3
- transitivePeerDependencies:
- - supports-color
-
- '@babel/types@7.29.8':
- dependencies:
- '@babel/helper-string-parser': 7.29.7
- '@babel/helper-validator-identifier': 7.29.7
-
'@esbuild/aix-ppc64@0.25.12':
optional: true
@@ -4144,22 +3664,12 @@ snapshots:
wrap-ansi: 8.1.0
wrap-ansi-cjs: wrap-ansi@7.0.0
- '@jridgewell/gen-mapping@0.3.13':
- dependencies:
- '@jridgewell/sourcemap-codec': 1.5.0
- '@jridgewell/trace-mapping': 0.3.31
-
'@jridgewell/gen-mapping@0.3.5':
dependencies:
'@jridgewell/set-array': 1.2.1
'@jridgewell/sourcemap-codec': 1.4.15
'@jridgewell/trace-mapping': 0.3.25
- '@jridgewell/remapping@2.3.5':
- dependencies:
- '@jridgewell/gen-mapping': 0.3.13
- '@jridgewell/trace-mapping': 0.3.31
-
'@jridgewell/resolve-uri@3.1.0': {}
'@jridgewell/set-array@1.2.1': {}
@@ -4171,18 +3681,11 @@ snapshots:
'@jridgewell/sourcemap-codec@1.4.15': {}
- '@jridgewell/sourcemap-codec@1.5.0': {}
-
'@jridgewell/trace-mapping@0.3.25':
dependencies:
'@jridgewell/resolve-uri': 3.1.0
'@jridgewell/sourcemap-codec': 1.4.15
- '@jridgewell/trace-mapping@0.3.31':
- dependencies:
- '@jridgewell/resolve-uri': 3.1.0
- '@jridgewell/sourcemap-codec': 1.5.0
-
'@juggle/resize-observer@3.4.0': {}
'@microsoft/api-extractor-model@7.33.10(@types/node@22.20.1)':
@@ -4267,53 +3770,10 @@ snapshots:
'@pkgjs/parseargs@0.11.0':
optional: true
- '@playwright/experimental-ct-core@1.61.1(@types/node@22.20.1)(jiti@1.21.6)(terser@5.36.0)(tsx@4.23.12)(yaml@2.6.0)':
- dependencies:
- playwright: 1.61.1
- playwright-core: 1.61.1
- vite: 6.4.3(@types/node@22.20.1)(jiti@1.21.6)(terser@5.36.0)(tsx@4.23.12)(yaml@2.6.0)
- transitivePeerDependencies:
- - '@types/node'
- - jiti
- - less
- - lightningcss
- - sass
- - sass-embedded
- - stylus
- - sugarss
- - terser
- - tsx
- - yaml
-
- '@playwright/experimental-ct-react@1.61.1(@types/node@22.20.1)(jiti@1.21.6)(terser@5.36.0)(tsx@4.23.12)(vite@6.4.3(@types/node@22.20.1)(jiti@1.21.6)(terser@5.36.0)(tsx@4.23.12)(yaml@2.6.0))(yaml@2.6.0)':
- dependencies:
- '@playwright/experimental-ct-core': 1.61.1(@types/node@22.20.1)(jiti@1.21.6)(terser@5.36.0)(tsx@4.23.12)(yaml@2.6.0)
- '@vitejs/plugin-react': 4.7.0(vite@6.4.3(@types/node@22.20.1)(jiti@1.21.6)(terser@5.36.0)(tsx@4.23.12)(yaml@2.6.0))
- transitivePeerDependencies:
- - '@types/node'
- - jiti
- - less
- - lightningcss
- - sass
- - sass-embedded
- - stylus
- - sugarss
- - supports-color
- - terser
- - tsx
- - vite
- - yaml
-
- '@playwright/test@1.61.1':
- dependencies:
- playwright: 1.61.1
-
'@radix-ui/react-icons@1.3.0(react@18.2.0)':
dependencies:
react: 18.2.0
- '@rolldown/pluginutils@1.0.0-beta.27': {}
-
'@rollup/rollup-android-arm-eabi@4.62.4':
optional: true
@@ -4497,38 +3957,10 @@ snapshots:
'@types/argparse@1.0.38': {}
- '@types/babel__core@7.20.5':
- dependencies:
- '@babel/parser': 7.29.8
- '@babel/types': 7.29.8
- '@types/babel__generator': 7.27.0
- '@types/babel__template': 7.4.4
- '@types/babel__traverse': 7.28.0
-
- '@types/babel__generator@7.27.0':
- dependencies:
- '@babel/types': 7.29.8
-
- '@types/babel__template@7.4.4':
- dependencies:
- '@babel/parser': 7.29.8
- '@babel/types': 7.29.8
-
- '@types/babel__traverse@7.28.0':
- dependencies:
- '@babel/types': 7.29.8
-
- '@types/chai@5.2.3':
- dependencies:
- '@types/deep-eql': 4.0.2
- assertion-error: 2.0.1
-
'@types/debug@4.1.12':
dependencies:
'@types/ms': 0.7.34
- '@types/deep-eql@4.0.2': {}
-
'@types/estree-jsx@1.0.5':
dependencies:
'@types/estree': 1.0.6
@@ -4757,67 +4189,13 @@ snapshots:
'@use-gesture/core': 10.3.1
react: 18.3.1
- '@vercel/analytics@1.3.1(next@14.2.15(@playwright/test@1.61.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)':
+ '@vercel/analytics@1.3.1(next@14.2.15(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)':
dependencies:
server-only: 0.0.1
optionalDependencies:
- next: 14.2.15(@playwright/test@1.61.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ next: 14.2.15(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
react: 18.2.0
- '@vitejs/plugin-react@4.7.0(vite@6.4.3(@types/node@22.20.1)(jiti@1.21.6)(terser@5.36.0)(tsx@4.23.12)(yaml@2.6.0))':
- dependencies:
- '@babel/core': 7.29.7
- '@babel/plugin-transform-react-jsx-self': 7.29.7(@babel/core@7.29.7)
- '@babel/plugin-transform-react-jsx-source': 7.29.7(@babel/core@7.29.7)
- '@rolldown/pluginutils': 1.0.0-beta.27
- '@types/babel__core': 7.20.5
- react-refresh: 0.17.0
- vite: 6.4.3(@types/node@22.20.1)(jiti@1.21.6)(terser@5.36.0)(tsx@4.23.12)(yaml@2.6.0)
- transitivePeerDependencies:
- - supports-color
-
- '@vitest/expect@3.2.7':
- dependencies:
- '@types/chai': 5.2.3
- '@vitest/spy': 3.2.7
- '@vitest/utils': 3.2.7
- chai: 5.2.0
- tinyrainbow: 2.0.0
-
- '@vitest/mocker@3.2.7(vite@6.4.3(@types/node@22.20.1)(jiti@1.21.6)(terser@5.36.0)(tsx@4.23.12)(yaml@2.6.0))':
- dependencies:
- '@vitest/spy': 3.2.7
- estree-walker: 3.0.3
- magic-string: 0.30.17
- optionalDependencies:
- vite: 6.4.3(@types/node@22.20.1)(jiti@1.21.6)(terser@5.36.0)(tsx@4.23.12)(yaml@2.6.0)
-
- '@vitest/pretty-format@3.2.7':
- dependencies:
- tinyrainbow: 2.0.0
-
- '@vitest/runner@3.2.7':
- dependencies:
- '@vitest/utils': 3.2.7
- pathe: 2.0.3
- strip-literal: 3.1.0
-
- '@vitest/snapshot@3.2.7':
- dependencies:
- '@vitest/pretty-format': 3.2.7
- magic-string: 0.30.17
- pathe: 2.0.3
-
- '@vitest/spy@3.2.7':
- dependencies:
- tinyspy: 4.0.4
-
- '@vitest/utils@3.2.7':
- dependencies:
- '@vitest/pretty-format': 3.2.7
- loupe: 3.2.1
- tinyrainbow: 2.0.0
-
'@webassemblyjs/ast@1.12.1':
dependencies:
'@webassemblyjs/helper-numbers': 1.11.6
@@ -5053,8 +4431,6 @@ snapshots:
get-intrinsic: 1.3.0
is-array-buffer: 3.0.5
- assertion-error@2.0.1: {}
-
autoprefixer@10.4.20(postcss@8.4.47):
dependencies:
browserslist: 4.24.0
@@ -5109,8 +4485,6 @@ snapshots:
dependencies:
streamsearch: 1.1.0
- cac@6.7.14: {}
-
call-bind-apply-helpers@1.0.2:
dependencies:
es-errors: 1.3.0
@@ -5144,14 +4518,6 @@ snapshots:
ccount@2.0.1: {}
- chai@5.2.0:
- dependencies:
- assertion-error: 2.0.1
- check-error: 2.1.1
- deep-eql: 5.0.2
- loupe: 3.1.3
- pathval: 2.0.0
-
chalk@4.1.2:
dependencies:
ansi-styles: 4.3.0
@@ -5165,8 +4531,6 @@ snapshots:
character-reference-invalid@2.0.1: {}
- check-error@2.1.1: {}
-
chokidar@3.6.0:
dependencies:
anymatch: 3.1.3
@@ -5199,8 +4563,6 @@ snapshots:
concat-map@0.0.1: {}
- convert-source-map@2.0.0: {}
-
cross-spawn@7.0.3:
dependencies:
path-key: 3.1.1
@@ -5271,8 +4633,6 @@ snapshots:
dedent@0.7.0: {}
- deep-eql@5.0.2: {}
-
deep-is@0.1.4: {}
define-data-property@1.1.4:
@@ -5474,8 +4834,6 @@ snapshots:
es-module-lexer@1.5.4: {}
- es-module-lexer@1.7.0: {}
-
es-object-atoms@1.0.0:
dependencies:
es-errors: 1.3.0
@@ -5685,16 +5043,10 @@ snapshots:
estree-util-is-identifier-name@3.0.0: {}
- estree-walker@3.0.3:
- dependencies:
- '@types/estree': 1.0.6
-
esutils@2.0.3: {}
events@3.3.0: {}
- expect-type@1.4.0: {}
-
extend@3.0.2: {}
fast-deep-equal@3.1.3: {}
@@ -5778,9 +5130,6 @@ snapshots:
jsonfile: 6.1.0
universalify: 2.0.1
- fsevents@2.3.2:
- optional: true
-
fsevents@2.3.3:
optional: true
@@ -5807,8 +5156,6 @@ snapshots:
functions-have-names@1.2.3: {}
- gensync@1.0.0-beta.2: {}
-
get-intrinsic@1.2.4:
dependencies:
es-errors: 1.3.0
@@ -5881,11 +5228,6 @@ snapshots:
graceful-fs@4.2.11: {}
- happy-dom@17.6.3:
- dependencies:
- webidl-conversions: 7.0.0
- whatwg-mimetype: 3.0.0
-
has-bigints@1.0.2: {}
has-flag@4.0.0: {}
@@ -6203,14 +5545,10 @@ snapshots:
js-tokens@4.0.0: {}
- js-tokens@9.0.1: {}
-
js-yaml@4.3.1:
dependencies:
argparse: 2.0.1
- jsesc@3.1.0: {}
-
json-buffer@3.0.1: {}
json-parse-even-better-errors@2.3.1: {}
@@ -6279,20 +5617,8 @@ snapshots:
dependencies:
js-tokens: 4.0.0
- loupe@3.1.3: {}
-
- loupe@3.2.1: {}
-
lru-cache@10.4.3: {}
- lru-cache@5.1.1:
- dependencies:
- yallist: 3.1.1
-
- magic-string@0.30.17:
- dependencies:
- '@jridgewell/sourcemap-codec': 1.5.0
-
math-intrinsics@1.1.0: {}
mdast-util-definitions@5.1.2:
@@ -6730,7 +6056,7 @@ snapshots:
neo-async@2.6.2: {}
- next@14.2.15(@playwright/test@1.61.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
+ next@14.2.15(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
dependencies:
'@next/env': 14.2.15
'@swc/helpers': 0.5.5
@@ -6751,7 +6077,6 @@ snapshots:
'@next/swc-win32-arm64-msvc': 14.2.15
'@next/swc-win32-ia32-msvc': 14.2.15
'@next/swc-win32-x64-msvc': 14.2.15
- '@playwright/test': 1.61.1
transitivePeerDependencies:
- '@babel/core'
- babel-plugin-macros
@@ -6863,10 +6188,6 @@ snapshots:
lru-cache: 10.4.3
minipass: 7.1.2
- pathe@2.0.3: {}
-
- pathval@2.0.0: {}
-
picocolors@1.1.1: {}
picomatch@2.3.1: {}
@@ -6877,14 +6198,6 @@ snapshots:
pirates@4.0.6: {}
- playwright-core@1.61.1: {}
-
- playwright@1.61.1:
- dependencies:
- playwright-core: 1.61.1
- optionalDependencies:
- fsevents: 2.3.2
-
possible-typed-array-names@1.0.0: {}
possible-typed-array-names@1.1.0: {}
@@ -7010,8 +6323,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- react-refresh@0.17.0: {}
-
react@18.2.0:
dependencies:
loose-envify: 1.4.0
@@ -7260,8 +6571,6 @@ snapshots:
side-channel-map: 1.0.1
side-channel-weakmap: 1.0.2
- siginfo@2.0.0: {}
-
signal-exit@4.1.0: {}
source-map-js@1.2.1: {}
@@ -7277,10 +6586,6 @@ snapshots:
sprintf-js@1.0.3: {}
- stackback@0.0.2: {}
-
- std-env@3.10.0: {}
-
stop-iteration-iterator@1.1.0:
dependencies:
es-errors: 1.3.0
@@ -7375,10 +6680,6 @@ snapshots:
strip-json-comments@3.1.1: {}
- strip-literal@3.1.0:
- dependencies:
- js-tokens: 9.0.1
-
style-to-object@0.4.4:
dependencies:
inline-style-parser: 0.1.1
@@ -7470,21 +6771,11 @@ snapshots:
tiny-invariant@1.3.3: {}
- tinybench@2.9.0: {}
-
- tinyexec@0.3.2: {}
-
tinyglobby@0.2.17:
dependencies:
fdir: 6.5.0(picomatch@4.0.5)
picomatch: 4.0.5
- tinypool@1.1.1: {}
-
- tinyrainbow@2.0.0: {}
-
- tinyspy@4.0.4: {}
-
to-regex-range@5.0.1:
dependencies:
is-number: 7.0.0
@@ -7736,27 +7027,6 @@ snapshots:
unist-util-stringify-position: 3.0.3
vfile-message: 3.1.4
- vite-node@3.2.4(@types/node@22.20.1)(jiti@1.21.6)(terser@5.36.0)(tsx@4.23.12)(yaml@2.6.0):
- dependencies:
- cac: 6.7.14
- debug: 4.4.3
- es-module-lexer: 1.7.0
- pathe: 2.0.3
- vite: 6.4.3(@types/node@22.20.1)(jiti@1.21.6)(terser@5.36.0)(tsx@4.23.12)(yaml@2.6.0)
- transitivePeerDependencies:
- - '@types/node'
- - jiti
- - less
- - lightningcss
- - sass
- - sass-embedded
- - stylus
- - sugarss
- - supports-color
- - terser
- - tsx
- - yaml
-
vite@6.4.3(@types/node@22.20.1)(jiti@1.21.6)(terser@5.36.0)(tsx@4.23.12)(yaml@2.6.0):
dependencies:
esbuild: 0.25.12
@@ -7773,49 +7043,6 @@ snapshots:
tsx: 4.23.12
yaml: 2.6.0
- vitest@3.2.7(@types/debug@4.1.12)(@types/node@22.20.1)(happy-dom@17.6.3)(jiti@1.21.6)(terser@5.36.0)(tsx@4.23.12)(yaml@2.6.0):
- dependencies:
- '@types/chai': 5.2.3
- '@vitest/expect': 3.2.7
- '@vitest/mocker': 3.2.7(vite@6.4.3(@types/node@22.20.1)(jiti@1.21.6)(terser@5.36.0)(tsx@4.23.12)(yaml@2.6.0))
- '@vitest/pretty-format': 3.2.7
- '@vitest/runner': 3.2.7
- '@vitest/snapshot': 3.2.7
- '@vitest/spy': 3.2.7
- '@vitest/utils': 3.2.7
- chai: 5.2.0
- debug: 4.4.3
- expect-type: 1.4.0
- magic-string: 0.30.17
- pathe: 2.0.3
- picomatch: 4.0.5
- std-env: 3.10.0
- tinybench: 2.9.0
- tinyexec: 0.3.2
- tinyglobby: 0.2.17
- tinypool: 1.1.1
- tinyrainbow: 2.0.0
- vite: 6.4.3(@types/node@22.20.1)(jiti@1.21.6)(terser@5.36.0)(tsx@4.23.12)(yaml@2.6.0)
- vite-node: 3.2.4(@types/node@22.20.1)(jiti@1.21.6)(terser@5.36.0)(tsx@4.23.12)(yaml@2.6.0)
- why-is-node-running: 2.3.0
- optionalDependencies:
- '@types/debug': 4.1.12
- '@types/node': 22.20.1
- happy-dom: 17.6.3
- transitivePeerDependencies:
- - jiti
- - less
- - lightningcss
- - msw
- - sass
- - sass-embedded
- - stylus
- - sugarss
- - supports-color
- - terser
- - tsx
- - yaml
-
vscode-oniguruma@2.0.1: {}
vscode-textmate@9.1.0: {}
@@ -7827,8 +7054,6 @@ snapshots:
web-namespaces@2.0.1: {}
- webidl-conversions@7.0.0: {}
-
webpack-sources@3.2.3: {}
webpack@5.95.0(@swc/core@1.15.47)(esbuild@0.25.12):
@@ -7861,8 +7086,6 @@ snapshots:
- esbuild
- uglify-js
- whatwg-mimetype@3.0.0: {}
-
which-boxed-primitive@1.0.2:
dependencies:
is-bigint: 1.0.4
@@ -7924,11 +7147,6 @@ snapshots:
dependencies:
isexe: 2.0.0
- why-is-node-running@2.3.0:
- dependencies:
- siginfo: 2.0.0
- stackback: 0.0.2
-
word-wrap@1.2.5: {}
wrap-ansi@7.0.0:
@@ -7943,8 +7161,6 @@ snapshots:
string-width: 5.1.2
strip-ansi: 7.1.0
- yallist@3.1.1: {}
-
yaml@2.6.0: {}
yocto-queue@0.1.0: {}
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 9600d439..28756fae 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -1,3 +1,2 @@
packages:
- docs
- - sample-site
diff --git a/sample-site/README.md b/sample-site/README.md
deleted file mode 100644
index 24dac52d..00000000
--- a/sample-site/README.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# Mafs Fix Atlas
-
-A small, responsive showcase for the Mafs polish pass. It renders live examples
-from the repository's local src/ through a Vite alias, so the demos exercise
-the same code that the package builds and tests.
-
-The page covers:
-
-- themes, line primitives, OfY, polar coordinates, fonts, and CSS packaging
-- adaptive plotting, logarithmic functions, Bezier curves, and discontinuities
-- vector-field arrows, opacity batching, stable IDs, and axis arrows
-- keyboard-ready movable points, snapping, constraints, clicks, and transforms
-- bounded camera movement, zoomed coordinate clicks, animation controls, and LaTeX
-- custom transform contexts plus a coverage board for API, CI, docs, and package fixes
-
-The final coverage board also calls out the historical proposals that were
-reviewed but intentionally remain separate product work: WebGL, general
-implicit-function rendering, Svelte, and 3D plots.
-
-## Run locally
-
-From this directory:
-
-```bash
-pnpm install
-pnpm dev
-```
-
-Then open http://localhost:5173.
-
-To verify the production bundle:
-
-```bash
-pnpm build
-```
diff --git a/sample-site/demo-01-discontinuities.png b/sample-site/demo-01-discontinuities.png
deleted file mode 100644
index edb79efb..00000000
Binary files a/sample-site/demo-01-discontinuities.png and /dev/null differ
diff --git a/sample-site/demo-01-foundations.png b/sample-site/demo-01-foundations.png
deleted file mode 100644
index 0f8f8181..00000000
Binary files a/sample-site/demo-01-foundations.png and /dev/null differ
diff --git a/sample-site/demo-02-text-anchors.png b/sample-site/demo-02-text-anchors.png
deleted file mode 100644
index 248c1380..00000000
Binary files a/sample-site/demo-02-text-anchors.png and /dev/null differ
diff --git a/sample-site/demo-03-discontinuities.png b/sample-site/demo-03-discontinuities.png
deleted file mode 100644
index a6efa10d..00000000
Binary files a/sample-site/demo-03-discontinuities.png and /dev/null differ
diff --git a/sample-site/demo-03-text-halo.png b/sample-site/demo-03-text-halo.png
deleted file mode 100644
index 931b8c89..00000000
Binary files a/sample-site/demo-03-text-halo.png and /dev/null differ
diff --git a/sample-site/demo-04-vector-field.png b/sample-site/demo-04-vector-field.png
deleted file mode 100644
index 721db58d..00000000
Binary files a/sample-site/demo-04-vector-field.png and /dev/null differ
diff --git a/sample-site/demo-07-movables.png b/sample-site/demo-07-movables.png
deleted file mode 100644
index e1a2336b..00000000
Binary files a/sample-site/demo-07-movables.png and /dev/null differ
diff --git a/sample-site/demo-07-vector-field.png b/sample-site/demo-07-vector-field.png
deleted file mode 100644
index e50b8586..00000000
Binary files a/sample-site/demo-07-vector-field.png and /dev/null differ
diff --git a/sample-site/demo-10-transform.png b/sample-site/demo-10-transform.png
deleted file mode 100644
index cb5d6243..00000000
Binary files a/sample-site/demo-10-transform.png and /dev/null differ
diff --git a/sample-site/demo-11-latex.png b/sample-site/demo-11-latex.png
deleted file mode 100644
index 0a35b931..00000000
Binary files a/sample-site/demo-11-latex.png and /dev/null differ
diff --git a/sample-site/demo-13-transform.png b/sample-site/demo-13-transform.png
deleted file mode 100644
index 9d6863d7..00000000
Binary files a/sample-site/demo-13-transform.png and /dev/null differ
diff --git a/sample-site/demo-15-latex.png b/sample-site/demo-15-latex.png
deleted file mode 100644
index 093091f3..00000000
Binary files a/sample-site/demo-15-latex.png and /dev/null differ
diff --git a/sample-site/demo-full.png b/sample-site/demo-full.png
deleted file mode 100644
index 934d9cc6..00000000
Binary files a/sample-site/demo-full.png and /dev/null differ
diff --git a/sample-site/index.html b/sample-site/index.html
deleted file mode 100644
index cdde0f52..00000000
--- a/sample-site/index.html
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
- Mafs — Fix Atlas
-
-
-
-
-
-
diff --git a/sample-site/package.json b/sample-site/package.json
deleted file mode 100644
index 16892cc2..00000000
--- a/sample-site/package.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "name": "mafs-fixes-demo",
- "private": true,
- "version": "0.1.0",
- "type": "module",
- "description": "Sample site demonstrating the fixes and improvements made to Mafs",
- "scripts": {
- "dev": "vite",
- "build": "tsc && vite build",
- "preview": "vite preview",
- "smoke": "node smoke.mjs",
- "verify": "node verify.mjs",
- "probe": "node probe.mjs"
- },
- "dependencies": {
- "react": "^18.3.1",
- "react-dom": "^18.3.1"
- },
- "devDependencies": {
- "@types/react": "^18.3.20",
- "@types/react-dom": "^18.3.7",
- "@vitejs/plugin-react": "^4.4.1",
- "typescript": "^5.8.3",
- "vite": "^6.3.5"
- }
-}
diff --git a/sample-site/probe.mjs b/sample-site/probe.mjs
deleted file mode 100644
index 82a17e5c..00000000
--- a/sample-site/probe.mjs
+++ /dev/null
@@ -1,214 +0,0 @@
-/* global getComputedStyle */
-
-import { chromium } from "@playwright/test"
-
-const browser = await chromium.launch()
-const page = await browser.newPage({ viewport: { width: 1280, height: 800 } })
-const errors = []
-page.on("console", (message) => {
- if (message.type() === "error") errors.push(message.text())
-})
-page.on("pageerror", (error) => errors.push(String(error)))
-
-await page.goto(globalThis.process.env.MAFS_DEMO_URL ?? "http://localhost:4173", {
- waitUntil: "networkidle",
-})
-
-async function activate(id) {
- const section = page.locator(`#${id}`)
- await section.scrollIntoViewIfNeeded()
- await page.waitForTimeout(160)
- return section
-}
-
-const clickSection = await activate("clicks")
-const clickSvg = clickSection.locator("svg")
-const clickBox = await clickSvg.boundingBox()
-if (!clickBox) throw new Error("click demo did not render an SVG")
-
-const clickTarget = { x: clickBox.x + clickBox.width * 0.7, y: clickBox.y + clickBox.height * 0.35 }
-const clickExpected = await clickSvg.evaluate((svg, target) => {
- const ctm = svg.getScreenCTM()
- const point = svg.createSVGPoint()
- point.x = target.x
- point.y = target.y
- const svgPoint = point.matrixTransform(ctm.inverse())
- const transform = getComputedStyle(svg).getPropertyValue("--mafs-view-transform")
- const [, scaleX, scaleY] = transform.match(/matrix\(([^,]+),[^,]+,[^,]+,([^,]+),/) || []
- return {
- x: svgPoint.x / Number(scaleX),
- y: svgPoint.y / Number(scaleY),
- }
-}, clickTarget)
-
-await page.mouse.click(clickTarget.x, clickTarget.y)
-await page.waitForTimeout(100)
-const clickAfter = await clickSection.locator("text").filter({ hasText: "," }).first().textContent()
-
-const keyboardSection = await activate("keyboard")
-const keyboardSvg = keyboardSection.locator("svg")
-const keyboardBefore = await keyboardSvg.getAttribute("viewBox")
-await keyboardSection.locator(".MafsView").focus()
-await page.keyboard.press("ArrowRight")
-await page.waitForTimeout(80)
-const keyboardAfter = await keyboardSvg.getAttribute("viewBox")
-
-const arrowSection = await activate("axis-arrows")
-const arrowSvg = arrowSection.locator("svg")
-const arrowBox = await arrowSvg.boundingBox()
-if (!arrowBox) throw new Error("axis demo did not render an SVG")
-await page.mouse.move(arrowBox.x + arrowBox.width / 2, arrowBox.y + arrowBox.height / 2)
-await page.mouse.down()
-await page.mouse.move(arrowBox.x + arrowBox.width / 2 + 220, arrowBox.y + arrowBox.height / 2, {
- steps: 12,
-})
-await page.mouse.up()
-await page.waitForTimeout(80)
-const arrowCheck = await arrowSvg.evaluate((svg) => {
- const [x, y, width, height] = svg.getAttribute("viewBox").split(" ").map(Number)
- const paths = [...svg.querySelectorAll("path")].map((path) => path.getAttribute("d") || "")
- const xRight = Number((paths[0].match(/M ([^ ]+) 0 l -12/) || [])[1])
- const xLeft = Number((paths[0].match(/M [^ ]+ 0 l -12 -5 v 10 Z M ([^ ]+)/) || [])[1])
- const yTop = Number((paths[1].match(/M 0 ([^ ]+) l -5/) || [])[1])
- const yBottom = Number((paths[1].match(/M 0 [^ ]+ l -5 12 h 10 Z M 0 ([^ ]+)/) || [])[1])
- return {
- left: xLeft,
- right: xRight,
- viewLeft: x,
- viewRight: x + width,
- top: yTop,
- bottom: yBottom,
- viewTop: y,
- viewBottom: y + height,
- }
-})
-
-const latexSection = await activate("latex")
-const latexSvg = latexSection.locator("svg")
-const latex = latexSection.locator(".mafs-latex-label").first()
-const latexBefore = await latex.boundingBox()
-const latexBox = await latexSvg.boundingBox()
-if (!latexBefore || !latexBox) throw new Error("LaTeX demo did not render")
-async function measureLatexAnchor() {
- return latexSvg.evaluate((svg) => {
- const transform = getComputedStyle(svg).getPropertyValue("--mafs-view-transform")
- const values = transform
- .match(/matrix\(([^)]+)\)/)?.[1]
- .split(",")
- .map(Number)
- const screenTransform = svg.getScreenCTM()
- const content = document.querySelector("#latex .mafs-latex-label")
- if (!values || values.length !== 6 || !screenTransform || !content) return null
-
- const [a, b, c, d, e, f] = values
- const pixelPoint = svg.createSVGPoint()
- pixelPoint.x = a * 0 + c * 1.4 + e
- pixelPoint.y = b * 0 + d * 1.4 + f
- const screenPoint = pixelPoint.matrixTransform(screenTransform)
- const contentBox = content.getBoundingClientRect()
- const contentCenter = [
- contentBox.x + contentBox.width / 2,
- contentBox.y + contentBox.height / 2,
- ]
- return Math.hypot(contentCenter[0] - screenPoint.x, contentCenter[1] - screenPoint.y)
- })
-}
-
-const latexAnchorError = await measureLatexAnchor()
-const latexPosition = await latex.evaluate((element) => getComputedStyle(element).position)
-if (latexPosition !== "absolute") throw new Error(`LaTeX label is ${latexPosition}, not absolute`)
-const latexX = latexBox.x + latexBox.width * 0.2
-const latexY = latexBox.y + Math.min(150, latexBox.height / 2)
-await page.mouse.move(latexX, latexY)
-await page.mouse.down()
-await page.mouse.move(latexX + 80, latexY, { steps: 10 })
-await page.mouse.up()
-await page.waitForTimeout(80)
-const latexAfter = await latex.boundingBox()
-const latexVerticalX = latexBox.x + latexBox.width / 2
-const latexVerticalY = latexBox.y + Math.min(220, latexBox.height / 2)
-await page.mouse.move(latexVerticalX, latexVerticalY)
-await page.mouse.down()
-await page.mouse.move(latexVerticalX, latexVerticalY + 80, { steps: 10 })
-await page.mouse.up()
-await page.waitForTimeout(80)
-const latexAfterVerticalPan = await latex.boundingBox()
-
-await page.setViewportSize({ width: 960, height: 760 })
-await page.waitForTimeout(160)
-const latexResizeAnchorError = await measureLatexAnchor()
-await page.evaluate(() => {
- document.documentElement.style.zoom = "2"
-})
-await page.waitForTimeout(160)
-const latexZoomAnchorError = await measureLatexAnchor()
-await page.evaluate(() => {
- document.documentElement.style.zoom = ""
-})
-
-if (
- [latexAnchorError, latexResizeAnchorError, latexZoomAnchorError].some(
- (error) => error === null || error > 1,
- )
-) {
- throw new Error("LaTeX overlay lost its graph anchor during pan, resize, or zoom")
-}
-
-const animationSection = await activate("animation")
-const animationButton = animationSection.locator("button")
-if ((await animationButton.textContent())?.includes("Pause")) await animationButton.click()
-const slider = animationSection.locator("input[type=range]")
-const sliderBox = await slider.boundingBox()
-if (!sliderBox) throw new Error("animation slider did not render")
-const sliderTarget = 0.82
-await page.mouse.click(
- sliderBox.x + sliderBox.width * sliderTarget,
- sliderBox.y + sliderBox.height / 2,
-)
-await page.waitForTimeout(80)
-const sliderValue = Number(await slider.inputValue())
-
-const plotSection = await activate("plot-quality")
-const plotSvg = plotSection.locator("svg")
-const plotBox = await plotSvg.boundingBox()
-if (!plotBox) throw new Error("plot demo did not render")
-const plotPathCountBefore = await plotSvg.locator("path").count()
-for (let index = 0; index < 3; index++) {
- const x = plotBox.x + plotBox.width / 2
- const y = plotBox.y + plotBox.height / 2
- await page.mouse.move(x, y)
- await page.mouse.down()
- await page.mouse.move(x - 500, y, { steps: 12 })
- await page.mouse.up()
- await page.waitForTimeout(60)
-}
-const plotPathCountAfter = await plotSvg.locator("path").count()
-
-console.log(
- JSON.stringify(
- {
- clickExpected,
- clickAfter,
- keyboardMoved: keyboardBefore !== keyboardAfter,
- arrowCheck,
- latexAnchorError,
- latexShift: latexAfter ? latexAfter.x - latexBefore.x : null,
- latexVerticalShift: latexAfterVerticalPan
- ? latexAfterVerticalPan.y - (latexAfter?.y ?? 0)
- : null,
- latexPosition,
- latexResizeAnchorError,
- latexZoomAnchorError,
- latexSpans: await latexSection.locator(".mafs-latex-label span").count(),
- sliderValue,
- sliderTarget,
- plotPathCountBefore,
- plotPathCountAfter,
- errors,
- },
- null,
- 2,
- ),
-)
-
-await browser.close()
diff --git a/sample-site/smoke.mjs b/sample-site/smoke.mjs
deleted file mode 100644
index 4fd7439f..00000000
--- a/sample-site/smoke.mjs
+++ /dev/null
@@ -1,44 +0,0 @@
-import { chromium } from "@playwright/test"
-
-const errors = []
-
-const browser = await chromium.launch()
-const page = await browser.newPage({ viewport: { width: 1200, height: 800 } })
-
-page.on("console", (msg) => {
- if (msg.type() === "error") errors.push(msg.text())
-})
-page.on("pageerror", (err) => errors.push(String(err)))
-
-await page.goto("http://localhost:4173", { waitUntil: "networkidle" })
-
-const sectionCount = await page.locator("section.section").count()
-for (let index = 0; index < sectionCount; index++) {
- const section = page.locator("section.section").nth(index)
- await section.scrollIntoViewIfNeeded()
- await page.waitForTimeout(100)
-}
-
-const mafsViews = await page.locator(".MafsView").count()
-const svgs = await page.locator(".MafsView svg").count()
-const sections = sectionCount
-
-await page.screenshot({ path: "demo-full.png", fullPage: true })
-
-const shots = [
- ["01-foundations", "#foundations .section-demo"],
- ["03-discontinuities", "#discontinuities .section-demo"],
- ["04-vector-field", "#vectors .section-demo"],
- ["07-movables", "#movables .section-demo"],
- ["13-transform", "#transform-composition .section-demo"],
- ["15-latex", "#latex .section-demo"],
-]
-for (const [name, sel] of shots) {
- const demo = page.locator(sel)
- await demo.scrollIntoViewIfNeeded()
- await page.waitForTimeout(150)
- await demo.screenshot({ path: "demo-" + name + ".png" })
-}
-
-console.log(JSON.stringify({ mafsViews, svgs, sections, errors }, null, 2))
-await browser.close()
diff --git a/sample-site/src/App.tsx b/sample-site/src/App.tsx
deleted file mode 100644
index ca1d3ba7..00000000
--- a/sample-site/src/App.tsx
+++ /dev/null
@@ -1,476 +0,0 @@
-import { useEffect, useRef, useState } from "react"
-import type { ComponentType } from "react"
-
-import { AnimationDemo } from "./demos/AnimationDemo"
-import { AxisArrows } from "./demos/AxisArrows"
-import { ClickCoordinates } from "./demos/ClickCoordinates"
-import { ContextDemo } from "./demos/ContextDemo"
-import { Discontinuities } from "./demos/Discontinuities"
-import { FoundationsDemo } from "./demos/FoundationsDemo"
-import { KeyboardCamera } from "./demos/KeyboardCamera"
-import { LatexDemo } from "./demos/LatexDemo"
-import { MovablesDemo } from "./demos/MovablesDemo"
-import { PanBounds } from "./demos/PanBounds"
-import { PlotQualityDemo } from "./demos/PlotQualityDemo"
-import { PolarVectorDemo } from "./demos/PolarVectorDemo"
-import { TextAnchors } from "./demos/TextAnchors"
-import { TextHalo } from "./demos/TextHalo"
-import { TransformDemo } from "./demos/TransformDemo"
-
-interface Section {
- id: string
- number: string
- title: string
- issue: string
- description: string
- code: string
- Demo: ComponentType
-}
-
-const snippet = (lines: string[]) => lines.join("\n")
-
-const sections: Section[] = [
- {
- id: "foundations",
- number: "01",
- title: "A stronger math foundation",
- issue: "#1 #2 #3 #6 #12 #22 #48 #89",
- description:
- "Themes are CSS variables, lines have direct horizontal and vertical primitives, OfY and polar coordinates are first-class, and the package ships its fonts without an external import.",
- code: snippet([
- '',
- " ",
- " ",
- " Math.sin(y)} />",
- " ",
- " ",
- ]),
- Demo: FoundationsDemo,
- },
- {
- id: "plot-quality",
- number: "02",
- title: "Plots that hold up under pressure",
- issue: "#36 #74 #76 #129",
- description:
- "Adaptive sampling, explicit domains, logarithmic functions, and native quadratic/cubic Bezier paths cover the common cases that used to expose plotting quality problems.",
- code: snippet([
- " 3 * Math.log10(x) + 1}",
- " domain={[0.08, 6]} />",
- " ",
- ]),
- Demo: PlotQualityDemo,
- },
- {
- id: "discontinuities",
- number: "03",
- title: "Discontinuities are visible gaps",
- issue: "#133",
- description:
- "The exclusions API lets a plot break at known discontinuities, while non-finite samples also stop paths from joining across an asymptote.",
- code: snippet([
- " Math.tan(x)}",
- " exclusions={(domain) => tanExclusions(domain)}",
- "/>",
- ]),
- Demo: Discontinuities,
- },
- {
- id: "vectors",
- number: "04",
- title: "Fields, arrows, and real performance",
- issue: "#6 #7 #17 #24 #55 #95 #119 #137 #164",
- description:
- "Polar grids, arrow fields, opacity buckets, stable marker IDs, correct colors, zero-vector handling, and pane-safe iteration all work together in one interactive view.",
- code: snippet([
- " ",
- " ",
- ]),
- Demo: PolarVectorDemo,
- },
- {
- id: "text",
- number: "05",
- title: "Labels stay crisp and correctly attached",
- issue: "#13 #85 #181",
- description:
- "North/south baselines are corrected, colored text uses a background halo instead of a fuzzy shadow, and the accessibility guidance calls out focus, labels, and non-visual explanations.",
- code: snippet([
- 'North ',
- 'South ',
- ' ',
- ]),
- Demo: TextAnchors,
- },
- {
- id: "text-halo",
- number: "06",
- title: "Readable labels over busy graphs",
- issue: "#85",
- description:
- "The live color treatment makes the paint-order halo visible: the label remains sharp while the grid stays behind it.",
- code: snippet(['', " crisp green", " "]),
- Demo: TextHalo,
- },
- {
- id: "movables",
- number: "07",
- title: "Movable points are controls, not surprises",
- issue: "#79 #99 #109 #117 #120 #125",
- description:
- "This card combines initial constraint application, snap-to-grid, points along a function, direct MovablePoint usage, custom draggable behavior, and click events that fire only for clicks—not drags.",
- code: snippet([
- "const point = useMovablePoint([0.7, 0.7], {",
- " constrain: ([x, y]) => [Math.round(x), Math.round(y)],",
- "})",
- " ",
- ]),
- Demo: MovablesDemo,
- },
- {
- id: "camera",
- number: "08",
- title: "Camera behavior you can trust",
- issue: "#9 #10 #98 #113 #115 #116",
- description:
- "ViewBox centering, keyboard pan/zoom, pinch zoom, bounded panning, correct click coordinates, and the no-flash initial render are demonstrated in the neighboring live controls.",
- code: snippet([
- " setPoint(point)}",
- "/>",
- ]),
- Demo: PanBounds,
- },
- {
- id: "clicks",
- number: "09",
- title: "Clicks stay accurate when zoomed",
- issue: "#116",
- description:
- "Zoom this plane, click anywhere, and the red coordinate readout follows the exact point under the pointer.",
- code: snippet([
- " setPoint(point)}>",
- " ",
- " ",
- ]),
- Demo: ClickCoordinates,
- },
- {
- id: "axis-arrows",
- number: "10",
- title: "Axes point the way",
- issue: "#119",
- description:
- "Axis arrows stay pinned to the visible edges while the camera moves, making orientation clear in a pan-and-zoomable view.",
- code: snippet([
- " ",
- ]),
- Demo: AxisArrows,
- },
- {
- id: "keyboard",
- number: "11",
- title: "Keyboard-first camera controls",
- issue: "#9 #10 #98",
- description:
- "The canvas is focusable and responds to arrow keys plus/minus keys, with modifier keys for finer or faster movement.",
- code: snippet([
- "",
- " ",
- " ",
- ]),
- Demo: KeyboardCamera,
- },
- {
- id: "transforms",
- number: "12",
- title: "Transforms reach custom content",
- issue: "#35 #63 #64",
- description:
- "Lines, points, plots, inequalities, vector fields, and custom SVG components can consume the view/user matrices. Text keeps its anchor readable and coordinate grids remain viewport-relative by design.",
- code: snippet([
- "const { viewTransform, userTransform } =",
- " useTransformContext()",
- "const pixel = vec.transform(point,",
- " vec.matrixMult(viewTransform, userTransform))",
- ]),
- Demo: ContextDemo,
- },
- {
- id: "transform-composition",
- number: "13",
- title: "Nested transforms compose",
- issue: "#63",
- description:
- "The transform matrix is composed inside-out, so rotate, scale, shear, and translation can be combined without special-casing each visual element.",
- code: snippet([
- "",
- " ",
- " ",
- ]),
- Demo: TransformDemo,
- },
- {
- id: "animation",
- number: "14",
- title: "Animation has a real control surface",
- issue: "#65",
- description:
- "Pause, resume, repeat, reverse, easing, and key-frame seeking are visible in this loop. The range control tracks rawTime, so easing never pulls the thumb away from the pointer.",
- code: snippet([
- "const { time, rawTime, pause, start, setTime } = useStopwatch({",
- " endTime: 4, repeat: true, ease: smoothStep,",
- "})",
- ]),
- Demo: AnimationDemo,
- },
- {
- id: "latex",
- number: "15",
- title: "Math text stays on the math plane",
- issue: "#4",
- description:
- "KaTeX-backed LaTeX labels pan and zoom with the visualization while the package keeps its font assets local and CDN-safe.",
- code: snippet([" "]),
- Demo: LatexDemo,
- },
-]
-
-const toolingGroups = [
- {
- label: "API + package",
- ids: "#11 #15 #18 #22 #25 #48 #49 #69 #84 #89 #90 #123 #124",
- detail:
- "Generated declarations, vec exports, CSS/font packaging, dual bundles, and publish checks.",
- },
- {
- label: "Docs + accessibility",
- ids: "#8 #12 #13 #35 #67 #81 #136",
- detail:
- "Autogenerated props, themes, contexts, keyboard guidance, nav spacing, and Safari-safe docs.",
- },
- {
- label: "CI + integrations",
- ids: "#14 #20 #111 #147 #157 #163 #177",
- detail:
- "Vitest, Playwright, native TypeScript 7, framework fixtures, and current-project status.",
- },
-]
-
-const reviewedGroups = [
- {
- label: "Separate product proposals",
- ids: "#64 #118 #132 · #122 #180",
- detail:
- "WebGL, implicit plots, Svelte, and 3D need separate APIs and implementation contracts.",
- },
- {
- label: "External/browser reports",
- ids: "#16 #104 #154 #175",
- detail:
- "Hosting administration and unreproducible browser artifacts have explicit dispositions.",
- },
-]
-
-function CodeBlock({ children }: { children: string }) {
- return (
-
- {children}
-
- )
-}
-
-function LazyDemo({ Demo, title }: { Demo: ComponentType; title: string }) {
- const ref = useRef(null)
- const [mounted, setMounted] = useState(false)
-
- useEffect(() => {
- const element = ref.current
- if (!element || typeof IntersectionObserver === "undefined") {
- setMounted(true)
- return
- }
-
- const observer = new IntersectionObserver(
- ([entry]) => {
- if (entry.isIntersecting) {
- setMounted(true)
- observer.disconnect()
- }
- },
- { rootMargin: "1000px 0px" },
- )
- observer.observe(element)
- return () => observer.disconnect()
- }, [])
-
- return (
-
-
Live proof · {title}
- {mounted ?
:
Scroll to activate the demo
}
-
- )
-}
-
-function CoverageBoard() {
- return (
-
-
-
-
The audit trail
-
Every archive item has a home
-
-
69 issues · 8 discussions
-
-
-
- {toolingGroups.map((group) => (
-
- validated
- {group.label}
- {group.ids}
- {group.detail}
-
- ))}
- {reviewedGroups.map((group) => (
-
- reviewed
- {group.label}
- {group.ids}
- {group.detail}
-
- ))}
-
-
- The source repository also contains the complete per-item ledger in
- ISSUE-COVERAGE.md, including why the open-ended proposals are not silently
- represented as finished features.
-
-
- )
-}
-
-export default function App() {
- return (
- <>
-
- Skip to the live showcase
-
-
-
-
-
-
-
-
Interactive showcase
-
Try the fixes yourself
-
-
- Drag the points, zoom the planes, focus the canvases, and move the animation slider.
- Each card is rendered from the repository source rather than a mock.
-
-
-
- {sections.map(({ id, number, title, issue, description, code, Demo }) => (
-
-
-
{number}
-
-
{title}
- {issue}
-
-
- {description}
-
- {code}
-
-
-
- ))}
-
-
-
-
-
- Honest boundaries
- Not every idea belongs in this SVG package
-
- WebGL, general implicit-function rendering, a Svelte port, and 3D plots remain
- explicitly reviewed proposals. They need separate renderer, performance, accessibility,
- or API decisions; this showcase does not pretend those are shipped.
-
-
-
-
- Built from the local Mafs source · run pnpm dev in
- sample-site/ to explore it.
-
-
- >
- )
-}
diff --git a/sample-site/src/demos/AnimationDemo.tsx b/sample-site/src/demos/AnimationDemo.tsx
deleted file mode 100644
index c6537c54..00000000
--- a/sample-site/src/demos/AnimationDemo.tsx
+++ /dev/null
@@ -1,46 +0,0 @@
-import { useEffect } from "react"
-import { Circle, Coordinates, Line, Mafs, Text, Theme, useStopwatch } from "mafs"
-
-export function AnimationDemo() {
- const { rawTime, time, playing, start, pause, setTime } = useStopwatch({
- endTime: 4,
- repeat: true,
- ease: (value) => value * value * (3 - 2 * value),
- })
-
- useEffect(() => {
- start()
- }, [start])
-
- const angle = (time / 4) * Math.PI * 2
- const point: [number, number] = [Math.cos(angle) * 1.8, Math.sin(angle) * 1.8]
-
- return (
-
-
-
-
-
-
-
- {playing ? "playing" : "paused"} · t={time.toFixed(2)}s
-
-
-
-
- {playing ? "Pause" : "Resume"}
-
- setTime(Number(event.target.value))}
- />
-
-
- )
-}
diff --git a/sample-site/src/demos/AxisArrows.tsx b/sample-site/src/demos/AxisArrows.tsx
deleted file mode 100644
index 46fb8027..00000000
--- a/sample-site/src/demos/AxisArrows.tsx
+++ /dev/null
@@ -1,13 +0,0 @@
-import { Mafs, Coordinates } from "mafs"
-
-export function AxisArrows() {
- return (
-
-
-
- )
-}
diff --git a/sample-site/src/demos/ClickCoordinates.tsx b/sample-site/src/demos/ClickCoordinates.tsx
deleted file mode 100644
index 03ca79ca..00000000
--- a/sample-site/src/demos/ClickCoordinates.tsx
+++ /dev/null
@@ -1,20 +0,0 @@
-import { useState } from "react"
-import { Mafs, Coordinates, Point, Text, vec } from "mafs"
-
-export function ClickCoordinates() {
- const [point, setPoint] = useState([0, 0])
-
- return (
- setPoint(point)}
- >
-
-
-
- ({point.map((n) => n.toFixed(2)).join(", ")})
-
-
- )
-}
diff --git a/sample-site/src/demos/ConstrainedPoints.tsx b/sample-site/src/demos/ConstrainedPoints.tsx
deleted file mode 100644
index eedb940c..00000000
--- a/sample-site/src/demos/ConstrainedPoints.tsx
+++ /dev/null
@@ -1,25 +0,0 @@
-import { Mafs, Coordinates, Line, useMovablePoint } from "mafs"
-
-export function ConstrainedPoints() {
- // Horizontal constraint: y is locked. Dragging moves the point left/right
- // along the blue guide line.
- const horizontal = useMovablePoint([0.6, 0], { constrain: "horizontal" })
- const vertical = useMovablePoint([0, -0.8], { constrain: "vertical" })
- // Custom constraint + the #99 fix: the initial position is pushed through
- // the constraint on mount too, so this point starts snapped to x = 0 even
- // though we asked for x = 0.3.
- const snapped = useMovablePoint([0.3, 2.2], {
- constrain: ([x, y]) => [Math.round(x), y],
- })
-
- return (
-
-
-
-
- {horizontal.element}
- {vertical.element}
- {snapped.element}
-
- )
-}
diff --git a/sample-site/src/demos/ContextDemo.tsx b/sample-site/src/demos/ContextDemo.tsx
deleted file mode 100644
index f01782e0..00000000
--- a/sample-site/src/demos/ContextDemo.tsx
+++ /dev/null
@@ -1,28 +0,0 @@
-import { Coordinates, Mafs, Text, Transform, useTransformContext, vec } from "mafs"
-
-function ContextCrosshair({ point }: { point: vec.Vector2 }) {
- const { viewTransform, userTransform } = useTransformContext()
- const pixelPoint = vec.transform(point, vec.matrixMult(viewTransform, userTransform))
- const [x, y] = pixelPoint
-
- return (
-
-
-
-
- )
-}
-
-export function ContextDemo() {
- return (
-
-
-
-
-
- custom context
-
-
-
- )
-}
diff --git a/sample-site/src/demos/Discontinuities.tsx b/sample-site/src/demos/Discontinuities.tsx
deleted file mode 100644
index e0be4b67..00000000
--- a/sample-site/src/demos/Discontinuities.tsx
+++ /dev/null
@@ -1,31 +0,0 @@
-import { Mafs, Coordinates, Plot, vec } from "mafs"
-
-// All integer multiples of π/2 strictly inside the visible domain — these are
-// the vertical asymptotes of tan(x). Returning exclusions from a function makes
-// them follow the camera as it pans and zooms.
-function tanExclusions([min, max]: vec.Vector2): number[] {
- const exclusions: number[] = []
- const start = Math.ceil(min / (Math.PI / 2))
- const end = Math.floor(max / (Math.PI / 2))
- for (let k = start; k <= end; k++) {
- exclusions.push(k * (Math.PI / 2))
- }
- return exclusions
-}
-
-export function Discontinuities() {
- return (
-
-
- Math.tan(x)}
- exclusions={tanExclusions}
- svgPathProps={{ stroke: "var(--mafs-pink)" }}
- />
- (x < 0 ? x * x : Math.sin(x))}
- svgPathProps={{ stroke: "var(--mafs-green)" }}
- />
-
- )
-}
diff --git a/sample-site/src/demos/FoundationsDemo.tsx b/sample-site/src/demos/FoundationsDemo.tsx
deleted file mode 100644
index 69f49171..00000000
--- a/sample-site/src/demos/FoundationsDemo.tsx
+++ /dev/null
@@ -1,25 +0,0 @@
-import { Coordinates, Line, Mafs, Plot, Text, Theme } from "mafs"
-
-export function FoundationsDemo() {
- return (
-
-
-
-
-
- Math.sin(y) * 0.7} domain={[-3, 3]} color={Theme.orange} weight={3} />
-
-
- primitives
-
-
-
- )
-}
diff --git a/sample-site/src/demos/KeyboardCamera.tsx b/sample-site/src/demos/KeyboardCamera.tsx
deleted file mode 100644
index 34d30398..00000000
--- a/sample-site/src/demos/KeyboardCamera.tsx
+++ /dev/null
@@ -1,17 +0,0 @@
-import { Mafs, Coordinates, Point, Polygon, vec } from "mafs"
-
-export function KeyboardCamera() {
- const triangle: vec.Vector2[] = [
- [0, 1],
- [1, -0.8],
- [-1, -0.8],
- ]
-
- return (
-
-
-
-
-
- )
-}
diff --git a/sample-site/src/demos/LatexDemo.tsx b/sample-site/src/demos/LatexDemo.tsx
deleted file mode 100644
index be9070d4..00000000
--- a/sample-site/src/demos/LatexDemo.tsx
+++ /dev/null
@@ -1,24 +0,0 @@
-import { Mafs, Coordinates, LaTeX } from "mafs"
-
-export function LatexDemo() {
- return (
-
-
-
-
-
-
- )
-}
diff --git a/sample-site/src/demos/MovablesDemo.tsx b/sample-site/src/demos/MovablesDemo.tsx
deleted file mode 100644
index 0ecbae14..00000000
--- a/sample-site/src/demos/MovablesDemo.tsx
+++ /dev/null
@@ -1,58 +0,0 @@
-import { useState } from "react"
-import {
- Coordinates,
- Line,
- Mafs,
- MovablePoint,
- Point,
- Plot,
- Text,
- Theme,
- useMovablePoint,
- vec,
-} from "mafs"
-
-const fn = (x: number) => 0.24 * x * x - 1
-
-export function MovablesDemo() {
- const snapped = useMovablePoint([0.7, 0.7], {
- constrain: ([x, y]) => [Math.round(x), Math.round(y)],
- })
- const spacing = useMovablePoint([1, 0], { constrain: "horizontal" })
- const [buttonPoint, setButtonPoint] = useState([2, fn(2)])
- const [clicks, setClicks] = useState(0)
-
- const spacingValue = Math.max(0.5, Math.abs(spacing.x))
- const functionPoints = Array.from({ length: 7 }, (_, index) => {
- const x = (index - 3) * spacingValue
- return [x, fn(x)] as vec.Vector2
- })
-
- return (
-
-
-
-
-
- {functionPoints.map(([x, y]) => (
-
- ))}
-
- snap + function
-
- {snapped.element}
- {spacing.element}
- setClicks((count) => count + 1)}
- color={Theme.orange}
- svgGroupProps={{ "aria-label": "Clickable movable point" }}
- />
-
- clicks: {clicks}
-
-
-
- )
-}
diff --git a/sample-site/src/demos/PanBounds.tsx b/sample-site/src/demos/PanBounds.tsx
deleted file mode 100644
index e4fd4e55..00000000
--- a/sample-site/src/demos/PanBounds.tsx
+++ /dev/null
@@ -1,28 +0,0 @@
-import { Mafs, Coordinates, Polygon, Text } from "mafs"
-
-export function PanBounds() {
- return (
-
-
-
-
- pan region
-
-
- )
-}
diff --git a/sample-site/src/demos/PlotQualityDemo.tsx b/sample-site/src/demos/PlotQualityDemo.tsx
deleted file mode 100644
index b2b09e36..00000000
--- a/sample-site/src/demos/PlotQualityDemo.tsx
+++ /dev/null
@@ -1,30 +0,0 @@
-import { Coordinates, Mafs, Plot, Text, Theme } from "mafs"
-
-export function PlotQualityDemo() {
- return (
-
-
- 3 * Math.log10(x) + 1}
- domain={[0.08, 6]}
- color={Theme.green}
- weight={3}
- />
- 0.65 * Math.sin(y * 1.4)}
- domain={[-3.5, 3.5]}
- color={Theme.blue}
- weight={2}
- />
- [2.4 * Math.sin(t * 2), 0.7 * Math.cos(t * 3) + 2.1]}
- color={Theme.pink}
- weight={2}
- />
-
- log₁₀
-
-
- )
-}
diff --git a/sample-site/src/demos/PolarVectorDemo.tsx b/sample-site/src/demos/PolarVectorDemo.tsx
deleted file mode 100644
index 146c5ac6..00000000
--- a/sample-site/src/demos/PolarVectorDemo.tsx
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Coordinates, Mafs, Plot, Theme, vec } from "mafs"
-
-const flow = ([x, y]: vec.Vector2): vec.Vector2 => [-y, x]
-
-const opacity = ([x, y]: vec.Vector2) => Math.max(0.15, 1 - vec.mag([x, y]) / 5)
-
-export function PolarVectorDemo() {
- return (
-
-
-
-
- )
-}
diff --git a/sample-site/src/demos/TextAnchors.tsx b/sample-site/src/demos/TextAnchors.tsx
deleted file mode 100644
index e93ca09d..00000000
--- a/sample-site/src/demos/TextAnchors.tsx
+++ /dev/null
@@ -1,28 +0,0 @@
-import { Mafs, Coordinates, Point, Text } from "mafs"
-
-export function TextAnchors() {
- return (
-
-
-
-
- north
-
-
- south
-
-
- east
-
-
- west
-
-
- northeast
-
-
- southwest
-
-
- )
-}
diff --git a/sample-site/src/demos/TextHalo.tsx b/sample-site/src/demos/TextHalo.tsx
deleted file mode 100644
index 77411090..00000000
--- a/sample-site/src/demos/TextHalo.tsx
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Mafs, Coordinates, Text } from "mafs"
-
-export function TextHalo() {
- return (
-
-
-
- crisp green
-
-
- crisp orange
-
-
- crisp yellow
-
-
- )
-}
diff --git a/sample-site/src/demos/TransformDemo.tsx b/sample-site/src/demos/TransformDemo.tsx
deleted file mode 100644
index 155c3963..00000000
--- a/sample-site/src/demos/TransformDemo.tsx
+++ /dev/null
@@ -1,34 +0,0 @@
-import { Mafs, Coordinates, Transform, Line, Circle, Text } from "mafs"
-
-export function TransformDemo() {
- const rot = Math.PI / 6
-
- return (
-
-
-
- {/* Untransformed reference */}
-
-
- {/* Rotated + translated */}
-
-
-
-
-
- {/* Scaled + sheared */}
-
-
-
-
- {/* Nested transforms compose */}
-
-
-
- rotated
-
-
-
-
- )
-}
diff --git a/sample-site/src/demos/VectorFieldOpacity.tsx b/sample-site/src/demos/VectorFieldOpacity.tsx
deleted file mode 100644
index 916d4bfb..00000000
--- a/sample-site/src/demos/VectorFieldOpacity.tsx
+++ /dev/null
@@ -1,29 +0,0 @@
-import { Mafs, Coordinates, Plot, vec } from "mafs"
-
-// A swirling flow field: each point rotates around the origin.
-const swirl = ([x, y]: vec.Vector2): vec.Vector2 => {
- const r = Math.sqrt(x * x + y * y)
- const speed = Math.min(1, r / 3)
- return [-y * speed, x * speed]
-}
-
-// Fade arrows out as they move away from the center.
-const falloff = ([x, y]: vec.Vector2): number => Math.max(0, 1 - Math.sqrt(x * x + y * y) / 5)
-
-export function VectorFieldOpacity() {
- return (
-
-
-
-
- )
-}
diff --git a/sample-site/src/main.tsx b/sample-site/src/main.tsx
deleted file mode 100644
index 01704d73..00000000
--- a/sample-site/src/main.tsx
+++ /dev/null
@@ -1,8 +0,0 @@
-import ReactDOM from "react-dom/client"
-import App from "./App"
-import "../../core.css"
-import "../../font.css"
-import "katex/dist/katex.min.css"
-import "./styles.css"
-
-ReactDOM.createRoot(document.getElementById("root")!).render( )
diff --git a/sample-site/src/styles.css b/sample-site/src/styles.css
deleted file mode 100644
index effa110d..00000000
--- a/sample-site/src/styles.css
+++ /dev/null
@@ -1,682 +0,0 @@
-:root {
- --bg: #0a0b10;
- --bg-raised: #10121a;
- --panel: #141822;
- --panel-strong: #191e2b;
- --border: #272d3e;
- --fg: #f0f1f5;
- --fg-muted: #9299ac;
- --fg-faint: #60687d;
- --accent: #9d8cff;
- --accent-bright: #c2b9ff;
- --mint: #8ef0c0;
- --orange: #ffb87a;
- --danger: #ff8d96;
-}
-
-* {
- box-sizing: border-box;
-}
-
-html {
- scroll-behavior: smooth;
- background: var(--bg);
-}
-
-body {
- margin: 0;
- background:
- radial-gradient(circle at 80% -10%, rgba(157, 140, 255, 0.16), transparent 33rem),
- radial-gradient(circle at 0% 26%, rgba(142, 240, 192, 0.06), transparent 28rem), var(--bg);
- color: var(--fg);
- font-family:
- Inter,
- ui-sans-serif,
- system-ui,
- -apple-system,
- BlinkMacSystemFont,
- "Segoe UI",
- sans-serif;
- line-height: 1.55;
-}
-
-a {
- color: inherit;
-}
-
-button,
-input {
- font: inherit;
-}
-
-button {
- cursor: pointer;
-}
-
-.skip-link {
- position: fixed;
- z-index: 20;
- top: 12px;
- left: 12px;
- padding: 8px 12px;
- border-radius: 8px;
- background: var(--fg);
- color: var(--bg);
- transform: translateY(-150%);
-}
-
-.skip-link:focus {
- transform: translateY(0);
-}
-
-.page {
- width: min(1160px, 100%);
- margin: 0 auto;
- padding: 22px 28px 96px;
-}
-
-.hero {
- padding-bottom: 74px;
-}
-
-.topbar {
- display: flex;
- align-items: center;
- gap: 10px;
- min-height: 44px;
- margin-bottom: 88px;
-}
-
-.brand-mark {
- display: grid;
- width: 28px;
- height: 28px;
- place-items: center;
- border-radius: 8px;
- background: var(--accent);
- color: #161326;
- font-family: Georgia, serif;
- font-weight: 800;
- font-size: 19px;
-}
-
-.brand-name {
- color: var(--fg-muted);
- font-size: 13px;
- font-weight: 700;
- letter-spacing: 0.06em;
- text-transform: uppercase;
-}
-
-.topbar-links {
- display: flex;
- gap: 24px;
- margin-left: auto;
- color: var(--fg-muted);
- font-size: 13px;
-}
-
-.topbar-links a {
- text-decoration: none;
-}
-
-.topbar-links a:hover,
-.topbar-links a:focus-visible {
- color: var(--fg);
-}
-
-.hero-layout {
- display: grid;
- grid-template-columns: minmax(0, 1.5fr) minmax(250px, 0.75fr);
- gap: 70px;
- align-items: center;
-}
-
-.eyebrow {
- margin: 0 0 12px;
- color: var(--mint);
- font-size: 11px;
- font-weight: 800;
- letter-spacing: 0.15em;
- text-transform: uppercase;
-}
-
-.hero h1 {
- max-width: 780px;
- margin: 0;
- color: #fff;
- font-family: Georgia, "Times New Roman", serif;
- font-size: clamp(42px, 7vw, 78px);
- font-weight: 500;
- letter-spacing: -0.055em;
- line-height: 0.98;
-}
-
-.hero-sub {
- max-width: 620px;
- margin: 24px 0 0;
- color: var(--fg-muted);
- font-size: 17px;
-}
-
-.hero-actions {
- display: flex;
- flex-wrap: wrap;
- gap: 12px;
- margin-top: 30px;
-}
-
-.primary-action,
-.secondary-action {
- display: inline-flex;
- align-items: center;
- gap: 12px;
- min-height: 42px;
- padding: 0 16px;
- border-radius: 8px;
- font-size: 13px;
- font-weight: 750;
- text-decoration: none;
-}
-
-.primary-action {
- background: var(--accent);
- color: #161326;
-}
-
-.primary-action:hover,
-.primary-action:focus-visible {
- background: var(--accent-bright);
-}
-
-.secondary-action {
- border: 1px solid var(--border);
- color: var(--fg-muted);
-}
-
-.secondary-action:hover,
-.secondary-action:focus-visible {
- border-color: var(--accent);
- color: var(--fg);
-}
-
-.hero-card {
- position: relative;
- min-height: 280px;
- overflow: hidden;
- border: 1px solid var(--border);
- border-radius: 24px;
- background: linear-gradient(145deg, rgba(157, 140, 255, 0.13), transparent 58%), var(--bg-raised);
-}
-
-.hero-card::after {
- position: absolute;
- inset: 14%;
- border: 1px solid rgba(157, 140, 255, 0.16);
- border-radius: 50%;
- content: "";
-}
-
-.hero-card-orbit {
- position: absolute;
- top: 50%;
- left: 50%;
- width: 72%;
- height: 42%;
- border: 1px solid rgba(142, 240, 192, 0.34);
- border-radius: 50%;
- transform: translate(-50%, -50%) rotate(-25deg);
-}
-
-.orbit-two {
- width: 46%;
- height: 72%;
- border-color: rgba(255, 184, 122, 0.36);
- transform: translate(-50%, -50%) rotate(37deg);
-}
-
-.hero-card-core {
- position: absolute;
- top: 50%;
- left: 50%;
- z-index: 1;
- display: grid;
- width: 58px;
- height: 58px;
- place-items: center;
- border: 1px solid rgba(255, 255, 255, 0.35);
- border-radius: 50%;
- background: rgba(10, 11, 16, 0.88);
- color: var(--accent-bright);
- font-family: Georgia, serif;
- font-size: 28px;
- transform: translate(-50%, -50%);
-}
-
-.hero-card-label {
- position: absolute;
- bottom: 20px;
- left: 22px;
- color: var(--fg-muted);
- font-size: 11px;
- letter-spacing: 0.12em;
- text-transform: uppercase;
-}
-
-.stats {
- display: grid;
- grid-template-columns: repeat(4, 1fr);
- gap: 10px;
- margin-top: 72px;
- border-top: 1px solid var(--border);
- border-bottom: 1px solid var(--border);
-}
-
-.stat {
- display: flex;
- flex-direction: column;
- gap: 3px;
- padding: 17px 0;
-}
-
-.stat strong {
- color: var(--fg);
- font-family: Georgia, serif;
- font-size: 27px;
- font-weight: 500;
-}
-
-.stat span {
- color: var(--fg-muted);
- font-size: 12px;
-}
-
-main {
- scroll-margin-top: 30px;
-}
-
-.section-intro {
- display: flex;
- justify-content: space-between;
- gap: 40px;
- align-items: end;
- margin: 0 0 26px;
-}
-
-.section-intro h2,
-.coverage-heading h2,
-.scope-panel h2 {
- margin: 0;
- color: var(--fg);
- font-family: Georgia, "Times New Roman", serif;
- font-size: clamp(28px, 4vw, 42px);
- font-weight: 500;
- letter-spacing: -0.04em;
- line-height: 1.05;
-}
-
-.section-intro > p {
- max-width: 420px;
- margin: 0;
- color: var(--fg-muted);
- font-size: 14px;
-}
-
-.section {
- scroll-margin-top: 24px;
- margin: 16px 0;
- padding: 28px;
- border: 1px solid var(--border);
- border-radius: 16px;
- background: linear-gradient(135deg, rgba(255, 255, 255, 0.025), transparent 48%), var(--panel);
-}
-
-.section-head {
- display: flex;
- gap: 15px;
- align-items: flex-start;
-}
-
-.section-index {
- flex: 0 0 auto;
- padding-top: 3px;
- color: var(--accent);
- font-size: 12px;
- font-weight: 800;
- letter-spacing: 0.12em;
-}
-
-.section-title-wrap {
- display: flex;
- flex: 1;
- gap: 14px;
- align-items: baseline;
- justify-content: space-between;
-}
-
-.section-title-wrap h2 {
- margin: 0;
- color: var(--fg);
- font-size: 22px;
- font-weight: 700;
- letter-spacing: -0.02em;
-}
-
-.section-issue {
- flex: 0 0 auto;
- max-width: 45%;
- color: var(--fg-faint);
- font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
- font-size: 11px;
- line-height: 1.45;
- text-align: right;
-}
-
-.section-description {
- max-width: 820px;
- margin: 11px 0 22px 29px;
- color: var(--fg-muted);
- font-size: 14px;
-}
-
-.section-body {
- display: grid;
- grid-template-columns: minmax(250px, 0.72fr) minmax(0, 1.28fr);
- gap: 22px;
- align-items: start;
-}
-
-.code-block {
- min-width: 0;
- margin: 0;
- padding: 18px;
- overflow-x: auto;
- border: 1px solid #30364b;
- border-radius: 11px;
- background: #0a0c12;
- color: #bdb3ff;
- font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
- font-size: 12px;
- line-height: 1.65;
-}
-
-.section-demo {
- min-width: 0;
-}
-
-.section-demo-title {
- margin: 0 0 9px;
- color: var(--fg-faint);
- font-size: 10px;
- font-weight: 800;
- letter-spacing: 0.13em;
- text-transform: uppercase;
-}
-
-.section-demo .MafsView {
- width: 100% !important;
- /* Keep the wrapper and the SVG's declared height in the same coordinate
- system. Overriding Mafs' inline height here letterboxed the SVG because
- its viewBox still described the original 500-unit canvas. */
- height: 500px !important;
- overflow: hidden;
- border: 1px solid var(--border);
- border-radius: 11px;
-}
-
-.demo-placeholder {
- display: grid;
- min-height: 300px;
- place-items: center;
- border: 1px dashed var(--border);
- border-radius: 11px;
- color: var(--fg-faint);
- font-size: 12px;
-}
-
-.theme-swatch .MafsView {
- --mafs-bg: #102033;
- --mafs-fg: #f5f1e6;
- --mafs-line-color: #3c5970;
- --grid-line-subdivision-color: #1d3547;
- --mafs-blue: #7dd3fc;
- --mafs-green: #86efac;
- --mafs-orange: #fdba74;
- --mafs-pink: #f9a8d4;
-}
-
-.control-row {
- display: flex;
- gap: 12px;
- align-items: center;
- padding-top: 10px;
-}
-
-.control-row button {
- min-width: 76px;
- padding: 7px 12px;
- border: 1px solid var(--accent);
- border-radius: 7px;
- background: rgba(157, 140, 255, 0.13);
- color: var(--accent-bright);
- font-size: 12px;
- font-weight: 700;
-}
-
-.control-row button:hover,
-.control-row button:focus-visible {
- background: rgba(157, 140, 255, 0.28);
-}
-
-.control-row input {
- width: 100%;
- accent-color: var(--accent);
-}
-
-.coverage-board {
- scroll-margin-top: 30px;
- margin-top: 90px;
- padding: 32px;
- border: 1px solid var(--border);
- border-radius: 16px;
- background: var(--bg-raised);
-}
-
-.coverage-heading {
- display: flex;
- gap: 24px;
- align-items: end;
- justify-content: space-between;
-}
-
-.coverage-heading .eyebrow {
- margin-bottom: 10px;
-}
-
-.coverage-count {
- padding: 8px 11px;
- border: 1px solid var(--border);
- border-radius: 99px;
- color: var(--fg-muted);
- font-size: 11px;
- white-space: nowrap;
-}
-
-.coverage-grid {
- display: grid;
- grid-template-columns: repeat(2, minmax(0, 1fr));
- gap: 12px;
- margin-top: 28px;
-}
-
-.coverage-card {
- padding: 19px;
- border: 1px solid var(--border);
- border-radius: 11px;
- background: var(--panel);
-}
-
-.coverage-card-muted {
- background: transparent;
-}
-
-.coverage-status {
- display: inline-block;
- margin-bottom: 13px;
- font-size: 10px;
- font-weight: 800;
- letter-spacing: 0.12em;
- text-transform: uppercase;
-}
-
-.status-live {
- color: var(--mint);
-}
-
-.status-reviewed {
- color: var(--orange);
-}
-
-.coverage-card h3 {
- margin: 0;
- color: var(--fg);
- font-size: 15px;
-}
-
-.coverage-card p {
- margin: 8px 0 0;
- color: var(--fg-muted);
- font-size: 12px;
-}
-
-.coverage-card .coverage-ids {
- color: var(--accent-bright);
- font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
- font-size: 11px;
-}
-
-.coverage-footnote {
- margin: 24px 0 0;
- color: var(--fg-faint);
- font-size: 12px;
-}
-
-.coverage-footnote code {
- color: var(--accent-bright);
-}
-
-.scope-panel {
- scroll-margin-top: 30px;
- max-width: 760px;
- margin: 24px auto 0;
- padding: 34px 0 10px;
-}
-
-.scope-panel p:last-child {
- max-width: 650px;
- margin: 16px 0 0;
- color: var(--fg-muted);
- font-size: 14px;
-}
-
-.footer {
- margin-top: 68px;
- padding-top: 18px;
- border-top: 1px solid var(--border);
- color: var(--fg-faint);
- font-size: 12px;
-}
-
-.footer code {
- color: var(--accent-bright);
-}
-
-@media (max-width: 820px) {
- .page {
- padding-right: 18px;
- padding-left: 18px;
- }
-
- .topbar {
- margin-bottom: 58px;
- }
-
- .hero-layout {
- grid-template-columns: 1fr;
- gap: 36px;
- }
-
- .hero-card {
- min-height: 190px;
- }
-
- .stats {
- grid-template-columns: repeat(2, 1fr);
- margin-top: 48px;
- }
-
- .section-intro {
- display: block;
- }
-
- .section-intro > p {
- margin-top: 14px;
- }
-
- .section-body {
- grid-template-columns: 1fr;
- }
-}
-
-@media (max-width: 560px) {
- .topbar {
- align-items: flex-start;
- flex-wrap: wrap;
- }
-
- .topbar-links {
- width: 100%;
- margin-left: 38px;
- }
-
- .hero h1 {
- font-size: 48px;
- }
-
- .hero {
- padding-bottom: 50px;
- }
-
- .section,
- .coverage-board {
- padding: 21px;
- }
-
- .section-title-wrap {
- display: block;
- }
-
- .section-issue {
- display: block;
- max-width: none;
- margin-top: 8px;
- text-align: left;
- }
-
- .section-description {
- margin-left: 0;
- }
-
- .coverage-grid {
- grid-template-columns: 1fr;
- }
-
- .coverage-heading {
- display: block;
- }
-
- .coverage-count {
- display: inline-block;
- margin-top: 16px;
- }
-}
diff --git a/sample-site/tsconfig.json b/sample-site/tsconfig.json
deleted file mode 100644
index af6fceb2..00000000
--- a/sample-site/tsconfig.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "compilerOptions": {
- "target": "ES2020",
- "lib": ["ES2020", "DOM", "DOM.Iterable"],
- "module": "ESNext",
- "moduleResolution": "bundler",
- "jsx": "react-jsx",
- "strict": true,
- "esModuleInterop": true,
- "skipLibCheck": true,
- "noEmit": true,
- "isolatedModules": true,
- "forceConsistentCasingInFileNames": true,
- "useDefineForClassFields": true,
- "types": ["vite/client"],
- "paths": {
- "mafs": ["../src/index.tsx"]
- }
- },
- "include": ["src"]
-}
diff --git a/sample-site/verify.mjs b/sample-site/verify.mjs
deleted file mode 100644
index 64e6d1d9..00000000
--- a/sample-site/verify.mjs
+++ /dev/null
@@ -1,39 +0,0 @@
-import { chromium } from "@playwright/test"
-
-const browser = await chromium.launch()
-const page = await browser.newPage({ viewport: { width: 1200, height: 800 } })
-await page.goto("http://localhost:4173", { waitUntil: "networkidle" })
-
-const report = {}
-
-async function activeDemo(selector) {
- const demo = page.locator(selector)
- await demo.scrollIntoViewIfNeeded()
- await page.waitForTimeout(150)
- return demo
-}
-
-// Vector field demo: should be ~10 path layers (one per opacity bucket), not one per arrow
-report.vectorFieldPaths = await (await activeDemo("#vectors .section-demo")).locator("path").count()
-
-// Discontinuities demo: tan plot path should contain multiple "M" subpath starts
-const tanPath = await (
- await activeDemo("#discontinuities .section-demo")
-)
- .locator("path")
- .first()
- .getAttribute("d")
-report.tanSubpaths = (tanPath.match(/M /g) || []).length
-
-// Text anchors demo: should have text nodes
-report.textAnchorLabels = await (await activeDemo("#text .section-demo")).locator("text").count()
-
-// Latex demo: rendered math should produce KaTeX spans inside the HTML overlay
-report.latexSpans = await (
- await activeDemo("#latex .section-demo")
-)
- .locator(".mafs-latex-label span")
- .count()
-
-console.log(JSON.stringify(report, null, 2))
-await browser.close()
diff --git a/sample-site/vite.config.ts b/sample-site/vite.config.ts
deleted file mode 100644
index 99c71fc4..00000000
--- a/sample-site/vite.config.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { defineConfig } from "vite"
-import react from "@vitejs/plugin-react"
-import { resolve } from "node:path"
-
-export default defineConfig({
- plugins: [react()],
- resolve: {
- // The Mafs source imports React from the repo root; make sure the site
- // only ever uses a single copy of React.
- dedupe: ["react", "react-dom"],
- alias: {
- mafs: resolve(__dirname, "../src/index.tsx"),
- },
- },
-})
diff --git a/scripts/publish-branch.ts b/scripts/publish-branch.ts
deleted file mode 100644
index dcb5e82b..00000000
--- a/scripts/publish-branch.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import childProcess from "node:child_process"
-import fs from "node:fs"
-
-const shortCommit = childProcess.execSync("git rev-parse --short HEAD", { encoding: "utf8" }).trim()
-const branch = childProcess.execSync("git rev-parse --abbrev-ref HEAD", { encoding: "utf8" }).trim()
-
-const tag = branch === "main" ? "canary" : "experimental"
-const version = `0.0.0-${shortCommit}`
-
-console.log(`Publishing ${version} to npm...`)
-
-const packageJson = JSON.parse(fs.readFileSync("package.json", "utf8"))
-packageJson.version = version
-fs.writeFileSync("package.json", JSON.stringify(packageJson, null, 2))
-
-fs.writeFileSync(".npmrc", "//registry.npmjs.org/:_authToken=${NPM_TOKEN}")
-
-childProcess.execSync("pnpm build", { stdio: "inherit" })
-childProcess.execSync(`npm publish --ignore-scripts --access public --tag ${tag}`, {
- stdio: "inherit",
- env: { ...process.env },
-})
diff --git a/scripts/testgen.ts b/scripts/testgen.ts
deleted file mode 100644
index 14436a00..00000000
--- a/scripts/testgen.ts
+++ /dev/null
@@ -1,84 +0,0 @@
-import glob from "fast-glob"
-import path from "path"
-import fs from "fs-extra"
-import prettier from "prettier"
-
-const SKIP = [
- // Animations are flaky
- /animated/i,
- /bezier/i,
-
- // KaTeX doesn't run correctly in the Playwright frame
- /latex/i,
-]
-
-const mafsRoot = path.join(import.meta.dirname, "..")
-
-const guideExamplesFolder = path.join(mafsRoot, "docs/components/guide-examples")
-
-const testFile = path.join(mafsRoot, "e2e/generated-vrt.spec.tsx")
-
-const examples = glob
- .sync(`${guideExamplesFolder}/**/*.tsx`, { absolute: true })
- .filter((filepath) => !SKIP.some((skip) => skip.test(filepath)))
-
-let testFileContent = `
-// THIS FILE IS GENERATED BY ./${path.relative(mafsRoot, import.meta.filename)}
-/* eslint-disable @typescript-eslint/no-explicit-any */
-
-import { expect, test } from "@playwright/experimental-ct-react"
-import {Page} from "@playwright/test"
-import { TestContextProvider } from "../src/context/TestContext"
-
-`
-
-function formatName(name: string) {
- return name
- .split("-")
- .map((word) => word[0].toUpperCase() + word.slice(1))
- .join("")
-}
-
-for (const example of examples) {
- const importedAs = formatName(path.basename(example, ".tsx"))
- const importedFrom = path.relative(path.dirname(testFile), example.replace(/\.tsx$/, ""))
-
- testFileContent += `import ${importedAs} from "${importedFrom}"\n`
-}
-
-testFileContent += `
- async function visualTest(mount: any, page: Page, node: React.ReactElement) {
- const component = await mount(node)
- if ((await component.locator(".MafsView").count()) === 0) {
- await expect(component).toHaveClass("MafsView")
- } else {
- await expect(component.locator(".MafsView")).toHaveClass("MafsView")
- }
- await expect(page).toHaveScreenshot()
- }
-`
-
-for (const example of examples) {
- const dirname = path.relative(path.join(guideExamplesFolder, ".."), path.dirname(example))
- const testTitle = `${dirname}/${formatName(path.basename(example, ".tsx"))}`
-
- testFileContent += `
- test("${testTitle}", async ({ mount, page }) =>
- await visualTest(
- mount,
- page,
-
- <${formatName(path.basename(example, ".tsx"))} />
-
- ))
- `
-}
-
-prettier.resolveConfig(import.meta.filename).then(async (config) => {
- const formattedTestFileContent = await prettier.format(testFileContent, {
- parser: "typescript",
- ...config,
- })
-
- fs.writeFileSync(testFile, formattedTestFileContent)
-})
diff --git a/src/animation/useStopwatch.test.tsx b/src/animation/useStopwatch.test.tsx
deleted file mode 100644
index a414948b..00000000
--- a/src/animation/useStopwatch.test.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-import { describe, it, expect, afterEach } from "vitest"
-import { createRoot, Root } from "react-dom/client"
-import { act } from "react"
-import { useStopwatch, Stopwatch, StopwatchArguments } from "./useStopwatch"
-
-let container: HTMLDivElement
-let root: Root
-
-// Renders the hook and returns a holder whose `current` always reflects the
-// most recent render, mirroring @testing-library's renderHook result.
-function renderHook(args?: StopwatchArguments): { current: Stopwatch } {
- const holder: { current: Stopwatch } = { current: undefined as never }
- function Test() {
- holder.current = useStopwatch(args)
- return null
- }
-
- container = document.createElement("div")
- root = createRoot(container)
- act(() => root.render( ))
- return holder
-}
-
-afterEach(() => {
- act(() => root.unmount())
- container.remove()
-})
-
-describe("useStopwatch (#65)", () => {
- it("starts at startTime and is not playing", () => {
- const result = renderHook({ startTime: 2, endTime: 10 })
- expect(result.current.time).toBe(2)
- expect(result.current.playing).toBe(false)
- })
-
- it("jumps to a key frame with setTime", () => {
- const result = renderHook({ startTime: 0, endTime: 10 })
- act(() => result.current.setTime(5))
- expect(result.current.time).toBe(5)
- })
-
- it("resets back to startTime on stop", () => {
- const result = renderHook({ startTime: 1, endTime: 10 })
- act(() => result.current.setTime(7))
- expect(result.current.time).toBe(7)
- act(() => result.current.stop())
- expect(result.current.time).toBe(1)
- })
-
- it("plays in reverse when reversed is set", () => {
- // A reversed stopwatch begins at endTime and counts down to startTime.
- const result = renderHook({ startTime: 0, endTime: 10, reversed: true })
- expect(result.current.time).toBe(10)
-
- // Moving the timeline to 25% should display 75% of the way through.
- act(() => result.current.setTime(2.5))
- expect(result.current.time).toBe(7.5)
- })
-
- it("applies an easing function to the displayed time", () => {
- const square = (t: number) => t * t
- const result = renderHook({ startTime: 0, endTime: 10, ease: square })
-
- // setTime positions the underlying timeline; the displayed time is eased.
- act(() => result.current.setTime(5)) // timeline at 50% -> eased to 25% -> 2.5
- expect(result.current.rawTime).toBe(5)
- expect(result.current.time).toBe(2.5)
- })
-
- it("combines reversing and easing", () => {
- const square = (t: number) => t * t
- const result = renderHook({ startTime: 0, endTime: 10, reversed: true, ease: square })
-
- // Timeline at 25% -> reversed to 75% -> eased (0.75^2) -> 5.625
- act(() => result.current.setTime(2.5))
- expect(result.current.time).toBeCloseTo(5.625)
- })
-})
diff --git a/src/context/TestContext.tsx b/src/context/TestContext.tsx
deleted file mode 100644
index 5b810931..00000000
--- a/src/context/TestContext.tsx
+++ /dev/null
@@ -1,10 +0,0 @@
-import * as React from "react"
-interface TestContextShape {
- overrideHeight?: number
-}
-
-export const TestContext = React.createContext({
- overrideHeight: undefined,
-})
-
-export const TestContextProvider = TestContext.Provider
diff --git a/src/display/MovablePointDisplay.test.ts b/src/display/MovablePointDisplay.test.ts
deleted file mode 100644
index 653caa0b..00000000
--- a/src/display/MovablePointDisplay.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { describe, it, expect } from "vitest"
-import { MovablePointDisplay } from "./MovablePointDisplay"
-
-describe("MovablePointDisplay", () => {
- it("has a human-readable displayName", () => {
- expect(MovablePointDisplay.displayName).toBe("MovablePointDisplay")
- })
-})
diff --git a/src/display/Plot/PlotUtils.test.ts b/src/display/Plot/PlotUtils.test.ts
deleted file mode 100644
index a668975a..00000000
--- a/src/display/Plot/PlotUtils.test.ts
+++ /dev/null
@@ -1,54 +0,0 @@
-import { test, expect } from "vitest"
-import { sample, sampleParametric } from "./PlotUtils"
-
-test("sample", () => {
- const ts: number[] = []
-
- sample({
- domain: [0, 8],
- minDepth: 3,
- maxDepth: 3,
- error: () => Number.POSITIVE_INFINITY,
- fn: (t) => t,
- lerp: () => 0,
- onPoint(t) {
- ts.push(t)
- },
- threshold: 0,
- })
-
- // Since the sample function deliberately introduces randomness, we round to test.
- const roundedTs = ts.map(Math.round)
-
- expect(roundedTs).toEqual([0, 1, 2, 3, 4, 5, 6, 7, 8])
-})
-
-function countSubpaths(path: string): number {
- // Each subpath starts with an "M" command; "L" commands continue one.
- return path.split("M").length - 1
-}
-
-test("sampleParametric produces a single subpath by default", () => {
- const path = sampleParametric((x) => [x, x], [0, 8], 3, 3, 0)
- expect(path.startsWith("M")).toBe(true)
- expect(countSubpaths(path)).toBe(1)
-})
-
-test("sampleParametric breaks the path at exclusion points (#133)", () => {
- const path = sampleParametric((x) => [x, x], [0, 8], 3, 3, 0, [4])
- // A single exclusion should split the curve into exactly two subpaths.
- expect(countSubpaths(path)).toBe(2)
-})
-
-test("sampleParametric breaks the path at multiple exclusion points (#133)", () => {
- const path = sampleParametric((x) => [x, x], [0, 9], 3, 3, 0, [3, 6])
- expect(countSubpaths(path)).toBe(3)
-})
-
-test("sampleParametric breaks the path when the function is not finite", () => {
- // Returns a non-finite y for a band in the middle of the domain, so there are
- // finite points on both sides of the gap. A high minimum depth guarantees the
- // sampler evaluates points inside the band.
- const path = sampleParametric((x) => [x, x > 3 && x < 5 ? NaN : x], [0, 8], 8, 8, 0)
- expect(countSubpaths(path)).toBeGreaterThan(1)
-})
diff --git a/src/display/Plot/__image_snapshots__/vector-field-test-tsx-plot-field-renders-1-snap.png b/src/display/Plot/__image_snapshots__/vector-field-test-tsx-plot-field-renders-1-snap.png
deleted file mode 100644
index 6bc70772..00000000
Binary files a/src/display/Plot/__image_snapshots__/vector-field-test-tsx-plot-field-renders-1-snap.png and /dev/null differ
diff --git a/src/display/Plot/__image_snapshots__/vector-field-test-tsx-plot-field-supports-opacity-functions-1-snap.png b/src/display/Plot/__image_snapshots__/vector-field-test-tsx-plot-field-supports-opacity-functions-1-snap.png
deleted file mode 100644
index 072b76b9..00000000
Binary files a/src/display/Plot/__image_snapshots__/vector-field-test-tsx-plot-field-supports-opacity-functions-1-snap.png and /dev/null differ
diff --git a/src/interaction/MovablePoint.test.ts b/src/interaction/MovablePoint.test.ts
deleted file mode 100644
index 8b7a18a8..00000000
--- a/src/interaction/MovablePoint.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { describe, it, expect } from "vitest"
-import { MovablePoint } from "./MovablePoint"
-
-describe("MovablePoint", () => {
- it("has a human-readable displayName", () => {
- expect(MovablePoint.displayName).toBe("MovablePoint")
- })
-})
diff --git a/src/interaction/useMovablePoint.test.tsx b/src/interaction/useMovablePoint.test.tsx
deleted file mode 100644
index c9a4e191..00000000
--- a/src/interaction/useMovablePoint.test.tsx
+++ /dev/null
@@ -1,72 +0,0 @@
-import { describe, it, expect, afterEach } from "vitest"
-import { createRoot, Root } from "react-dom/client"
-import { act } from "react"
-import { useMovablePoint, UseMovablePoint } from "./useMovablePoint"
-import type { vec } from "../vec"
-
-let container: HTMLDivElement
-let root: Root
-
-// Renders the hook and returns a holder whose `current` always reflects the
-// most recent render, mirroring @testing-library's renderHook result.
-function renderHook(
- initialPoint: vec.Vector2,
- args?: Parameters[1],
-): { current: UseMovablePoint } {
- const holder: { current: UseMovablePoint } = { current: undefined as never }
- function Test() {
- holder.current = useMovablePoint(initialPoint, args)
- return null
- }
-
- container = document.createElement("div")
- root = createRoot(container)
- act(() => root.render( ))
- return holder
-}
-
-afterEach(() => {
- act(() => root.unmount())
- container.remove()
-})
-
-describe("useMovablePoint constraints (#99)", () => {
- it("constrains the point upon initialization", () => {
- const result = renderHook([1.7, 2.3], {
- constrain: ([x]) => [Math.round(x), 0],
- })
-
- // The initial point [1.7, 2.3] should be snapped to [2, 0].
- expect(result.current.point).toEqual([2, 0])
- expect(result.current.x).toBe(2)
- expect(result.current.y).toBe(0)
- })
-
- it("constrains the point when setPoint is called", () => {
- const result = renderHook([0, 0], {
- constrain: ([x]) => [Math.round(x), 0],
- })
-
- act(() => result.current.setPoint([4.2, 9]))
- expect(result.current.point).toEqual([4, 0])
- })
-
- it("leaves the point unconstrained when no constraint is given", () => {
- const result = renderHook([1.5, 2.5])
- expect(result.current.point).toEqual([1.5, 2.5])
- })
-
- it("constrains horizontal movement to the initial y value", () => {
- const result = renderHook([1, 3], { constrain: "horizontal" })
-
- act(() => result.current.setPoint([7, 100]))
- expect(result.current.point).toEqual([7, 3])
- })
-
- it("constrains vertical movement to the initial x value", () => {
- const result = renderHook([2, 1], { constrain: "vertical" })
-
- act(() => result.current.setPoint([100, 5]))
- expect(result.current.point).toEqual([2, 5])
- })
-})
diff --git a/src/math.test.ts b/src/math.test.ts
deleted file mode 100644
index d4173183..00000000
--- a/src/math.test.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-import { describe, it, expect } from "vitest"
-import { clamp, range, round } from "./math"
-
-describe("clamp", () => {
- it("clamps a number between two values", () => {
- expect(clamp(0, 1, 2)).toBe(1)
- expect(clamp(10, 0, 1)).toBe(1)
- expect(clamp(-10, 0, 1)).toBe(0)
- })
-})
-
-describe("range", () => {
- it("generates a range", () => {
- expect(range(0, 10)).toEqual([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
- })
-
- it("generates a range with a step", () => {
- expect(range(0, 10, 2)).toEqual([0, 2, 4, 6, 8, 10])
- })
-
- it("handles when the step introduces weird floating point errors", () => {
- const problematicRange = range(0, 0.6, 0.2)
- expect(problematicRange[0]).toEqual(0)
- expect(problematicRange[1]).toBeCloseTo(0.2)
- expect(problematicRange[2]).toBeCloseTo(0.4)
- expect(problematicRange[3]).toEqual(0.6)
- })
-})
-
-describe("round", () => {
- it("rounds toward zero in the trivial case", () => {
- expect(round(0.2)).toEqual(0)
- expect(round(-0.2)).toEqual(-0)
-
- expect(round(0.12, 1)).toEqual(0.1)
- expect(round(-0.12, 1)).toEqual(-0.1)
- })
-
- it("rounds away from zero in the trivial case", () => {
- expect(round(0.8)).toEqual(1)
- expect(round(-0.8)).toEqual(-1)
-
- expect(round(0.08, 1)).toEqual(0.1)
- expect(round(-0.08, 1)).toEqual(-0.1)
- })
-
- it("rounds away from zero with 0.5, and toward zero with -0.5 (JS quirk, but acceptable for internal use)", () => {
- expect(round(0.5)).toEqual(1)
- expect(round(-0.5)).toEqual(-0)
- })
-})
diff --git a/src/testSetup.ts b/src/testSetup.ts
deleted file mode 100644
index 390c0688..00000000
--- a/src/testSetup.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-const reactGlobals = globalThis as typeof globalThis & {
- IS_REACT_ACT_ENVIRONMENT?: boolean
-}
-
-reactGlobals.IS_REACT_ACT_ENVIRONMENT = true
diff --git a/src/view/Mafs.tsx b/src/view/Mafs.tsx
index 31e91f18..3535db5e 100644
--- a/src/view/Mafs.tsx
+++ b/src/view/Mafs.tsx
@@ -12,7 +12,6 @@ import { MafsContext } from "../context/MafsContext"
import invariant from "tiny-invariant"
import { useCamera, PanBounds } from "../gestures/useCamera"
import { useWheelEnabler } from "../gestures/useWheelEnabler"
-import { TestContext } from "../context/TestContext"
import { Debug } from "../debug"
export type MafsProps = React.PropsWithChildren<{
@@ -73,8 +72,7 @@ export function Mafs({
debug = false,
onClick = undefined,
}: MafsProps) {
- const testContext = React.useContext(TestContext)
- const height = testContext.overrideHeight ?? propHeight
+ const height = propHeight
const desiredCssWidth = propWidth === "auto" ? "100%" : `${propWidth}px`
diff --git a/tests/frameworks/frameworks.spec.tsx b/tests/frameworks/frameworks.spec.tsx
deleted file mode 100644
index 6686816b..00000000
--- a/tests/frameworks/frameworks.spec.tsx
+++ /dev/null
@@ -1,98 +0,0 @@
-import { ChildProcessWithoutNullStreams, execSync, spawn } from "node:child_process"
-import path from "node:path"
-import net from "node:net"
-import { setTimeout } from "node:timers/promises"
-
-import { test, expect, Page } from "@playwright/test"
-
-test("vite", async ({ page }) => {
- await testDevServer(page, "./vite", "pnpm", (port) => ["run", "dev", "--port", port])
-})
-
-test("vite - prod", async ({ page }) => {
- execSync("pnpm run build", { cwd: path.join(import.meta.dirname, "./vite") })
- await testDevServer(page, "./vite", "pnpm", (port) => ["run", "preview", "--port", port])
-})
-
-test("nextjs", async ({ page }) => {
- await testDevServer(page, "./nextjs", "pnpm", (port) => ["run", "dev", "--port", port], {
- NODE_ENV: "development",
- })
-})
-
-test("nextjs - prod", async ({ page }) => {
- execSync("pnpm run build", { cwd: path.join(import.meta.dirname, "./nextjs") })
- await testDevServer(page, "./nextjs", "pnpm", (port) => ["run", "start", "--port", port], {
- NODE_ENV: "production",
- })
-})
-
-async function testDevServer(
- page: Page,
- dirname: string,
- command: string,
- args: (port) => string[],
- extraEnv: Record = {},
-) {
- const errors: string[] = []
- page.on("console", (msg) => {
- if (msg.type() === "error") {
- errors.push(msg.text())
- }
- })
-
- const port = await getFreePort()
-
- const pd = spawn(command, args(port), {
- cwd: path.join(import.meta.dirname, dirname),
- stdio: "inherit",
- shell: true,
- env: { ...process.env, NODE_ENV: undefined, ...extraEnv } as any,
- })
-
- pd.on("exit", (code, signal) => {
- if (code !== 0 && signal !== "SIGINT") {
- throw new Error(`Process exited with code ${code} and signal ${signal}`)
- }
- })
-
- await waitForPort(port, 10_000)
-
- try {
- await page.goto(`http://localhost:${port}`)
- await expect(page).toHaveScreenshot()
- await expect(page.locator("svg")).toContainText("Mafs is working!")
- } finally {
- pd.kill("SIGINT")
- }
-
- await expect(errors).toEqual([])
-}
-
-async function waitForPort(port: number, timeout: number) {
- const start = performance.now()
- while (performance.now() - start < timeout) {
- try {
- const response = await fetch(`http://localhost:${port}`)
- if (response.ok) {
- return
- }
- } catch (e) {
- // Ignore errors and continue polling
- }
- await setTimeout(100)
- }
- throw new Error(`Port ${port} did not start responding within ${timeout}ms`)
-}
-
-async function getFreePort(): Promise {
- return new Promise((res) => {
- const srv = net.createServer()
- // Port 0 signals the OS to give us a random, available port.
- srv.listen(0, () => {
- // @ts-expect-error - don't care lol
- const port = srv.address().port
- srv.close(() => res(port))
- })
- })
-}
diff --git a/tests/frameworks/frameworks.spec.tsx-snapshots/nextjs---prod-1-frameworks-darwin.png b/tests/frameworks/frameworks.spec.tsx-snapshots/nextjs---prod-1-frameworks-darwin.png
deleted file mode 100644
index 4a638278..00000000
Binary files a/tests/frameworks/frameworks.spec.tsx-snapshots/nextjs---prod-1-frameworks-darwin.png and /dev/null differ
diff --git a/tests/frameworks/frameworks.spec.tsx-snapshots/nextjs-1-frameworks-darwin.png b/tests/frameworks/frameworks.spec.tsx-snapshots/nextjs-1-frameworks-darwin.png
deleted file mode 100644
index 4a638278..00000000
Binary files a/tests/frameworks/frameworks.spec.tsx-snapshots/nextjs-1-frameworks-darwin.png and /dev/null differ
diff --git a/tests/frameworks/frameworks.spec.tsx-snapshots/vite---prod-1-frameworks-darwin.png b/tests/frameworks/frameworks.spec.tsx-snapshots/vite---prod-1-frameworks-darwin.png
deleted file mode 100644
index 4a638278..00000000
Binary files a/tests/frameworks/frameworks.spec.tsx-snapshots/vite---prod-1-frameworks-darwin.png and /dev/null differ
diff --git a/tests/frameworks/frameworks.spec.tsx-snapshots/vite-1-frameworks-darwin.png b/tests/frameworks/frameworks.spec.tsx-snapshots/vite-1-frameworks-darwin.png
deleted file mode 100644
index 4a638278..00000000
Binary files a/tests/frameworks/frameworks.spec.tsx-snapshots/vite-1-frameworks-darwin.png and /dev/null differ
diff --git a/tests/frameworks/nextjs/.gitignore b/tests/frameworks/nextjs/.gitignore
deleted file mode 100644
index fd3dbb57..00000000
--- a/tests/frameworks/nextjs/.gitignore
+++ /dev/null
@@ -1,36 +0,0 @@
-# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
-
-# dependencies
-/node_modules
-/.pnp
-.pnp.js
-.yarn/install-state.gz
-
-# testing
-/coverage
-
-# next.js
-/.next/
-/out/
-
-# production
-/build
-
-# misc
-.DS_Store
-*.pem
-
-# debug
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-
-# local env files
-.env*.local
-
-# vercel
-.vercel
-
-# typescript
-*.tsbuildinfo
-next-env.d.ts
diff --git a/tests/frameworks/nextjs/next.config.mjs b/tests/frameworks/nextjs/next.config.mjs
deleted file mode 100644
index 4f144231..00000000
--- a/tests/frameworks/nextjs/next.config.mjs
+++ /dev/null
@@ -1,8 +0,0 @@
-/** @type {import('next').NextConfig} */
-const nextConfig = {
- eslint: {
- ignoreDuringBuilds: true,
- },
-}
-
-export default nextConfig
diff --git a/tests/frameworks/nextjs/package.json b/tests/frameworks/nextjs/package.json
deleted file mode 100644
index b4283ace..00000000
--- a/tests/frameworks/nextjs/package.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "name": "nextjs",
- "version": "0.1.0",
- "private": true,
- "scripts": {
- "dev": "next dev",
- "build": "next build",
- "start": "next start",
- "lint": "next lint"
- },
- "dependencies": {
- "mafs": "file:../mafs.tgz",
- "next": "14.2.15",
- "react": "^18.3.1",
- "react-dom": "^18.3.1"
- },
- "devDependencies": {
- "@types/node": "^20.19.43",
- "@types/react": "^18.3.31",
- "@types/react-dom": "^18.3.7",
- "typescript": "^5.9.3"
- }
-}
diff --git a/tests/frameworks/nextjs/src/app/globals.css b/tests/frameworks/nextjs/src/app/globals.css
deleted file mode 100644
index 29938c80..00000000
--- a/tests/frameworks/nextjs/src/app/globals.css
+++ /dev/null
@@ -1,8 +0,0 @@
-:root {
- color-scheme: light dark;
-}
-
-* {
- margin: 0;
- padding: 0;
-}
diff --git a/tests/frameworks/nextjs/src/app/layout.tsx b/tests/frameworks/nextjs/src/app/layout.tsx
deleted file mode 100644
index 7170962e..00000000
--- a/tests/frameworks/nextjs/src/app/layout.tsx
+++ /dev/null
@@ -1,21 +0,0 @@
-import type { Metadata } from "next"
-import "./globals.css"
-import "mafs/core.css"
-import "mafs/font.css"
-
-export const metadata: Metadata = {
- title: "Create Next App",
- description: "Generated by create next app",
-}
-
-export default function RootLayout({
- children,
-}: Readonly<{
- children: React.ReactNode
-}>) {
- return (
-
- {children}
-
- )
-}
diff --git a/tests/frameworks/nextjs/src/app/page.tsx b/tests/frameworks/nextjs/src/app/page.tsx
deleted file mode 100644
index 62eca4ac..00000000
--- a/tests/frameworks/nextjs/src/app/page.tsx
+++ /dev/null
@@ -1,16 +0,0 @@
-"use client"
-
-import { Coordinates, Mafs, Text } from "mafs"
-
-export default function Home() {
- return (
-
-
-
-
- Mafs is working!
-
-
-
- )
-}
diff --git a/tests/frameworks/nextjs/tsconfig.json b/tests/frameworks/nextjs/tsconfig.json
deleted file mode 100644
index 7b285893..00000000
--- a/tests/frameworks/nextjs/tsconfig.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "compilerOptions": {
- "lib": ["dom", "dom.iterable", "esnext"],
- "allowJs": true,
- "skipLibCheck": true,
- "strict": true,
- "noEmit": true,
- "esModuleInterop": true,
- "module": "esnext",
- "moduleResolution": "bundler",
- "resolveJsonModule": true,
- "isolatedModules": true,
- "jsx": "preserve",
- "incremental": true,
- "plugins": [
- {
- "name": "next"
- }
- ],
- "paths": {
- "@/*": ["./src/*"]
- }
- },
- "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
- "exclude": ["node_modules"]
-}
diff --git a/tests/frameworks/pnpm-lock.yaml b/tests/frameworks/pnpm-lock.yaml
deleted file mode 100644
index df90b2ca..00000000
--- a/tests/frameworks/pnpm-lock.yaml
+++ /dev/null
@@ -1,2322 +0,0 @@
-lockfileVersion: '9.0'
-
-settings:
- autoInstallPeers: true
- excludeLinksFromLockfile: false
-
-importers:
-
- nextjs:
- dependencies:
- mafs:
- specifier: file:../mafs.tgz
- version: file:mafs.tgz(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- next:
- specifier: 14.2.15
- version: 14.2.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- react:
- specifier: ^18.3.1
- version: 18.3.1
- react-dom:
- specifier: ^18.3.1
- version: 18.3.1(react@18.3.1)
- devDependencies:
- '@types/node':
- specifier: ^20.19.43
- version: 20.19.43
- '@types/react':
- specifier: ^18.3.31
- version: 18.3.31
- '@types/react-dom':
- specifier: ^18.3.7
- version: 18.3.7(@types/react@18.3.31)
- typescript:
- specifier: ^5.9.3
- version: 5.9.3
-
- vite:
- dependencies:
- mafs:
- specifier: file:../mafs.tgz
- version: file:mafs.tgz(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- react:
- specifier: ^18.3.1
- version: 18.3.1
- react-dom:
- specifier: ^18.3.1
- version: 18.3.1(react@18.3.1)
- devDependencies:
- '@eslint/js':
- specifier: ^9.39.5
- version: 9.39.5
- '@types/react':
- specifier: ^18.3.31
- version: 18.3.31
- '@types/react-dom':
- specifier: ^18.3.7
- version: 18.3.7(@types/react@18.3.31)
- '@vitejs/plugin-react':
- specifier: ^4.7.0
- version: 4.7.0(vite@5.4.21(@types/node@20.19.43))
- eslint:
- specifier: ^9.39.5
- version: 9.39.5
- eslint-plugin-react-hooks:
- specifier: 5.1.0-rc-fb9a90fa48-20240614
- version: 5.1.0-rc-fb9a90fa48-20240614(eslint@9.39.5)
- eslint-plugin-react-refresh:
- specifier: ^0.4.26
- version: 0.4.26(eslint@9.39.5)
- globals:
- specifier: ^15.15.0
- version: 15.15.0
- typescript:
- specifier: ^5.9.3
- version: 5.9.3
- typescript-eslint:
- specifier: ^8.67.0
- version: 8.67.0(eslint@9.39.5)(typescript@5.9.3)
- vite:
- specifier: ^5.4.21
- version: 5.4.21(@types/node@20.19.43)
-
-packages:
-
- '@babel/code-frame@7.29.7':
- resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/compat-data@7.29.7':
- resolution: {integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==}
- engines: {node: '>=6.9.0'}
-
- '@babel/core@7.29.7':
- resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==}
- engines: {node: '>=6.9.0'}
-
- '@babel/generator@7.29.8':
- resolution: {integrity: sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-compilation-targets@7.29.7':
- resolution: {integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-globals@7.29.7':
- resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-module-imports@7.29.7':
- resolution: {integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-module-transforms@7.29.7':
- resolution: {integrity: sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0
-
- '@babel/helper-plugin-utils@7.29.7':
- resolution: {integrity: sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-string-parser@7.29.7':
- resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-validator-identifier@7.29.7':
- resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-validator-option@7.29.7':
- resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helpers@7.29.7':
- resolution: {integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==}
- engines: {node: '>=6.9.0'}
-
- '@babel/parser@7.29.8':
- resolution: {integrity: sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==}
- engines: {node: '>=6.0.0'}
- hasBin: true
-
- '@babel/plugin-transform-react-jsx-self@7.29.7':
- resolution: {integrity: sha512-TL0hMc9xzy86VD31nUiwzd5otRAcyEPcsegCxolO0PvcXuH1v0kECe/UIznYFihpkvU5wg/jk4v0TTEFfm53fw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-transform-react-jsx-source@7.29.7':
- resolution: {integrity: sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/template@7.29.7':
- resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==}
- engines: {node: '>=6.9.0'}
-
- '@babel/traverse@7.29.8':
- resolution: {integrity: sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==}
- engines: {node: '>=6.9.0'}
-
- '@babel/types@7.29.8':
- resolution: {integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==}
- engines: {node: '>=6.9.0'}
-
- '@esbuild/aix-ppc64@0.21.5':
- resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==}
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [aix]
-
- '@esbuild/android-arm64@0.21.5':
- resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [android]
-
- '@esbuild/android-arm@0.21.5':
- resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [android]
-
- '@esbuild/android-x64@0.21.5':
- resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [android]
-
- '@esbuild/darwin-arm64@0.21.5':
- resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [darwin]
-
- '@esbuild/darwin-x64@0.21.5':
- resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [darwin]
-
- '@esbuild/freebsd-arm64@0.21.5':
- resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [freebsd]
-
- '@esbuild/freebsd-x64@0.21.5':
- resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [freebsd]
-
- '@esbuild/linux-arm64@0.21.5':
- resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [linux]
-
- '@esbuild/linux-arm@0.21.5':
- resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [linux]
-
- '@esbuild/linux-ia32@0.21.5':
- resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [linux]
-
- '@esbuild/linux-loong64@0.21.5':
- resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==}
- engines: {node: '>=12'}
- cpu: [loong64]
- os: [linux]
-
- '@esbuild/linux-mips64el@0.21.5':
- resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==}
- engines: {node: '>=12'}
- cpu: [mips64el]
- os: [linux]
-
- '@esbuild/linux-ppc64@0.21.5':
- resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==}
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [linux]
-
- '@esbuild/linux-riscv64@0.21.5':
- resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==}
- engines: {node: '>=12'}
- cpu: [riscv64]
- os: [linux]
-
- '@esbuild/linux-s390x@0.21.5':
- resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==}
- engines: {node: '>=12'}
- cpu: [s390x]
- os: [linux]
-
- '@esbuild/linux-x64@0.21.5':
- resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [linux]
-
- '@esbuild/netbsd-x64@0.21.5':
- resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [netbsd]
-
- '@esbuild/openbsd-x64@0.21.5':
- resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [openbsd]
-
- '@esbuild/sunos-x64@0.21.5':
- resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [sunos]
-
- '@esbuild/win32-arm64@0.21.5':
- resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [win32]
-
- '@esbuild/win32-ia32@0.21.5':
- resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [win32]
-
- '@esbuild/win32-x64@0.21.5':
- resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [win32]
-
- '@eslint-community/eslint-utils@4.10.1':
- resolution: {integrity: sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- peerDependencies:
- eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
-
- '@eslint-community/regexpp@4.12.2':
- resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==}
- engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
-
- '@eslint/config-array@0.21.2':
- resolution: {integrity: sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/config-helpers@0.4.2':
- resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/core@0.17.0':
- resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/eslintrc@3.3.6':
- resolution: {integrity: sha512-l2Ul9PrHsPCKcEY/ac7VgFj9D80C7S68sOKc618SyHDPK36s1XcFebXY0iTzUVn4Yq+YbwvSnDmCz9yxjX+QrA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/js@9.39.5':
- resolution: {integrity: sha512-QywQuszQh77pIXCsq998c8hbhSTI/azTty1Z6N53dmAudKHhy573j3yvRLsX2BSp8YpLtoCEG8E9DJe+8zUh4A==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/object-schema@2.1.7':
- resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/plugin-kit@0.4.1':
- resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@humanfs/core@0.19.2':
- resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==}
- engines: {node: '>=18.18.0'}
-
- '@humanfs/node@0.16.8':
- resolution: {integrity: sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==}
- engines: {node: '>=18.18.0'}
-
- '@humanfs/types@0.15.0':
- resolution: {integrity: sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==}
- engines: {node: '>=18.18.0'}
-
- '@humanwhocodes/module-importer@1.0.1':
- resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
- engines: {node: '>=12.22'}
-
- '@humanwhocodes/retry@0.4.3':
- resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
- engines: {node: '>=18.18'}
-
- '@jridgewell/gen-mapping@0.3.13':
- resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
-
- '@jridgewell/remapping@2.3.5':
- resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==}
-
- '@jridgewell/resolve-uri@3.1.2':
- resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
- engines: {node: '>=6.0.0'}
-
- '@jridgewell/sourcemap-codec@1.5.5':
- resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
-
- '@jridgewell/trace-mapping@0.3.31':
- resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
-
- '@juggle/resize-observer@3.4.0':
- resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==}
-
- '@napi-rs/lzma-linux-x64-gnu@1.5.1':
- resolution: {integrity: sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ==}
- engines: {node: ^22.20 || ^24.12 || >=25}
- cpu: [x64]
- os: [linux]
-
- '@next/env@14.2.15':
- resolution: {integrity: sha512-S1qaj25Wru2dUpcIZMjxeMVSwkt8BK4dmWHHiBuRstcIyOsMapqT4A4jSB6onvqeygkSSmOkyny9VVx8JIGamQ==}
-
- '@next/swc-darwin-arm64@14.2.15':
- resolution: {integrity: sha512-Rvh7KU9hOUBnZ9TJ28n2Oa7dD9cvDBKua9IKx7cfQQ0GoYUwg9ig31O2oMwH3wm+pE3IkAQ67ZobPfEgurPZIA==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [darwin]
-
- '@next/swc-darwin-x64@14.2.15':
- resolution: {integrity: sha512-5TGyjFcf8ampZP3e+FyCax5zFVHi+Oe7sZyaKOngsqyaNEpOgkKB3sqmymkZfowy3ufGA/tUgDPPxpQx931lHg==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [darwin]
-
- '@next/swc-linux-arm64-gnu@14.2.15':
- resolution: {integrity: sha512-3Bwv4oc08ONiQ3FiOLKT72Q+ndEMyLNsc/D3qnLMbtUYTQAmkx9E/JRu0DBpHxNddBmNT5hxz1mYBphJ3mfrrw==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [linux]
-
- '@next/swc-linux-arm64-musl@14.2.15':
- resolution: {integrity: sha512-k5xf/tg1FBv/M4CMd8S+JL3uV9BnnRmoe7F+GWC3DxkTCD9aewFRH1s5rJ1zkzDa+Do4zyN8qD0N8c84Hu96FQ==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [linux]
-
- '@next/swc-linux-x64-gnu@14.2.15':
- resolution: {integrity: sha512-kE6q38hbrRbKEkkVn62reLXhThLRh6/TvgSP56GkFNhU22TbIrQDEMrO7j0IcQHcew2wfykq8lZyHFabz0oBrA==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- '@next/swc-linux-x64-musl@14.2.15':
- resolution: {integrity: sha512-PZ5YE9ouy/IdO7QVJeIcyLn/Rc4ml9M2G4y3kCM9MNf1YKvFY4heg3pVa/jQbMro+tP6yc4G2o9LjAz1zxD7tQ==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- '@next/swc-win32-arm64-msvc@14.2.15':
- resolution: {integrity: sha512-2raR16703kBvYEQD9HNLyb0/394yfqzmIeyp2nDzcPV4yPjqNUG3ohX6jX00WryXz6s1FXpVhsCo3i+g4RUX+g==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [win32]
-
- '@next/swc-win32-ia32-msvc@14.2.15':
- resolution: {integrity: sha512-fyTE8cklgkyR1p03kJa5zXEaZ9El+kDNM5A+66+8evQS5e/6v0Gk28LqA0Jet8gKSOyP+OTm/tJHzMlGdQerdQ==}
- engines: {node: '>= 10'}
- cpu: [ia32]
- os: [win32]
-
- '@next/swc-win32-x64-msvc@14.2.15':
- resolution: {integrity: sha512-SzqGbsLsP9OwKNUG9nekShTwhj6JSB9ZLMWQ8g1gG6hdE5gQLncbnbymrwy2yVmH9nikSLYRYxYMFu78Ggp7/g==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [win32]
-
- '@rolldown/pluginutils@1.0.0-beta.27':
- resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==}
-
- '@rollup/rollup-android-arm-eabi@4.62.4':
- resolution: {integrity: sha512-RrPokAb7dmbxFoeO3TloqHyOjgye8RkBhSqmp4aJMIex4c9r46ZstPnleDQOq1t46VOVjwIuwNogIqbodV1Vvg==}
- cpu: [arm]
- os: [android]
-
- '@rollup/rollup-android-arm64@4.62.4':
- resolution: {integrity: sha512-JKuJc+pnpks2pjy7L/N3v/cAkZxYlnmuZoD840ldbMI5KDbC4iO9NKwPKYdjYFCMAIIlBzYSFHxIJVYzRo2/8A==}
- cpu: [arm64]
- os: [android]
-
- '@rollup/rollup-darwin-arm64@4.62.4':
- resolution: {integrity: sha512-krw5uS2STmvJ02x0uTXHbqQNuz+9eZ1iw+qXk9dmW2gvV4jV7O2hEoOnuhFrpOPiel1mBFtqbxYZZtC46hXLOw==}
- cpu: [arm64]
- os: [darwin]
-
- '@rollup/rollup-darwin-x64@4.62.4':
- resolution: {integrity: sha512-wsTxtgApb4PrOsNJIm0FZ1h3WvCC+k9uxLJ4ad75hgoS4NiRes2SoJFlDAyMwiUY8IssDqGcHbXuN0sx1tfF1A==}
- cpu: [x64]
- os: [darwin]
-
- '@rollup/rollup-freebsd-arm64@4.62.4':
- resolution: {integrity: sha512-GUOnQlyZe3yAXhWOtOMsn5Qkrv5E5mZXa0thbARWi5Ei2szlVXJFQhddZ4HbAzh8q92w5twp+CQvs/eFanz9YQ==}
- cpu: [arm64]
- os: [freebsd]
-
- '@rollup/rollup-freebsd-x64@4.62.4':
- resolution: {integrity: sha512-/Y7f3QuxjzPKsjA/rfEDa3+0vXqyjmJ50Ln8dPpCmWkKTrUoWHG1cWhTqaAMLob2m2nESWuC7yGrREz019Ztqg==}
- cpu: [x64]
- os: [freebsd]
-
- '@rollup/rollup-linux-arm-gnueabihf@4.62.4':
- resolution: {integrity: sha512-81wiiX3v7aqy+T+bT61TJ78yJjRquqFFTTbAPt08imfQQzkPIW8t6aJbkTagtCCrXMNc9D66+geqlK7ydLPNqA==}
- cpu: [arm]
- os: [linux]
-
- '@rollup/rollup-linux-arm-musleabihf@4.62.4':
- resolution: {integrity: sha512-9kmDIvNZqdoHOBZgNtpTBeLWYO/LVipM3H/j62P8848/l/VPEQL6N3uxU9pvP1oZAsXyC2MEnFP3ovRjo7WYNQ==}
- cpu: [arm]
- os: [linux]
-
- '@rollup/rollup-linux-arm64-gnu@4.62.4':
- resolution: {integrity: sha512-CcnXHWnXg69g+DX5VWL3FHts3qMRN2uVEHX+BZvGLdd07/gXkn3ePjYtO1LDJvxkGKVHMclKBRa1QUTH+6toYQ==}
- cpu: [arm64]
- os: [linux]
-
- '@rollup/rollup-linux-arm64-musl@4.62.4':
- resolution: {integrity: sha512-iFOibiHnTRuhrWLlRsOQFdZJJIa7S8OwkneJr4ocALP16u5yk6lWLINFwhHaEqBFMsKDUZofLkGos7+CPzGB3g==}
- cpu: [arm64]
- os: [linux]
-
- '@rollup/rollup-linux-loong64-gnu@4.62.4':
- resolution: {integrity: sha512-XnWYMI7euHlb5a871xPja+Gm7DRCFU+FGRrtS2sMq9N8FvqtpagUy6gD4YOemC5MRk9xbh8+jYMEJbigFQwsgA==}
- cpu: [loong64]
- os: [linux]
-
- '@rollup/rollup-linux-loong64-musl@4.62.4':
- resolution: {integrity: sha512-qGDAlO0U8xedCcsdRm9oaoQY8DAx/QT7uIxJWhCdx0ceIWX783UC9QSYkdpzAe29wNiVfp24+bZdQmn49o45SQ==}
- cpu: [loong64]
- os: [linux]
-
- '@rollup/rollup-linux-ppc64-gnu@4.62.4':
- resolution: {integrity: sha512-ru4H6ezD7ysA5EiEK6qkkaEb4modH8CTej6kUy/gQi20u3kB3G7Zn8snXXkeJSCOFKG/rbPPtM/+9Wgas1961w==}
- cpu: [ppc64]
- os: [linux]
-
- '@rollup/rollup-linux-ppc64-musl@4.62.4':
- resolution: {integrity: sha512-2W4MO5WQVJnbJaZdvDb9rhBDuFU1nKIepPFpJUBsTh2k1YY2g+ODViaWuyOAjQ5cOP7NvrvLzt3wvHOoiAvc7w==}
- cpu: [ppc64]
- os: [linux]
-
- '@rollup/rollup-linux-riscv64-gnu@4.62.4':
- resolution: {integrity: sha512-+fxjfuoAmVMCYV5QyjoIpu0cp5DOiOTeqYFk1AVaxGr+/ravWLX89XfQmptsoWcaVy/TGf2hexzbUOrCQIL1CQ==}
- cpu: [riscv64]
- os: [linux]
-
- '@rollup/rollup-linux-riscv64-musl@4.62.4':
- resolution: {integrity: sha512-jTn8JfHGL4djjFxPuM06LmNUJDsst2jeVlsd9OmIH6zc5sC9K6rIuO4YajXatLUpBmBKl6b35ro1QZocLi+tcA==}
- cpu: [riscv64]
- os: [linux]
-
- '@rollup/rollup-linux-s390x-gnu@4.62.4':
- resolution: {integrity: sha512-oCJCJL4pXsoDcP2QZ+JVlPTIRc6266zsIaeJJsWImmF7HO0W8nb6HuSgZlMWxJwaPf8ehbSw8yo0EUw925hKsA==}
- cpu: [s390x]
- os: [linux]
-
- '@rollup/rollup-linux-x64-gnu@4.62.4':
- resolution: {integrity: sha512-W69hukhZ3KKNRCaMIEzKvcFye42hh0FE1+YoYaf5+Ikacuftoco6yO/xouz0hc5d5W/s3yBro5jRiuEE/Q5vUw==}
- cpu: [x64]
- os: [linux]
-
- '@rollup/rollup-linux-x64-musl@4.62.4':
- resolution: {integrity: sha512-qiXbGG2jkjXhzXpsFZSR2Xpb8DN/UaxYsbb/STbuR/6fpaDgRmmaq1B/LmtF2wQFOFOSsK2jdE0RZ3a0zHn4QA==}
- cpu: [x64]
- os: [linux]
-
- '@rollup/rollup-openbsd-x64@4.62.4':
- resolution: {integrity: sha512-nWeM//hxv8mIo6jD7Hu4o48DVmV9pbV6gsKaWU+4NFyqHoPKwrkRiZGLKUhOBk8qNmDmpwFtPKg80Bo/Tn4xiQ==}
- cpu: [x64]
- os: [openbsd]
-
- '@rollup/rollup-openharmony-arm64@4.62.4':
- resolution: {integrity: sha512-s62SQ/vgsRSvMwDkOEfTqfgASF0f26ZNaQuTA6Aok5lrikf89yI2W0gFHvZb2Jpgc6N8JnOKZgCK2iciO3CsxQ==}
- cpu: [arm64]
- os: [openharmony]
-
- '@rollup/rollup-win32-arm64-msvc@4.62.4':
- resolution: {integrity: sha512-J6wGf8TVGbXJq+HH+ttTvrcfNKPbuZecV6KT1B8I18BC5IURUh5kl4Yl5OEP5eFIUoI5BWxCsyYMhFsDx8kekw==}
- cpu: [arm64]
- os: [win32]
-
- '@rollup/rollup-win32-ia32-msvc@4.62.4':
- resolution: {integrity: sha512-zmfrQd/0wu6oJs8Vq8KwY/YtsKSsLtKe/HwAP4Wqy8LhWjeT55fHRAkOhYQ12wI3ayS4Tt12d5CDRD7N96SAYQ==}
- cpu: [ia32]
- os: [win32]
-
- '@rollup/rollup-win32-x64-gnu@4.62.4':
- resolution: {integrity: sha512-qPzHqdj9rfUD+w79dtE07zi/kFwKyCJqplp5K5ygeLTp7jLpAoc16OAH39HSmRC9UpozaecsleI8uAdEj6v2yw==}
- cpu: [x64]
- os: [win32]
-
- '@rollup/rollup-win32-x64-msvc@4.62.4':
- resolution: {integrity: sha512-zD6NdeWEByGE9QF9vCrlJ5YQB4oq9q91kPZS37Jwj5hOkvR1lTBSpsKhKDw4IJtbQ35LsTS1HD9DZYGKIshU1Q==}
- cpu: [x64]
- os: [win32]
-
- '@swc/counter@0.1.3':
- resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
-
- '@swc/helpers@0.5.5':
- resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==}
-
- '@types/babel__core@7.20.5':
- resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
-
- '@types/babel__generator@7.27.0':
- resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==}
-
- '@types/babel__template@7.4.4':
- resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
-
- '@types/babel__traverse@7.28.0':
- resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==}
-
- '@types/estree@1.0.9':
- resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==}
-
- '@types/json-schema@7.0.15':
- resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
-
- '@types/node@20.19.43':
- resolution: {integrity: sha512-6oYBAi5ikg4Pl+kGsoYtawUMBT2zZMCvPNF7pVLnHZfd1zf38DRiWn/gT01RYCdUqkv7Fhr+C9ot4/tb+2sVvA==}
-
- '@types/prop-types@15.7.15':
- resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==}
-
- '@types/react-dom@18.3.7':
- resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==}
- peerDependencies:
- '@types/react': ^18.0.0
-
- '@types/react@18.3.31':
- resolution: {integrity: sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==}
-
- '@typescript-eslint/eslint-plugin@8.67.0':
- resolution: {integrity: sha512-Un7Heoyj65NREbKAyIrFxeM143NZpExWmy1Nep4DLeQOeLlTeumPjoNKnBrU5D5moWXbPJgRa5Uwcdu0faVNGQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- '@typescript-eslint/parser': ^8.67.0
- eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
- typescript: '>=4.8.4 <6.1.0'
-
- '@typescript-eslint/parser@8.67.0':
- resolution: {integrity: sha512-fUBfTuuEulWqX6V8+O3PtScV01tzYYRUDTAirHFKoRAt7nOzoGiPt0M/bB47wWNy0coOOcgEwAMUtBpykMxl6w==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
- typescript: '>=4.8.4 <6.1.0'
-
- '@typescript-eslint/project-service@8.67.0':
- resolution: {integrity: sha512-cvE8c7ulYeXN9fYuszhCeCsbzyVEXuhrRCybnBre7TUmqb5nRmBfQAwCj0O3WJFDeyAZt4VYv51vMCC9LHSdYw==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- typescript: '>=4.8.4 <6.1.0'
-
- '@typescript-eslint/scope-manager@8.67.0':
- resolution: {integrity: sha512-EgvsleTwS4E+WzzSvem8fAUubLwatMNF1B5hHSLQxcvs7q2dtRhGyujHwLJSYlG41niJ7GP24Aha2+0mb1b2kg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@typescript-eslint/tsconfig-utils@8.67.0':
- resolution: {integrity: sha512-vV+LUSv5njUWsknE71fqKTlXUva+R76SaeORd6Zojcunk/6DvKFXONU3BrAs2H49mbygUXt6gbYunzwqNwlhdg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- typescript: '>=4.8.4 <6.1.0'
-
- '@typescript-eslint/type-utils@8.67.0':
- resolution: {integrity: sha512-aVWDXbRmdXO9siTfX4ditQI1T9+zVcNazT48EJCD0v40/9RIFoUgZ05CmGEq9H2gixRpjUn/iplwvlcvutJW/Q==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
- typescript: '>=4.8.4 <6.1.0'
-
- '@typescript-eslint/types@8.67.0':
- resolution: {integrity: sha512-sBtgslww8nsMYUjhdPBiSyUqSzT8uR6g93A2QXnQC8+cGdjz0CyaOdqHDRJb1AtORbZCNUJBBeFA/tNR2uQmww==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@typescript-eslint/typescript-estree@8.67.0':
- resolution: {integrity: sha512-EKQBCE9yNlRJYm7jdTW5AhDacDUmSwQb0FAJAmK2EKYrNXIsa2vxcSZx6PvJ/dEdI6lS+Y9W+EXckLj0iPFGcw==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- typescript: '>=4.8.4 <6.1.0'
-
- '@typescript-eslint/utils@8.67.0':
- resolution: {integrity: sha512-U9D1FdwEWBwok3hxxSdhclMb0twvt9QnjIQ0VfQ1AiX2epnpSgv2ubVDsayOFyY8K6FX+AQ7E0FKWVG3iKsj1A==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
- typescript: '>=4.8.4 <6.1.0'
-
- '@typescript-eslint/visitor-keys@8.67.0':
- resolution: {integrity: sha512-fkv8dHRDqfGtTHuJeebdrQ7cX6Ad4WAS00rgHh9UGvMycF1mjBfsxry1XsLIFhWZ6Judlh6UdzK+TYlbpCXgnA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@use-gesture/core@10.3.1':
- resolution: {integrity: sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw==}
-
- '@use-gesture/react@10.3.1':
- resolution: {integrity: sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g==}
- peerDependencies:
- react: '>= 16.8.0'
-
- '@vitejs/plugin-react@4.7.0':
- resolution: {integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==}
- engines: {node: ^14.18.0 || >=16.0.0}
- peerDependencies:
- vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0
-
- acorn-jsx@5.3.2:
- resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
- peerDependencies:
- acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
-
- acorn@8.18.0:
- resolution: {integrity: sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==}
- engines: {node: '>=0.4.0'}
- hasBin: true
-
- ajv@6.15.0:
- resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==}
-
- ansi-styles@4.3.0:
- resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
- engines: {node: '>=8'}
-
- argparse@2.0.1:
- resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
-
- balanced-match@1.0.2:
- resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
-
- balanced-match@4.0.4:
- resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
- engines: {node: 18 || 20 || >=22}
-
- baseline-browser-mapping@2.11.13:
- resolution: {integrity: sha512-k9HNuUVMlqVjQ9UHzfPjIqiDbWw7WqT1AoT7GL8VwvF3r0ZfArtgiSPAlmupyNquNgOJHTuH4CKYf8ttMTWBTQ==}
- engines: {node: '>=6.0.0'}
- hasBin: true
-
- brace-expansion@1.1.18:
- resolution: {integrity: sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==}
-
- brace-expansion@5.0.9:
- resolution: {integrity: sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==}
- engines: {node: 20 || >=22}
-
- browserslist@4.28.8:
- resolution: {integrity: sha512-V2NpofLblG64mfOtSgDhOJESZEGogzDMBv/q+W6oc4LXWP/q75eOXoOaaOu1EOadB9U4Bwx/e0yzbvwKH8zalA==}
- engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
- hasBin: true
-
- busboy@1.6.0:
- resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
- engines: {node: '>=10.16.0'}
-
- callsites@3.1.0:
- resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
- engines: {node: '>=6'}
-
- caniuse-lite@1.0.30001809:
- resolution: {integrity: sha512-xxWVywk6a6Arlk+hymeycyn/VgqEfLDxupvhH/xiY5SJ/18kmi9o6MiO320DCUzypORHLtvh0I4i04tUhCNHNQ==}
-
- chalk@4.1.2:
- resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
- engines: {node: '>=10'}
-
- client-only@0.0.1:
- resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
-
- color-convert@2.0.1:
- resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
- engines: {node: '>=7.0.0'}
-
- color-name@1.1.4:
- resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
-
- commander@8.3.0:
- resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
- engines: {node: '>= 12'}
-
- concat-map@0.0.1:
- resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
-
- convert-source-map@2.0.0:
- resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
-
- cross-spawn@7.0.6:
- resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
- engines: {node: '>= 8'}
-
- csstype@3.2.3:
- resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==}
-
- debug@4.4.3:
- resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
- engines: {node: '>=6.0'}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
-
- deep-is@0.1.4:
- resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
-
- electron-to-chromium@1.5.404:
- resolution: {integrity: sha512-3WJtd7/lVq2Jnuz6wed1l9+1ZD2u2Tet1/1NBc4Iedkmgbu+I7YuAqdAQ8T+VZtnwysMsAf3IqSq9D1gyZjA2g==}
-
- esbuild@0.21.5:
- resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==}
- engines: {node: '>=12'}
- hasBin: true
-
- escalade@3.2.0:
- resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
- engines: {node: '>=6'}
-
- escape-string-regexp@4.0.0:
- resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
- engines: {node: '>=10'}
-
- eslint-plugin-react-hooks@5.1.0-rc-fb9a90fa48-20240614:
- resolution: {integrity: sha512-xsiRwaDNF5wWNC4ZHLut+x/YcAxksUd9Rizt7LaEn3bV8VyYRpXnRJQlLOfYaVy9esk4DFP4zPPnoNVjq5Gc0w==}
- engines: {node: '>=10'}
- peerDependencies:
- eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0
-
- eslint-plugin-react-refresh@0.4.26:
- resolution: {integrity: sha512-1RETEylht2O6FM/MvgnyvT+8K21wLqDNg4qD51Zj3guhjt433XbnnkVttHMyaVyAFD03QSV4LPS5iE3VQmO7XQ==}
- peerDependencies:
- eslint: '>=8.40'
-
- eslint-scope@8.4.0:
- resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- eslint-visitor-keys@3.4.3:
- resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-
- eslint-visitor-keys@4.2.1:
- resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- eslint-visitor-keys@5.0.1:
- resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==}
- engines: {node: ^20.19.0 || ^22.13.0 || >=24}
-
- eslint@9.39.5:
- resolution: {integrity: sha512-DgZS62aPLXKlnxILS/AYCoRvHaZeXceIzlXPkkGGzJWSow1aEk0lbTlxUSlyjC8jcaKxAdOnTDz+o1JFSBsyjw==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- hasBin: true
- peerDependencies:
- jiti: '*'
- peerDependenciesMeta:
- jiti:
- optional: true
-
- espree@10.4.0:
- resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- esquery@1.7.0:
- resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==}
- engines: {node: '>=0.10'}
-
- esrecurse@4.3.0:
- resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
- engines: {node: '>=4.0'}
-
- estraverse@5.3.0:
- resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
- engines: {node: '>=4.0'}
-
- esutils@2.0.3:
- resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
- engines: {node: '>=0.10.0'}
-
- fast-deep-equal@3.1.3:
- resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
-
- fast-json-stable-stringify@2.1.0:
- resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
-
- fast-levenshtein@2.0.6:
- resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
-
- fdir@6.5.0:
- resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
- engines: {node: '>=12.0.0'}
- peerDependencies:
- picomatch: ^3 || ^4
- peerDependenciesMeta:
- picomatch:
- optional: true
-
- file-entry-cache@8.0.0:
- resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
- engines: {node: '>=16.0.0'}
-
- find-up@5.0.0:
- resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
- engines: {node: '>=10'}
-
- flat-cache@4.0.1:
- resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
- engines: {node: '>=16'}
-
- flatted@3.4.4:
- resolution: {integrity: sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==}
-
- fsevents@2.3.3:
- resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
- engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
- os: [darwin]
-
- gensync@1.0.0-beta.2:
- resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
- engines: {node: '>=6.9.0'}
-
- glob-parent@6.0.2:
- resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
- engines: {node: '>=10.13.0'}
-
- globals@14.0.0:
- resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
- engines: {node: '>=18'}
-
- globals@15.15.0:
- resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==}
- engines: {node: '>=18'}
-
- graceful-fs@4.2.11:
- resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
-
- has-flag@4.0.0:
- resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
- engines: {node: '>=8'}
-
- ignore@5.3.2:
- resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
- engines: {node: '>= 4'}
-
- ignore@7.0.6:
- resolution: {integrity: sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==}
- engines: {node: '>= 4'}
-
- import-fresh@3.3.1:
- resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
- engines: {node: '>=6'}
-
- imurmurhash@0.1.4:
- resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
- engines: {node: '>=0.8.19'}
-
- is-extglob@2.1.1:
- resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
- engines: {node: '>=0.10.0'}
-
- is-glob@4.0.3:
- resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
- engines: {node: '>=0.10.0'}
-
- isexe@2.0.0:
- resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
-
- js-tokens@4.0.0:
- resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
-
- js-yaml@4.3.1:
- resolution: {integrity: sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==}
- hasBin: true
-
- jsesc@3.1.0:
- resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
- engines: {node: '>=6'}
- hasBin: true
-
- json-buffer@3.0.1:
- resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
-
- json-schema-traverse@0.4.1:
- resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
-
- json-stable-stringify-without-jsonify@1.0.1:
- resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
-
- json5@2.2.3:
- resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
- engines: {node: '>=6'}
- hasBin: true
-
- katex@0.16.47:
- resolution: {integrity: sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg==}
- hasBin: true
-
- keyv@4.5.4:
- resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
-
- levn@0.4.1:
- resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
- engines: {node: '>= 0.8.0'}
-
- locate-path@6.0.0:
- resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
- engines: {node: '>=10'}
-
- lodash.merge@4.6.2:
- resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
-
- loose-envify@1.4.0:
- resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
- hasBin: true
-
- lru-cache@5.1.1:
- resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
-
- mafs@file:mafs.tgz:
- resolution: {integrity: sha512-XSnSWt8sRbAllPLww3VU7vfD/aiNITotwMF0OB2c8pt3BG68vye+zSBu3fUWyCK90LFP2K/DfJ8OO34WP9ezQg==, tarball: file:mafs.tgz}
- version: 0.22.0
- engines: {node: '>=20.11.0'}
- peerDependencies:
- react: '>=18'
- react-dom: '>=18'
-
- minimatch@10.2.6:
- resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==}
- engines: {node: 18 || 20 || >=22}
-
- minimatch@3.1.5:
- resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==}
-
- ms@2.1.3:
- resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
-
- nanoid@3.3.18:
- resolution: {integrity: sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==}
- engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
- hasBin: true
-
- natural-compare@1.4.0:
- resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
-
- next@14.2.15:
- resolution: {integrity: sha512-h9ctmOokpoDphRvMGnwOJAedT6zKhwqyZML9mDtspgf4Rh3Pn7UTYKqePNoDvhsWBAO5GoPNYshnAUGIazVGmw==}
- engines: {node: '>=18.17.0'}
- deprecated: This version has a security vulnerability. Please upgrade to a patched version. See https://nextjs.org/blog/security-update-2025-12-11 for more details.
- hasBin: true
- peerDependencies:
- '@opentelemetry/api': ^1.1.0
- '@playwright/test': ^1.41.2
- react: ^18.2.0
- react-dom: ^18.2.0
- sass: ^1.3.0
- peerDependenciesMeta:
- '@opentelemetry/api':
- optional: true
- '@playwright/test':
- optional: true
- sass:
- optional: true
-
- node-releases@2.0.53:
- resolution: {integrity: sha512-D9UOmYG3UH1V+ENW56t5QXBwJw1YEY18ruVeus89Rw+SyIgjPkCO84bRzO3uNIYosJbNwiabWVn48o3uJLjxFQ==}
- engines: {node: '>=18'}
-
- optionator@0.9.4:
- resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
- engines: {node: '>= 0.8.0'}
-
- p-limit@3.1.0:
- resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
- engines: {node: '>=10'}
-
- p-locate@5.0.0:
- resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
- engines: {node: '>=10'}
-
- parent-module@1.0.1:
- resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
- engines: {node: '>=6'}
-
- path-exists@4.0.0:
- resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
- engines: {node: '>=8'}
-
- path-key@3.1.1:
- resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
- engines: {node: '>=8'}
-
- picocolors@1.1.1:
- resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
-
- picomatch@4.0.5:
- resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==}
- engines: {node: '>=12'}
-
- postcss@8.4.31:
- resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
- engines: {node: ^10 || ^12 || >=14}
-
- postcss@8.5.26:
- resolution: {integrity: sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==}
- engines: {node: ^10 || ^12 || >=14}
-
- prelude-ls@1.2.1:
- resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
- engines: {node: '>= 0.8.0'}
-
- punycode@2.3.1:
- resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
- engines: {node: '>=6'}
-
- react-dom@18.3.1:
- resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==}
- peerDependencies:
- react: ^18.3.1
-
- react-refresh@0.17.0:
- resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==}
- engines: {node: '>=0.10.0'}
-
- react@18.3.1:
- resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
- engines: {node: '>=0.10.0'}
-
- resolve-from@4.0.0:
- resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
- engines: {node: '>=4'}
-
- rollup@4.62.4:
- resolution: {integrity: sha512-RXOqwaPsBGjMNMa4sQjDjHieHEZDFoj/Rdr46l2MU5DfEs16wHJPC2RPTPHWhNl+M3aI472LLqFkFKut4SblOg==}
- engines: {node: '>=18.0.0', npm: '>=8.0.0'}
- hasBin: true
-
- scheduler@0.23.2:
- resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
-
- semver@6.3.1:
- resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
- hasBin: true
-
- semver@7.8.5:
- resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==}
- engines: {node: '>=10'}
- hasBin: true
-
- shebang-command@2.0.0:
- resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
- engines: {node: '>=8'}
-
- shebang-regex@3.0.0:
- resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
- engines: {node: '>=8'}
-
- source-map-js@1.2.1:
- resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
- engines: {node: '>=0.10.0'}
-
- streamsearch@1.1.0:
- resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
- engines: {node: '>=10.0.0'}
-
- strip-json-comments@3.1.1:
- resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
- engines: {node: '>=8'}
-
- styled-jsx@5.1.1:
- resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
- engines: {node: '>= 12.0.0'}
- peerDependencies:
- '@babel/core': '*'
- babel-plugin-macros: '*'
- react: '>= 16.8.0 || 17.x.x || ^18.0.0-0'
- peerDependenciesMeta:
- '@babel/core':
- optional: true
- babel-plugin-macros:
- optional: true
-
- supports-color@7.2.0:
- resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
- engines: {node: '>=8'}
-
- tiny-invariant@1.3.3:
- resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
-
- tinyglobby@0.2.17:
- resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==}
- engines: {node: '>=12.0.0'}
-
- ts-api-utils@2.5.0:
- resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==}
- engines: {node: '>=18.12'}
- peerDependencies:
- typescript: '>=4.8.4'
-
- tslib@2.8.1:
- resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
-
- type-check@0.4.0:
- resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
- engines: {node: '>= 0.8.0'}
-
- typescript-eslint@8.67.0:
- resolution: {integrity: sha512-S2udFs8tCKEKffuJ4TB1idGUZiXdCPGi3IPBGWXarbLQ5UPXORV8QEVzJ4gCRduURMb5EkpNCdjbk0eDIuI8Yg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
- typescript: '>=4.8.4 <6.1.0'
-
- typescript@5.9.3:
- resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
- engines: {node: '>=14.17'}
- hasBin: true
-
- undici-types@6.21.0:
- resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
-
- update-browserslist-db@1.3.1:
- resolution: {integrity: sha512-ZZ61DsRsOnakl74HAmp3oSN4aXUmEWXf+i/yv0h7tIBfICc3VdrFErQKUUKPgu3AMsTUMbcongALEN4l6GSUrQ==}
- hasBin: true
- peerDependencies:
- browserslist: '>= 4.21.0'
-
- uri-js@4.4.1:
- resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
-
- use-resize-observer@9.1.0:
- resolution: {integrity: sha512-R25VqO9Wb3asSD4eqtcxk8sJalvIOYBqS8MNZlpDSQ4l4xMQxC/J7Id9HoTqPq8FwULIn0PVW+OAqF2dyYbjow==}
- peerDependencies:
- react: 16.8.0 - 18
- react-dom: 16.8.0 - 18
-
- vite@5.4.21:
- resolution: {integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==}
- engines: {node: ^18.0.0 || >=20.0.0}
- hasBin: true
- peerDependencies:
- '@types/node': ^18.0.0 || >=20.0.0
- less: '*'
- lightningcss: ^1.21.0
- sass: '*'
- sass-embedded: '*'
- stylus: '*'
- sugarss: '*'
- terser: ^5.4.0
- peerDependenciesMeta:
- '@types/node':
- optional: true
- less:
- optional: true
- lightningcss:
- optional: true
- sass:
- optional: true
- sass-embedded:
- optional: true
- stylus:
- optional: true
- sugarss:
- optional: true
- terser:
- optional: true
-
- which@2.0.2:
- resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
- engines: {node: '>= 8'}
- hasBin: true
-
- word-wrap@1.2.5:
- resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
- engines: {node: '>=0.10.0'}
-
- yallist@3.1.1:
- resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
-
- yocto-queue@0.1.0:
- resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
- engines: {node: '>=10'}
-
-snapshots:
-
- '@babel/code-frame@7.29.7':
- dependencies:
- '@babel/helper-validator-identifier': 7.29.7
- js-tokens: 4.0.0
- picocolors: 1.1.1
-
- '@babel/compat-data@7.29.7': {}
-
- '@babel/core@7.29.7':
- dependencies:
- '@babel/code-frame': 7.29.7
- '@babel/generator': 7.29.8
- '@babel/helper-compilation-targets': 7.29.7
- '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7)
- '@babel/helpers': 7.29.7
- '@babel/parser': 7.29.8
- '@babel/template': 7.29.7
- '@babel/traverse': 7.29.8
- '@babel/types': 7.29.8
- '@jridgewell/remapping': 2.3.5
- convert-source-map: 2.0.0
- debug: 4.4.3
- gensync: 1.0.0-beta.2
- json5: 2.2.3
- semver: 6.3.1
- transitivePeerDependencies:
- - supports-color
-
- '@babel/generator@7.29.8':
- dependencies:
- '@babel/parser': 7.29.8
- '@babel/types': 7.29.8
- '@jridgewell/gen-mapping': 0.3.13
- '@jridgewell/trace-mapping': 0.3.31
- jsesc: 3.1.0
-
- '@babel/helper-compilation-targets@7.29.7':
- dependencies:
- '@babel/compat-data': 7.29.7
- '@babel/helper-validator-option': 7.29.7
- browserslist: 4.28.8
- lru-cache: 5.1.1
- semver: 6.3.1
-
- '@babel/helper-globals@7.29.7': {}
-
- '@babel/helper-module-imports@7.29.7':
- dependencies:
- '@babel/traverse': 7.29.8
- '@babel/types': 7.29.8
- transitivePeerDependencies:
- - supports-color
-
- '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)':
- dependencies:
- '@babel/core': 7.29.7
- '@babel/helper-module-imports': 7.29.7
- '@babel/helper-validator-identifier': 7.29.7
- '@babel/traverse': 7.29.8
- transitivePeerDependencies:
- - supports-color
-
- '@babel/helper-plugin-utils@7.29.7': {}
-
- '@babel/helper-string-parser@7.29.7': {}
-
- '@babel/helper-validator-identifier@7.29.7': {}
-
- '@babel/helper-validator-option@7.29.7': {}
-
- '@babel/helpers@7.29.7':
- dependencies:
- '@babel/template': 7.29.7
- '@babel/types': 7.29.8
-
- '@babel/parser@7.29.8':
- dependencies:
- '@babel/types': 7.29.8
-
- '@babel/plugin-transform-react-jsx-self@7.29.7(@babel/core@7.29.7)':
- dependencies:
- '@babel/core': 7.29.7
- '@babel/helper-plugin-utils': 7.29.7
-
- '@babel/plugin-transform-react-jsx-source@7.29.7(@babel/core@7.29.7)':
- dependencies:
- '@babel/core': 7.29.7
- '@babel/helper-plugin-utils': 7.29.7
-
- '@babel/template@7.29.7':
- dependencies:
- '@babel/code-frame': 7.29.7
- '@babel/parser': 7.29.8
- '@babel/types': 7.29.8
-
- '@babel/traverse@7.29.8':
- dependencies:
- '@babel/code-frame': 7.29.7
- '@babel/generator': 7.29.8
- '@babel/helper-globals': 7.29.7
- '@babel/parser': 7.29.8
- '@babel/template': 7.29.7
- '@babel/types': 7.29.8
- debug: 4.4.3
- transitivePeerDependencies:
- - supports-color
-
- '@babel/types@7.29.8':
- dependencies:
- '@babel/helper-string-parser': 7.29.7
- '@babel/helper-validator-identifier': 7.29.7
-
- '@esbuild/aix-ppc64@0.21.5':
- optional: true
-
- '@esbuild/android-arm64@0.21.5':
- optional: true
-
- '@esbuild/android-arm@0.21.5':
- optional: true
-
- '@esbuild/android-x64@0.21.5':
- optional: true
-
- '@esbuild/darwin-arm64@0.21.5':
- optional: true
-
- '@esbuild/darwin-x64@0.21.5':
- optional: true
-
- '@esbuild/freebsd-arm64@0.21.5':
- optional: true
-
- '@esbuild/freebsd-x64@0.21.5':
- optional: true
-
- '@esbuild/linux-arm64@0.21.5':
- optional: true
-
- '@esbuild/linux-arm@0.21.5':
- optional: true
-
- '@esbuild/linux-ia32@0.21.5':
- optional: true
-
- '@esbuild/linux-loong64@0.21.5':
- optional: true
-
- '@esbuild/linux-mips64el@0.21.5':
- optional: true
-
- '@esbuild/linux-ppc64@0.21.5':
- optional: true
-
- '@esbuild/linux-riscv64@0.21.5':
- optional: true
-
- '@esbuild/linux-s390x@0.21.5':
- optional: true
-
- '@esbuild/linux-x64@0.21.5':
- optional: true
-
- '@esbuild/netbsd-x64@0.21.5':
- optional: true
-
- '@esbuild/openbsd-x64@0.21.5':
- optional: true
-
- '@esbuild/sunos-x64@0.21.5':
- optional: true
-
- '@esbuild/win32-arm64@0.21.5':
- optional: true
-
- '@esbuild/win32-ia32@0.21.5':
- optional: true
-
- '@esbuild/win32-x64@0.21.5':
- optional: true
-
- '@eslint-community/eslint-utils@4.10.1(eslint@9.39.5)':
- dependencies:
- eslint: 9.39.5
- eslint-visitor-keys: 3.4.3
-
- '@eslint-community/regexpp@4.12.2': {}
-
- '@eslint/config-array@0.21.2':
- dependencies:
- '@eslint/object-schema': 2.1.7
- debug: 4.4.3
- minimatch: 3.1.5
- transitivePeerDependencies:
- - supports-color
-
- '@eslint/config-helpers@0.4.2':
- dependencies:
- '@eslint/core': 0.17.0
-
- '@eslint/core@0.17.0':
- dependencies:
- '@types/json-schema': 7.0.15
-
- '@eslint/eslintrc@3.3.6':
- dependencies:
- ajv: 6.15.0
- debug: 4.4.3
- espree: 10.4.0
- globals: 14.0.0
- ignore: 5.3.2
- import-fresh: 3.3.1
- js-yaml: 4.3.1
- minimatch: 3.1.5
- strip-json-comments: 3.1.1
- transitivePeerDependencies:
- - supports-color
-
- '@eslint/js@9.39.5': {}
-
- '@eslint/object-schema@2.1.7': {}
-
- '@eslint/plugin-kit@0.4.1':
- dependencies:
- '@eslint/core': 0.17.0
- levn: 0.4.1
-
- '@humanfs/core@0.19.2':
- dependencies:
- '@humanfs/types': 0.15.0
-
- '@humanfs/node@0.16.8':
- dependencies:
- '@humanfs/core': 0.19.2
- '@humanfs/types': 0.15.0
- '@humanwhocodes/retry': 0.4.3
-
- '@humanfs/types@0.15.0': {}
-
- '@humanwhocodes/module-importer@1.0.1': {}
-
- '@humanwhocodes/retry@0.4.3': {}
-
- '@jridgewell/gen-mapping@0.3.13':
- dependencies:
- '@jridgewell/sourcemap-codec': 1.5.5
- '@jridgewell/trace-mapping': 0.3.31
-
- '@jridgewell/remapping@2.3.5':
- dependencies:
- '@jridgewell/gen-mapping': 0.3.13
- '@jridgewell/trace-mapping': 0.3.31
-
- '@jridgewell/resolve-uri@3.1.2': {}
-
- '@jridgewell/sourcemap-codec@1.5.5': {}
-
- '@jridgewell/trace-mapping@0.3.31':
- dependencies:
- '@jridgewell/resolve-uri': 3.1.2
- '@jridgewell/sourcemap-codec': 1.5.5
-
- '@juggle/resize-observer@3.4.0': {}
-
- '@napi-rs/lzma-linux-x64-gnu@1.5.1':
- optional: true
-
- '@next/env@14.2.15': {}
-
- '@next/swc-darwin-arm64@14.2.15':
- optional: true
-
- '@next/swc-darwin-x64@14.2.15':
- optional: true
-
- '@next/swc-linux-arm64-gnu@14.2.15':
- optional: true
-
- '@next/swc-linux-arm64-musl@14.2.15':
- optional: true
-
- '@next/swc-linux-x64-gnu@14.2.15':
- optional: true
-
- '@next/swc-linux-x64-musl@14.2.15':
- optional: true
-
- '@next/swc-win32-arm64-msvc@14.2.15':
- optional: true
-
- '@next/swc-win32-ia32-msvc@14.2.15':
- optional: true
-
- '@next/swc-win32-x64-msvc@14.2.15':
- optional: true
-
- '@rolldown/pluginutils@1.0.0-beta.27': {}
-
- '@rollup/rollup-android-arm-eabi@4.62.4':
- optional: true
-
- '@rollup/rollup-android-arm64@4.62.4':
- optional: true
-
- '@rollup/rollup-darwin-arm64@4.62.4':
- optional: true
-
- '@rollup/rollup-darwin-x64@4.62.4':
- optional: true
-
- '@rollup/rollup-freebsd-arm64@4.62.4':
- optional: true
-
- '@rollup/rollup-freebsd-x64@4.62.4':
- optional: true
-
- '@rollup/rollup-linux-arm-gnueabihf@4.62.4':
- optional: true
-
- '@rollup/rollup-linux-arm-musleabihf@4.62.4':
- optional: true
-
- '@rollup/rollup-linux-arm64-gnu@4.62.4':
- optional: true
-
- '@rollup/rollup-linux-arm64-musl@4.62.4':
- optional: true
-
- '@rollup/rollup-linux-loong64-gnu@4.62.4':
- optional: true
-
- '@rollup/rollup-linux-loong64-musl@4.62.4':
- optional: true
-
- '@rollup/rollup-linux-ppc64-gnu@4.62.4':
- optional: true
-
- '@rollup/rollup-linux-ppc64-musl@4.62.4':
- optional: true
-
- '@rollup/rollup-linux-riscv64-gnu@4.62.4':
- optional: true
-
- '@rollup/rollup-linux-riscv64-musl@4.62.4':
- optional: true
-
- '@rollup/rollup-linux-s390x-gnu@4.62.4':
- optional: true
-
- '@rollup/rollup-linux-x64-gnu@4.62.4':
- optional: true
-
- '@rollup/rollup-linux-x64-musl@4.62.4':
- optional: true
-
- '@rollup/rollup-openbsd-x64@4.62.4':
- optional: true
-
- '@rollup/rollup-openharmony-arm64@4.62.4':
- optional: true
-
- '@rollup/rollup-win32-arm64-msvc@4.62.4':
- optional: true
-
- '@rollup/rollup-win32-ia32-msvc@4.62.4':
- optional: true
-
- '@rollup/rollup-win32-x64-gnu@4.62.4':
- optional: true
-
- '@rollup/rollup-win32-x64-msvc@4.62.4':
- optional: true
-
- '@swc/counter@0.1.3': {}
-
- '@swc/helpers@0.5.5':
- dependencies:
- '@swc/counter': 0.1.3
- tslib: 2.8.1
-
- '@types/babel__core@7.20.5':
- dependencies:
- '@babel/parser': 7.29.8
- '@babel/types': 7.29.8
- '@types/babel__generator': 7.27.0
- '@types/babel__template': 7.4.4
- '@types/babel__traverse': 7.28.0
-
- '@types/babel__generator@7.27.0':
- dependencies:
- '@babel/types': 7.29.8
-
- '@types/babel__template@7.4.4':
- dependencies:
- '@babel/parser': 7.29.8
- '@babel/types': 7.29.8
-
- '@types/babel__traverse@7.28.0':
- dependencies:
- '@babel/types': 7.29.8
-
- '@types/estree@1.0.9': {}
-
- '@types/json-schema@7.0.15': {}
-
- '@types/node@20.19.43':
- dependencies:
- undici-types: 6.21.0
-
- '@types/prop-types@15.7.15': {}
-
- '@types/react-dom@18.3.7(@types/react@18.3.31)':
- dependencies:
- '@types/react': 18.3.31
-
- '@types/react@18.3.31':
- dependencies:
- '@types/prop-types': 15.7.15
- csstype: 3.2.3
-
- '@typescript-eslint/eslint-plugin@8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3)':
- dependencies:
- '@eslint-community/regexpp': 4.12.2
- '@typescript-eslint/parser': 8.67.0(eslint@9.39.5)(typescript@5.9.3)
- '@typescript-eslint/scope-manager': 8.67.0
- '@typescript-eslint/type-utils': 8.67.0(eslint@9.39.5)(typescript@5.9.3)
- '@typescript-eslint/utils': 8.67.0(eslint@9.39.5)(typescript@5.9.3)
- '@typescript-eslint/visitor-keys': 8.67.0
- eslint: 9.39.5
- ignore: 7.0.6
- natural-compare: 1.4.0
- ts-api-utils: 2.5.0(typescript@5.9.3)
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3)':
- dependencies:
- '@typescript-eslint/scope-manager': 8.67.0
- '@typescript-eslint/types': 8.67.0
- '@typescript-eslint/typescript-estree': 8.67.0(typescript@5.9.3)
- '@typescript-eslint/visitor-keys': 8.67.0
- debug: 4.4.3
- eslint: 9.39.5
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/project-service@8.67.0(typescript@5.9.3)':
- dependencies:
- '@typescript-eslint/tsconfig-utils': 8.67.0(typescript@5.9.3)
- '@typescript-eslint/types': 8.67.0
- debug: 4.4.3
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/scope-manager@8.67.0':
- dependencies:
- '@typescript-eslint/types': 8.67.0
- '@typescript-eslint/visitor-keys': 8.67.0
-
- '@typescript-eslint/tsconfig-utils@8.67.0(typescript@5.9.3)':
- dependencies:
- typescript: 5.9.3
-
- '@typescript-eslint/type-utils@8.67.0(eslint@9.39.5)(typescript@5.9.3)':
- dependencies:
- '@typescript-eslint/types': 8.67.0
- '@typescript-eslint/typescript-estree': 8.67.0(typescript@5.9.3)
- '@typescript-eslint/utils': 8.67.0(eslint@9.39.5)(typescript@5.9.3)
- debug: 4.4.3
- eslint: 9.39.5
- ts-api-utils: 2.5.0(typescript@5.9.3)
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/types@8.67.0': {}
-
- '@typescript-eslint/typescript-estree@8.67.0(typescript@5.9.3)':
- dependencies:
- '@typescript-eslint/project-service': 8.67.0(typescript@5.9.3)
- '@typescript-eslint/tsconfig-utils': 8.67.0(typescript@5.9.3)
- '@typescript-eslint/types': 8.67.0
- '@typescript-eslint/visitor-keys': 8.67.0
- debug: 4.4.3
- minimatch: 10.2.6
- semver: 7.8.5
- tinyglobby: 0.2.17
- ts-api-utils: 2.5.0(typescript@5.9.3)
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/utils@8.67.0(eslint@9.39.5)(typescript@5.9.3)':
- dependencies:
- '@eslint-community/eslint-utils': 4.10.1(eslint@9.39.5)
- '@typescript-eslint/scope-manager': 8.67.0
- '@typescript-eslint/types': 8.67.0
- '@typescript-eslint/typescript-estree': 8.67.0(typescript@5.9.3)
- eslint: 9.39.5
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/visitor-keys@8.67.0':
- dependencies:
- '@typescript-eslint/types': 8.67.0
- eslint-visitor-keys: 5.0.1
-
- '@use-gesture/core@10.3.1': {}
-
- '@use-gesture/react@10.3.1(react@18.3.1)':
- dependencies:
- '@use-gesture/core': 10.3.1
- react: 18.3.1
-
- '@vitejs/plugin-react@4.7.0(vite@5.4.21(@types/node@20.19.43))':
- dependencies:
- '@babel/core': 7.29.7
- '@babel/plugin-transform-react-jsx-self': 7.29.7(@babel/core@7.29.7)
- '@babel/plugin-transform-react-jsx-source': 7.29.7(@babel/core@7.29.7)
- '@rolldown/pluginutils': 1.0.0-beta.27
- '@types/babel__core': 7.20.5
- react-refresh: 0.17.0
- vite: 5.4.21(@types/node@20.19.43)
- transitivePeerDependencies:
- - supports-color
-
- acorn-jsx@5.3.2(acorn@8.18.0):
- dependencies:
- acorn: 8.18.0
-
- acorn@8.18.0: {}
-
- ajv@6.15.0:
- dependencies:
- fast-deep-equal: 3.1.3
- fast-json-stable-stringify: 2.1.0
- json-schema-traverse: 0.4.1
- uri-js: 4.4.1
-
- ansi-styles@4.3.0:
- dependencies:
- color-convert: 2.0.1
-
- argparse@2.0.1: {}
-
- balanced-match@1.0.2: {}
-
- balanced-match@4.0.4: {}
-
- baseline-browser-mapping@2.11.13: {}
-
- brace-expansion@1.1.18:
- dependencies:
- balanced-match: 1.0.2
- concat-map: 0.0.1
-
- brace-expansion@5.0.9:
- dependencies:
- balanced-match: 4.0.4
-
- browserslist@4.28.8:
- dependencies:
- baseline-browser-mapping: 2.11.13
- caniuse-lite: 1.0.30001809
- electron-to-chromium: 1.5.404
- node-releases: 2.0.53
- update-browserslist-db: 1.3.1(browserslist@4.28.8)
-
- busboy@1.6.0:
- dependencies:
- streamsearch: 1.1.0
-
- callsites@3.1.0: {}
-
- caniuse-lite@1.0.30001809: {}
-
- chalk@4.1.2:
- dependencies:
- ansi-styles: 4.3.0
- supports-color: 7.2.0
-
- client-only@0.0.1: {}
-
- color-convert@2.0.1:
- dependencies:
- color-name: 1.1.4
-
- color-name@1.1.4: {}
-
- commander@8.3.0: {}
-
- concat-map@0.0.1: {}
-
- convert-source-map@2.0.0: {}
-
- cross-spawn@7.0.6:
- dependencies:
- path-key: 3.1.1
- shebang-command: 2.0.0
- which: 2.0.2
-
- csstype@3.2.3: {}
-
- debug@4.4.3:
- dependencies:
- ms: 2.1.3
-
- deep-is@0.1.4: {}
-
- electron-to-chromium@1.5.404: {}
-
- esbuild@0.21.5:
- optionalDependencies:
- '@esbuild/aix-ppc64': 0.21.5
- '@esbuild/android-arm': 0.21.5
- '@esbuild/android-arm64': 0.21.5
- '@esbuild/android-x64': 0.21.5
- '@esbuild/darwin-arm64': 0.21.5
- '@esbuild/darwin-x64': 0.21.5
- '@esbuild/freebsd-arm64': 0.21.5
- '@esbuild/freebsd-x64': 0.21.5
- '@esbuild/linux-arm': 0.21.5
- '@esbuild/linux-arm64': 0.21.5
- '@esbuild/linux-ia32': 0.21.5
- '@esbuild/linux-loong64': 0.21.5
- '@esbuild/linux-mips64el': 0.21.5
- '@esbuild/linux-ppc64': 0.21.5
- '@esbuild/linux-riscv64': 0.21.5
- '@esbuild/linux-s390x': 0.21.5
- '@esbuild/linux-x64': 0.21.5
- '@esbuild/netbsd-x64': 0.21.5
- '@esbuild/openbsd-x64': 0.21.5
- '@esbuild/sunos-x64': 0.21.5
- '@esbuild/win32-arm64': 0.21.5
- '@esbuild/win32-ia32': 0.21.5
- '@esbuild/win32-x64': 0.21.5
-
- escalade@3.2.0: {}
-
- escape-string-regexp@4.0.0: {}
-
- eslint-plugin-react-hooks@5.1.0-rc-fb9a90fa48-20240614(eslint@9.39.5):
- dependencies:
- eslint: 9.39.5
-
- eslint-plugin-react-refresh@0.4.26(eslint@9.39.5):
- dependencies:
- eslint: 9.39.5
-
- eslint-scope@8.4.0:
- dependencies:
- esrecurse: 4.3.0
- estraverse: 5.3.0
-
- eslint-visitor-keys@3.4.3: {}
-
- eslint-visitor-keys@4.2.1: {}
-
- eslint-visitor-keys@5.0.1: {}
-
- eslint@9.39.5:
- dependencies:
- '@eslint-community/eslint-utils': 4.10.1(eslint@9.39.5)
- '@eslint-community/regexpp': 4.12.2
- '@eslint/config-array': 0.21.2
- '@eslint/config-helpers': 0.4.2
- '@eslint/core': 0.17.0
- '@eslint/eslintrc': 3.3.6
- '@eslint/js': 9.39.5
- '@eslint/plugin-kit': 0.4.1
- '@humanfs/node': 0.16.8
- '@humanwhocodes/module-importer': 1.0.1
- '@humanwhocodes/retry': 0.4.3
- '@types/estree': 1.0.9
- ajv: 6.15.0
- chalk: 4.1.2
- cross-spawn: 7.0.6
- debug: 4.4.3
- escape-string-regexp: 4.0.0
- eslint-scope: 8.4.0
- eslint-visitor-keys: 4.2.1
- espree: 10.4.0
- esquery: 1.7.0
- esutils: 2.0.3
- fast-deep-equal: 3.1.3
- file-entry-cache: 8.0.0
- find-up: 5.0.0
- glob-parent: 6.0.2
- ignore: 5.3.2
- imurmurhash: 0.1.4
- is-glob: 4.0.3
- 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.4
- transitivePeerDependencies:
- - supports-color
-
- espree@10.4.0:
- dependencies:
- acorn: 8.18.0
- acorn-jsx: 5.3.2(acorn@8.18.0)
- eslint-visitor-keys: 4.2.1
-
- esquery@1.7.0:
- dependencies:
- estraverse: 5.3.0
-
- esrecurse@4.3.0:
- dependencies:
- estraverse: 5.3.0
-
- estraverse@5.3.0: {}
-
- esutils@2.0.3: {}
-
- fast-deep-equal@3.1.3: {}
-
- fast-json-stable-stringify@2.1.0: {}
-
- fast-levenshtein@2.0.6: {}
-
- fdir@6.5.0(picomatch@4.0.5):
- optionalDependencies:
- picomatch: 4.0.5
-
- file-entry-cache@8.0.0:
- dependencies:
- flat-cache: 4.0.1
-
- find-up@5.0.0:
- dependencies:
- locate-path: 6.0.0
- path-exists: 4.0.0
-
- flat-cache@4.0.1:
- dependencies:
- flatted: 3.4.4
- keyv: 4.5.4
-
- flatted@3.4.4: {}
-
- fsevents@2.3.3:
- optional: true
-
- gensync@1.0.0-beta.2: {}
-
- glob-parent@6.0.2:
- dependencies:
- is-glob: 4.0.3
-
- globals@14.0.0: {}
-
- globals@15.15.0: {}
-
- graceful-fs@4.2.11: {}
-
- has-flag@4.0.0: {}
-
- ignore@5.3.2: {}
-
- ignore@7.0.6: {}
-
- import-fresh@3.3.1:
- dependencies:
- parent-module: 1.0.1
- resolve-from: 4.0.0
-
- imurmurhash@0.1.4: {}
-
- is-extglob@2.1.1: {}
-
- is-glob@4.0.3:
- dependencies:
- is-extglob: 2.1.1
-
- isexe@2.0.0: {}
-
- js-tokens@4.0.0: {}
-
- js-yaml@4.3.1:
- dependencies:
- argparse: 2.0.1
-
- jsesc@3.1.0: {}
-
- json-buffer@3.0.1: {}
-
- json-schema-traverse@0.4.1: {}
-
- json-stable-stringify-without-jsonify@1.0.1: {}
-
- json5@2.2.3: {}
-
- katex@0.16.47:
- dependencies:
- commander: 8.3.0
-
- keyv@4.5.4:
- dependencies:
- json-buffer: 3.0.1
-
- levn@0.4.1:
- dependencies:
- prelude-ls: 1.2.1
- type-check: 0.4.0
-
- locate-path@6.0.0:
- dependencies:
- p-locate: 5.0.0
-
- lodash.merge@4.6.2: {}
-
- loose-envify@1.4.0:
- dependencies:
- js-tokens: 4.0.0
-
- lru-cache@5.1.1:
- dependencies:
- yallist: 3.1.1
-
- mafs@file:mafs.tgz(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
- dependencies:
- '@use-gesture/react': 10.3.1(react@18.3.1)
- katex: 0.16.47
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- tiny-invariant: 1.3.3
- use-resize-observer: 9.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-
- minimatch@10.2.6:
- dependencies:
- brace-expansion: 5.0.9
-
- minimatch@3.1.5:
- dependencies:
- brace-expansion: 1.1.18
-
- ms@2.1.3: {}
-
- nanoid@3.3.18: {}
-
- natural-compare@1.4.0: {}
-
- next@14.2.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
- dependencies:
- '@next/env': 14.2.15
- '@swc/helpers': 0.5.5
- busboy: 1.6.0
- caniuse-lite: 1.0.30001809
- graceful-fs: 4.2.11
- postcss: 8.4.31
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- styled-jsx: 5.1.1(react@18.3.1)
- optionalDependencies:
- '@next/swc-darwin-arm64': 14.2.15
- '@next/swc-darwin-x64': 14.2.15
- '@next/swc-linux-arm64-gnu': 14.2.15
- '@next/swc-linux-arm64-musl': 14.2.15
- '@next/swc-linux-x64-gnu': 14.2.15
- '@next/swc-linux-x64-musl': 14.2.15
- '@next/swc-win32-arm64-msvc': 14.2.15
- '@next/swc-win32-ia32-msvc': 14.2.15
- '@next/swc-win32-x64-msvc': 14.2.15
- transitivePeerDependencies:
- - '@babel/core'
- - babel-plugin-macros
-
- node-releases@2.0.53: {}
-
- optionator@0.9.4:
- dependencies:
- deep-is: 0.1.4
- fast-levenshtein: 2.0.6
- levn: 0.4.1
- prelude-ls: 1.2.1
- type-check: 0.4.0
- word-wrap: 1.2.5
-
- p-limit@3.1.0:
- dependencies:
- yocto-queue: 0.1.0
-
- p-locate@5.0.0:
- dependencies:
- p-limit: 3.1.0
-
- parent-module@1.0.1:
- dependencies:
- callsites: 3.1.0
-
- path-exists@4.0.0: {}
-
- path-key@3.1.1: {}
-
- picocolors@1.1.1: {}
-
- picomatch@4.0.5: {}
-
- postcss@8.4.31:
- dependencies:
- nanoid: 3.3.18
- picocolors: 1.1.1
- source-map-js: 1.2.1
-
- postcss@8.5.26:
- dependencies:
- nanoid: 3.3.18
- picocolors: 1.1.1
- source-map-js: 1.2.1
-
- prelude-ls@1.2.1: {}
-
- punycode@2.3.1: {}
-
- react-dom@18.3.1(react@18.3.1):
- dependencies:
- loose-envify: 1.4.0
- react: 18.3.1
- scheduler: 0.23.2
-
- react-refresh@0.17.0: {}
-
- react@18.3.1:
- dependencies:
- loose-envify: 1.4.0
-
- resolve-from@4.0.0: {}
-
- rollup@4.62.4:
- dependencies:
- '@types/estree': 1.0.9
- optionalDependencies:
- '@napi-rs/lzma-linux-x64-gnu': 1.5.1
- '@rollup/rollup-android-arm-eabi': 4.62.4
- '@rollup/rollup-android-arm64': 4.62.4
- '@rollup/rollup-darwin-arm64': 4.62.4
- '@rollup/rollup-darwin-x64': 4.62.4
- '@rollup/rollup-freebsd-arm64': 4.62.4
- '@rollup/rollup-freebsd-x64': 4.62.4
- '@rollup/rollup-linux-arm-gnueabihf': 4.62.4
- '@rollup/rollup-linux-arm-musleabihf': 4.62.4
- '@rollup/rollup-linux-arm64-gnu': 4.62.4
- '@rollup/rollup-linux-arm64-musl': 4.62.4
- '@rollup/rollup-linux-loong64-gnu': 4.62.4
- '@rollup/rollup-linux-loong64-musl': 4.62.4
- '@rollup/rollup-linux-ppc64-gnu': 4.62.4
- '@rollup/rollup-linux-ppc64-musl': 4.62.4
- '@rollup/rollup-linux-riscv64-gnu': 4.62.4
- '@rollup/rollup-linux-riscv64-musl': 4.62.4
- '@rollup/rollup-linux-s390x-gnu': 4.62.4
- '@rollup/rollup-linux-x64-gnu': 4.62.4
- '@rollup/rollup-linux-x64-musl': 4.62.4
- '@rollup/rollup-openbsd-x64': 4.62.4
- '@rollup/rollup-openharmony-arm64': 4.62.4
- '@rollup/rollup-win32-arm64-msvc': 4.62.4
- '@rollup/rollup-win32-ia32-msvc': 4.62.4
- '@rollup/rollup-win32-x64-gnu': 4.62.4
- '@rollup/rollup-win32-x64-msvc': 4.62.4
- fsevents: 2.3.3
-
- scheduler@0.23.2:
- dependencies:
- loose-envify: 1.4.0
-
- semver@6.3.1: {}
-
- semver@7.8.5: {}
-
- shebang-command@2.0.0:
- dependencies:
- shebang-regex: 3.0.0
-
- shebang-regex@3.0.0: {}
-
- source-map-js@1.2.1: {}
-
- streamsearch@1.1.0: {}
-
- strip-json-comments@3.1.1: {}
-
- styled-jsx@5.1.1(react@18.3.1):
- dependencies:
- client-only: 0.0.1
- react: 18.3.1
-
- supports-color@7.2.0:
- dependencies:
- has-flag: 4.0.0
-
- tiny-invariant@1.3.3: {}
-
- tinyglobby@0.2.17:
- dependencies:
- fdir: 6.5.0(picomatch@4.0.5)
- picomatch: 4.0.5
-
- ts-api-utils@2.5.0(typescript@5.9.3):
- dependencies:
- typescript: 5.9.3
-
- tslib@2.8.1: {}
-
- type-check@0.4.0:
- dependencies:
- prelude-ls: 1.2.1
-
- typescript-eslint@8.67.0(eslint@9.39.5)(typescript@5.9.3):
- dependencies:
- '@typescript-eslint/eslint-plugin': 8.67.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3)
- '@typescript-eslint/parser': 8.67.0(eslint@9.39.5)(typescript@5.9.3)
- '@typescript-eslint/typescript-estree': 8.67.0(typescript@5.9.3)
- '@typescript-eslint/utils': 8.67.0(eslint@9.39.5)(typescript@5.9.3)
- eslint: 9.39.5
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
-
- typescript@5.9.3: {}
-
- undici-types@6.21.0: {}
-
- update-browserslist-db@1.3.1(browserslist@4.28.8):
- dependencies:
- browserslist: 4.28.8
- escalade: 3.2.0
- picocolors: 1.1.1
-
- uri-js@4.4.1:
- dependencies:
- punycode: 2.3.1
-
- use-resize-observer@9.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
- dependencies:
- '@juggle/resize-observer': 3.4.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
-
- vite@5.4.21(@types/node@20.19.43):
- dependencies:
- esbuild: 0.21.5
- postcss: 8.5.26
- rollup: 4.62.4
- optionalDependencies:
- '@types/node': 20.19.43
- fsevents: 2.3.3
-
- which@2.0.2:
- dependencies:
- isexe: 2.0.0
-
- word-wrap@1.2.5: {}
-
- yallist@3.1.1: {}
-
- yocto-queue@0.1.0: {}
diff --git a/tests/frameworks/pnpm-workspace.yaml b/tests/frameworks/pnpm-workspace.yaml
deleted file mode 100644
index 6d6911a5..00000000
--- a/tests/frameworks/pnpm-workspace.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-packages:
- - nextjs
- - vite
diff --git a/tests/frameworks/setup.ts b/tests/frameworks/setup.ts
deleted file mode 100644
index 07873d86..00000000
--- a/tests/frameworks/setup.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-import { execSync } from "node:child_process"
-import path from "node:path"
-import fs from "fs-extra"
-
-const ROOT = path.join(import.meta.dirname, "../..")
-
-function resetFrameworksDir() {
- try {
- execSync("git clean -fdx .", { cwd: path.join(ROOT, "tests/frameworks"), stdio: "inherit" })
- return
- } catch (error) {
- if (process.env.CI) throw error
- console.warn("git unavailable; removing generated framework files manually")
- }
- for (const dir of ["node_modules", ".next", "dist", ".svelte-kit"]) {
- fs.rmSync(path.join(ROOT, "tests/frameworks", dir), { recursive: true, force: true })
- }
- for (const file of ["pnpm-lock.yaml", "package-lock.json", "mafs.tgz"]) {
- fs.rmSync(path.join(ROOT, "tests/frameworks", file), { force: true })
- }
-}
-
-async function main() {
- resetFrameworksDir()
- execSync("pnpm build", { cwd: ROOT, stdio: "inherit" })
- const tarball = execSync("npm pack --silent", { cwd: ROOT, stdio: "pipe" })
- fs.moveSync(
- path.join(ROOT, tarball.toString().trim()),
- path.join(ROOT, "tests/frameworks/mafs.tgz"),
- { overwrite: true },
- )
- execSync("pnpm install", { cwd: path.join(ROOT, "tests/frameworks"), stdio: "inherit" })
- console.error(`Wrote ${path.join(ROOT, "tests/frameworks/mafs.tgz")} and installed`)
-}
-
-main().catch((error) => {
- console.error(error)
- process.exit(1)
-})
diff --git a/tests/frameworks/vite/.gitignore b/tests/frameworks/vite/.gitignore
deleted file mode 100644
index a547bf36..00000000
--- a/tests/frameworks/vite/.gitignore
+++ /dev/null
@@ -1,24 +0,0 @@
-# Logs
-logs
-*.log
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-pnpm-debug.log*
-lerna-debug.log*
-
-node_modules
-dist
-dist-ssr
-*.local
-
-# Editor directories and files
-.vscode/*
-!.vscode/extensions.json
-.idea
-.DS_Store
-*.suo
-*.ntvs*
-*.njsproj
-*.sln
-*.sw?
diff --git a/tests/frameworks/vite/index.html b/tests/frameworks/vite/index.html
deleted file mode 100644
index e4b78eae..00000000
--- a/tests/frameworks/vite/index.html
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
- Vite + React + TS
-
-
-
-
-
-
diff --git a/tests/frameworks/vite/package.json b/tests/frameworks/vite/package.json
deleted file mode 100644
index 60c97280..00000000
--- a/tests/frameworks/vite/package.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "name": "vite",
- "private": true,
- "version": "0.0.0",
- "type": "module",
- "scripts": {
- "dev": "vite",
- "build": "tsc -b && vite build",
- "lint": "eslint .",
- "preview": "vite preview"
- },
- "dependencies": {
- "mafs": "file:../mafs.tgz",
- "react": "^18.3.1",
- "react-dom": "^18.3.1"
- },
- "devDependencies": {
- "@eslint/js": "^9.39.5",
- "@types/react": "^18.3.31",
- "@types/react-dom": "^18.3.7",
- "@vitejs/plugin-react": "^4.7.0",
- "eslint": "^9.39.5",
- "eslint-plugin-react-hooks": "5.1.0-rc-fb9a90fa48-20240614",
- "eslint-plugin-react-refresh": "^0.4.26",
- "globals": "^15.15.0",
- "typescript": "^5.9.3",
- "typescript-eslint": "^8.67.0",
- "vite": "^5.4.21"
- }
-}
diff --git a/tests/frameworks/vite/src/assets/react.svg b/tests/frameworks/vite/src/assets/react.svg
deleted file mode 100644
index 6c87de9b..00000000
--- a/tests/frameworks/vite/src/assets/react.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/tests/frameworks/vite/src/index.css b/tests/frameworks/vite/src/index.css
deleted file mode 100644
index 29938c80..00000000
--- a/tests/frameworks/vite/src/index.css
+++ /dev/null
@@ -1,8 +0,0 @@
-:root {
- color-scheme: light dark;
-}
-
-* {
- margin: 0;
- padding: 0;
-}
diff --git a/tests/frameworks/vite/src/main.tsx b/tests/frameworks/vite/src/main.tsx
deleted file mode 100644
index 647e5b31..00000000
--- a/tests/frameworks/vite/src/main.tsx
+++ /dev/null
@@ -1,19 +0,0 @@
-import { StrictMode } from "react"
-import { createRoot } from "react-dom/client"
-
-import { Coordinates, Mafs, Text } from "mafs"
-
-import "./index.css"
-import "mafs/core.css"
-import "mafs/font.css"
-
-createRoot(document.getElementById("root")!).render(
-
-
-
-
- Mafs is working!
-
-
- ,
-)
diff --git a/tests/frameworks/vite/src/vite-env.d.ts b/tests/frameworks/vite/src/vite-env.d.ts
deleted file mode 100644
index 11f02fe2..00000000
--- a/tests/frameworks/vite/src/vite-env.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-///
diff --git a/tests/frameworks/vite/tsconfig.app.json b/tests/frameworks/vite/tsconfig.app.json
deleted file mode 100644
index f0a23505..00000000
--- a/tests/frameworks/vite/tsconfig.app.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "compilerOptions": {
- "target": "ES2020",
- "useDefineForClassFields": true,
- "lib": ["ES2020", "DOM", "DOM.Iterable"],
- "module": "ESNext",
- "skipLibCheck": true,
-
- /* Bundler mode */
- "moduleResolution": "bundler",
- "allowImportingTsExtensions": true,
- "isolatedModules": true,
- "moduleDetection": "force",
- "noEmit": true,
- "jsx": "react-jsx",
-
- /* Linting */
- "strict": true,
- "noUnusedLocals": true,
- "noUnusedParameters": true,
- "noFallthroughCasesInSwitch": true
- },
- "include": ["src"]
-}
diff --git a/tests/frameworks/vite/tsconfig.app.tsbuildinfo b/tests/frameworks/vite/tsconfig.app.tsbuildinfo
deleted file mode 100644
index aa122181..00000000
--- a/tests/frameworks/vite/tsconfig.app.tsbuildinfo
+++ /dev/null
@@ -1 +0,0 @@
-{"root":["./src/main.tsx","./src/vite-env.d.ts"],"version":"5.9.3"}
\ No newline at end of file
diff --git a/tests/frameworks/vite/tsconfig.json b/tests/frameworks/vite/tsconfig.json
deleted file mode 100644
index d32ff682..00000000
--- a/tests/frameworks/vite/tsconfig.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "files": [],
- "references": [{ "path": "./tsconfig.app.json" }, { "path": "./tsconfig.node.json" }]
-}
diff --git a/tests/frameworks/vite/tsconfig.node.json b/tests/frameworks/vite/tsconfig.node.json
deleted file mode 100644
index 0d3d7144..00000000
--- a/tests/frameworks/vite/tsconfig.node.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "compilerOptions": {
- "target": "ES2022",
- "lib": ["ES2023"],
- "module": "ESNext",
- "skipLibCheck": true,
-
- /* Bundler mode */
- "moduleResolution": "bundler",
- "allowImportingTsExtensions": true,
- "isolatedModules": true,
- "moduleDetection": "force",
- "noEmit": true,
-
- /* Linting */
- "strict": true,
- "noUnusedLocals": true,
- "noUnusedParameters": true,
- "noFallthroughCasesInSwitch": true
- },
- "include": ["vite.config.ts"]
-}
diff --git a/tests/frameworks/vite/tsconfig.node.tsbuildinfo b/tests/frameworks/vite/tsconfig.node.tsbuildinfo
deleted file mode 100644
index 62c7bf92..00000000
--- a/tests/frameworks/vite/tsconfig.node.tsbuildinfo
+++ /dev/null
@@ -1 +0,0 @@
-{"root":["./vite.config.ts"],"version":"5.9.3"}
\ No newline at end of file
diff --git a/tests/frameworks/vite/vite.config.ts b/tests/frameworks/vite/vite.config.ts
deleted file mode 100644
index 16d719d6..00000000
--- a/tests/frameworks/vite/vite.config.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { defineConfig } from "vite"
-import react from "@vitejs/plugin-react"
-
-// https://vitejs.dev/config/
-export default defineConfig({
- plugins: [react()],
-})
diff --git a/tsconfig.json b/tsconfig.json
index 98f0ee76..6d099087 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -18,5 +18,5 @@
"rootDir": "./",
"types": []
},
- "include": ["src/**/*", "e2e"]
+ "include": ["src/**/*"]
}
diff --git a/vitest.config.ts b/vitest.config.ts
deleted file mode 100644
index f48f7436..00000000
--- a/vitest.config.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { defineConfig } from "vite"
-
-export default defineConfig({
- test: {
- dir: "src",
- // A DOM environment is needed to test hooks that render React elements.
- environment: "happy-dom",
- setupFiles: ["./src/testSetup.ts"],
- },
-})