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 - -
-
- - -
-
-

A living proof board for the polish pass

-

Math should feel solid under your hands.

-

- Explore the interactive fixes now shipped in Mafs: cleaner plots, steadier camera - controls, keyboard-ready points, better types, and fewer browser surprises. -

- -
-
-
-
-
∑
- local source · verified -
-
- -
-
- 69 - issues audited -
-
- 8 - discussions reviewed -
-
- 224 - browser checks passing -
-
- 2 - TypeScript generations checked -
-
-
- -
-
-
-

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 - - -
- - 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"], - }, -})