From 94d0e9674953234eb0128f24a4dfbe10379f049c Mon Sep 17 00:00:00 2001 From: Artemiy Davydov Date: Mon, 8 Jun 2026 02:10:54 +0300 Subject: [PATCH] =?UTF-8?q?feat(=F0=9F=93=96):=20add=20documentation=20sit?= =?UTF-8?q?e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy-docs.yml | 54 + README.md | 410 +- apps/docs/.gitignore | 3 + .../app/(content)/api/[[...slug]]/page.tsx | 59 + apps/docs/app/(content)/api/layout.tsx | 25 + .../app/(content)/docs/[[...slug]]/page.tsx | 59 + apps/docs/app/(content)/docs/layout.tsx | 22 + apps/docs/app/(content)/layout.tsx | 12 + apps/docs/app/(home)/layout.tsx | 15 + apps/docs/app/(home)/page.tsx | 65 + apps/docs/app/api/search/route.ts | 5 + apps/docs/app/global.css | 109 + apps/docs/app/layout.tsx | 30 + apps/docs/content/api/canvas-ref.mdx | 93 + apps/docs/content/api/canvas.mdx | 134 + .../content/api/gpu-device-extensions.mdx | 130 + apps/docs/content/api/gpu-device-provider.mdx | 90 + .../docs/content/api/gpu-offscreen-canvas.mdx | 101 + apps/docs/content/api/install-webgpu.mdx | 101 + apps/docs/content/api/meta.json | 18 + apps/docs/content/api/native-types.mdx | 107 + apps/docs/content/api/rn-webgpu.mdx | 128 + apps/docs/content/api/use-canvas-ref.mdx | 71 + apps/docs/content/api/use-device.mdx | 110 + apps/docs/content/api/use-main-device.mdx | 70 + apps/docs/content/api/use-surface.mdx | 67 + .../api/warn-if-not-hardware-accelerated.mdx | 51 + .../content/docs/compute/compute-boids.mdx | 144 + apps/docs/content/docs/compute/compute.mdx | 55 + apps/docs/content/docs/compute/instancing.mdx | 69 + apps/docs/content/docs/compute/meta.json | 11 + apps/docs/content/docs/compute/particles.mdx | 109 + .../content/docs/compute/render-bundles.mdx | 57 + .../content/docs/compute/storage-buffers.mdx | 83 + .../content/docs/getting-started/expo.mdx | 81 + .../docs/getting-started/installation.mdx | 95 + .../content/docs/getting-started/meta.json | 4 + apps/docs/content/docs/integrations/meta.json | 10 + .../docs/integrations/offscreen-canvas.mdx | 53 + .../docs/integrations/react-three-fiber.mdx | 128 + .../content/docs/integrations/reanimated.mdx | 78 + .../content/docs/integrations/tensorflow.mdx | 115 + .../content/docs/integrations/three-js.mdx | 131 + apps/docs/content/docs/meta.json | 15 + .../docs/native-media/external-textures.mdx | 67 + apps/docs/content/docs/native-media/meta.json | 10 + .../docs/native-media/native-textures.mdx | 51 + .../native-media/shared-texture-memory.mdx | 31 + .../docs/native-media/video-player.mdx | 137 + .../docs/native-media/vision-camera.mdx | 244 + apps/docs/content/docs/rendering/canvas.mdx | 85 + .../content/docs/rendering/depth-and-msaa.mdx | 84 + apps/docs/content/docs/rendering/device.mdx | 84 + .../content/docs/rendering/hello-triangle.mdx | 108 + apps/docs/content/docs/rendering/meta.json | 14 + apps/docs/content/docs/rendering/present.mdx | 80 + .../content/docs/rendering/rotating-cube.mdx | 109 + apps/docs/content/docs/rendering/sizing.mdx | 73 + apps/docs/content/docs/rendering/textures.mdx | 81 + .../content/docs/rendering/transparency.mdx | 62 + apps/docs/eslint.config.mjs | 6 + apps/docs/next-env.d.ts | 6 + apps/docs/next.config.ts | 55 + apps/docs/package.json | 42 + apps/docs/postcss.config.mjs | 5 + apps/docs/public/docs/index.html | 19 + apps/docs/source.config.ts | 27 + apps/docs/src/components/HeroShader.tsx | 496 ++ apps/docs/src/components/mdx.tsx | 16 + apps/docs/src/components/mdx/mermaid.tsx | 87 + .../components/playground/PlaygroundInner.tsx | 67 + .../playground/WebGPUPlayground.tsx | 42 + apps/docs/src/components/search.tsx | 44 + apps/docs/src/demos/BoidsDemo.tsx | 119 + apps/docs/src/demos/CameraEffectDemo.tsx | 152 + apps/docs/src/demos/HelloTriangleDemo.tsx | 97 + apps/docs/src/demos/ParticlesDemo.tsx | 119 + apps/docs/src/demos/RotatingCubeDemo.tsx | 175 + apps/docs/src/demos/TensorflowDemo.tsx | 309 + apps/docs/src/demos/ThreeJsDemo.tsx | 98 + apps/docs/src/demos/TransparencyDemo.tsx | 184 + apps/docs/src/demos/makeWebGPURenderer.ts | 43 + apps/docs/src/demos/sentimentModel.ts | 137 + apps/docs/src/demos/shaders/boids.ts | 98 + apps/docs/src/demos/shaders/cameraEffect.ts | 44 + apps/docs/src/demos/shaders/cube.ts | 12 + apps/docs/src/demos/shaders/gradientTiles.ts | 29 + apps/docs/src/demos/shaders/particles.ts | 78 + apps/docs/src/demos/shaders/transparency.ts | 37 + apps/docs/src/demos/shaders/triangle.ts | 4 + apps/docs/src/demos/useWebGPU.ts | 98 + apps/docs/src/global.d.ts | 1 + apps/docs/src/lib/api-source.ts | 7 + apps/docs/src/lib/layout.shared.tsx | 66 + apps/docs/src/lib/react-native-webgpu.ts | 3 + apps/docs/src/lib/search-source.ts | 10 + apps/docs/src/lib/source.ts | 14 + apps/docs/tsconfig.json | 50 + package.json | 1 + packages/webgpu/package.json | 2 +- turbo.json | 14 +- yarn.lock | 7654 ++++++++++++++--- 102 files changed, 13543 insertions(+), 1721 deletions(-) create mode 100644 .github/workflows/deploy-docs.yml create mode 100644 apps/docs/.gitignore create mode 100644 apps/docs/app/(content)/api/[[...slug]]/page.tsx create mode 100644 apps/docs/app/(content)/api/layout.tsx create mode 100644 apps/docs/app/(content)/docs/[[...slug]]/page.tsx create mode 100644 apps/docs/app/(content)/docs/layout.tsx create mode 100644 apps/docs/app/(content)/layout.tsx create mode 100644 apps/docs/app/(home)/layout.tsx create mode 100644 apps/docs/app/(home)/page.tsx create mode 100644 apps/docs/app/api/search/route.ts create mode 100644 apps/docs/app/global.css create mode 100644 apps/docs/app/layout.tsx create mode 100644 apps/docs/content/api/canvas-ref.mdx create mode 100644 apps/docs/content/api/canvas.mdx create mode 100644 apps/docs/content/api/gpu-device-extensions.mdx create mode 100644 apps/docs/content/api/gpu-device-provider.mdx create mode 100644 apps/docs/content/api/gpu-offscreen-canvas.mdx create mode 100644 apps/docs/content/api/install-webgpu.mdx create mode 100644 apps/docs/content/api/meta.json create mode 100644 apps/docs/content/api/native-types.mdx create mode 100644 apps/docs/content/api/rn-webgpu.mdx create mode 100644 apps/docs/content/api/use-canvas-ref.mdx create mode 100644 apps/docs/content/api/use-device.mdx create mode 100644 apps/docs/content/api/use-main-device.mdx create mode 100644 apps/docs/content/api/use-surface.mdx create mode 100644 apps/docs/content/api/warn-if-not-hardware-accelerated.mdx create mode 100644 apps/docs/content/docs/compute/compute-boids.mdx create mode 100644 apps/docs/content/docs/compute/compute.mdx create mode 100644 apps/docs/content/docs/compute/instancing.mdx create mode 100644 apps/docs/content/docs/compute/meta.json create mode 100644 apps/docs/content/docs/compute/particles.mdx create mode 100644 apps/docs/content/docs/compute/render-bundles.mdx create mode 100644 apps/docs/content/docs/compute/storage-buffers.mdx create mode 100644 apps/docs/content/docs/getting-started/expo.mdx create mode 100644 apps/docs/content/docs/getting-started/installation.mdx create mode 100644 apps/docs/content/docs/getting-started/meta.json create mode 100644 apps/docs/content/docs/integrations/meta.json create mode 100644 apps/docs/content/docs/integrations/offscreen-canvas.mdx create mode 100644 apps/docs/content/docs/integrations/react-three-fiber.mdx create mode 100644 apps/docs/content/docs/integrations/reanimated.mdx create mode 100644 apps/docs/content/docs/integrations/tensorflow.mdx create mode 100644 apps/docs/content/docs/integrations/three-js.mdx create mode 100644 apps/docs/content/docs/meta.json create mode 100644 apps/docs/content/docs/native-media/external-textures.mdx create mode 100644 apps/docs/content/docs/native-media/meta.json create mode 100644 apps/docs/content/docs/native-media/native-textures.mdx create mode 100644 apps/docs/content/docs/native-media/shared-texture-memory.mdx create mode 100644 apps/docs/content/docs/native-media/video-player.mdx create mode 100644 apps/docs/content/docs/native-media/vision-camera.mdx create mode 100644 apps/docs/content/docs/rendering/canvas.mdx create mode 100644 apps/docs/content/docs/rendering/depth-and-msaa.mdx create mode 100644 apps/docs/content/docs/rendering/device.mdx create mode 100644 apps/docs/content/docs/rendering/hello-triangle.mdx create mode 100644 apps/docs/content/docs/rendering/meta.json create mode 100644 apps/docs/content/docs/rendering/present.mdx create mode 100644 apps/docs/content/docs/rendering/rotating-cube.mdx create mode 100644 apps/docs/content/docs/rendering/sizing.mdx create mode 100644 apps/docs/content/docs/rendering/textures.mdx create mode 100644 apps/docs/content/docs/rendering/transparency.mdx create mode 100644 apps/docs/eslint.config.mjs create mode 100644 apps/docs/next-env.d.ts create mode 100644 apps/docs/next.config.ts create mode 100644 apps/docs/package.json create mode 100644 apps/docs/postcss.config.mjs create mode 100644 apps/docs/public/docs/index.html create mode 100644 apps/docs/source.config.ts create mode 100644 apps/docs/src/components/HeroShader.tsx create mode 100644 apps/docs/src/components/mdx.tsx create mode 100644 apps/docs/src/components/mdx/mermaid.tsx create mode 100644 apps/docs/src/components/playground/PlaygroundInner.tsx create mode 100644 apps/docs/src/components/playground/WebGPUPlayground.tsx create mode 100644 apps/docs/src/components/search.tsx create mode 100644 apps/docs/src/demos/BoidsDemo.tsx create mode 100644 apps/docs/src/demos/CameraEffectDemo.tsx create mode 100644 apps/docs/src/demos/HelloTriangleDemo.tsx create mode 100644 apps/docs/src/demos/ParticlesDemo.tsx create mode 100644 apps/docs/src/demos/RotatingCubeDemo.tsx create mode 100644 apps/docs/src/demos/TensorflowDemo.tsx create mode 100644 apps/docs/src/demos/ThreeJsDemo.tsx create mode 100644 apps/docs/src/demos/TransparencyDemo.tsx create mode 100644 apps/docs/src/demos/makeWebGPURenderer.ts create mode 100644 apps/docs/src/demos/sentimentModel.ts create mode 100644 apps/docs/src/demos/shaders/boids.ts create mode 100644 apps/docs/src/demos/shaders/cameraEffect.ts create mode 100644 apps/docs/src/demos/shaders/cube.ts create mode 100644 apps/docs/src/demos/shaders/gradientTiles.ts create mode 100644 apps/docs/src/demos/shaders/particles.ts create mode 100644 apps/docs/src/demos/shaders/transparency.ts create mode 100644 apps/docs/src/demos/shaders/triangle.ts create mode 100644 apps/docs/src/demos/useWebGPU.ts create mode 100644 apps/docs/src/global.d.ts create mode 100644 apps/docs/src/lib/api-source.ts create mode 100644 apps/docs/src/lib/layout.shared.tsx create mode 100644 apps/docs/src/lib/react-native-webgpu.ts create mode 100644 apps/docs/src/lib/search-source.ts create mode 100644 apps/docs/src/lib/source.ts create mode 100644 apps/docs/tsconfig.json diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml new file mode 100644 index 000000000..490d15ed5 --- /dev/null +++ b/.github/workflows/deploy-docs.yml @@ -0,0 +1,54 @@ +name: Deploy Docs + +on: + push: + branches: + - main + paths: + - "apps/docs/**" + - "packages/webgpu/src/**" + - ".github/workflows/deploy-docs.yml" + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: true + +jobs: + deploy: + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version-file: .nvmrc + cache: yarn + + - name: Install dependencies + run: yarn install --immutable + + - name: Build docs + env: + GITHUB_PAGES: "true" + NEXT_PUBLIC_BASE_PATH: "/react-native-webgpu" + run: yarn build:docs + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: apps/docs/out + + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/README.md b/README.md index 323865194..014c8501a 100644 --- a/README.md +++ b/README.md @@ -1,416 +1,34 @@ # React Native WebGPU -React Native implementation of WebGPU using [Dawn](https://dawn.googlesource.com/dawn). +WebGPU for React Native, powered by [Dawn](https://dawn.googlesource.com/dawn). React Native ≥ 0.81, New Architecture only. -React Native WebGPU requires React Native 0.81 or newer. It doesn't support the legacy architecture. +**Documentation:** [wcandillon.github.io/react-native-webgpu](https://wcandillon.github.io/react-native-webgpu/) -## Installation - -``` +```sh npm install react-native-webgpu ``` -> The package was previously published as `react-native-wgpu`. A shim with that name is still available and simply re-exports `react-native-webgpu`. - -## With Expo - -Expo provides a React Native WebGPU template that works with React Three Fiber. -This works on iOS, Android, and Web. - -``` -npx create-expo-app@latest -e with-webgpu -``` - -https://github.com/user-attachments/assets/efbd05f8-4ce0-46c2-919c-03e1095bc8ac - -Below are some examples from the [example app](/apps/example/). - -https://github.com/user-attachments/assets/116a41b2-2cf8-49f1-9f16-a5c83637c198 - -Starting from `r168`, Three.js runs out of the box with React Native WebGPU. -You need to have a slight modification of [the metro config](/apps/example/metro.config.js) to resolve Three.js to the WebGPU build. -We also support [react-three-fiber](/apps/example/src/ThreeJS/Fiber.tsx); to make it work, patch `node_modules/@react-three/fiber/package.json` (for instance via `patch-package`) so that it resolves to the WebGPU entry point instead of the React Native bundle: - -```diff -diff --git a/node_modules/@react-three/fiber/package.json b/node_modules/@react-three/fiber/package.json -@@ -- "react-native": "native/dist/react-three-fiber-native.cjs.js", -+ "react-native": "dist/react-three-fiber.cjs.js", -``` - -For model loading, we also need [the following polyfill](/apps/example/src/App.tsx#29). - -https://github.com/user-attachments/assets/5b49ef63-0a3c-4679-aeb5-e4b4dddfcc1d - -We also provide prebuilt binaries for visionOS and macOS. - -https://github.com/user-attachments/assets/2d5c618e-5b15-4cef-8558-d4ddf8c70667 - -## Usage - -Usage is identical to Web. - -```tsx -import React from "react"; -import { StyleSheet, View, PixelRatio } from "react-native"; -import { Canvas, CanvasRef } from "react-native-webgpu"; - -import { redFragWGSL, triangleVertWGSL } from "./triangle"; - -export function HelloTriangle() { - const ref = useRef(null); - useEffect(() => { - const helloTriangle = async () => { - const adapter = await navigator.gpu.requestAdapter(); - if (!adapter) { - throw new Error("No adapter"); - } - const device = await adapter.requestDevice(); - const presentationFormat = navigator.gpu.getPreferredCanvasFormat(); - - const context = ref.current!.getContext("webgpu")!; - const canvas = context.canvas as HTMLCanvasElement; - canvas.width = canvas.clientWidth * PixelRatio.get(); - canvas.height = canvas.clientHeight * PixelRatio.get(); - - if (!context) { - throw new Error("No context"); - } - - context.configure({ - device, - format: presentationFormat, - alphaMode: "opaque", - }); - - const pipeline = device.createRenderPipeline({ - layout: "auto", - vertex: { - module: device.createShaderModule({ - code: triangleVertWGSL, - }), - entryPoint: "main", - }, - fragment: { - module: device.createShaderModule({ - code: redFragWGSL, - }), - entryPoint: "main", - targets: [ - { - format: presentationFormat, - }, - ], - }, - primitive: { - topology: "triangle-list", - }, - }); - - const commandEncoder = device.createCommandEncoder(); - - const textureView = context.getCurrentTexture().createView(); - - const renderPassDescriptor: GPURenderPassDescriptor = { - colorAttachments: [ - { - view: textureView, - clearValue: [0, 0, 0, 1], - loadOp: "clear", - storeOp: "store", - }, - ], - }; - - const passEncoder = commandEncoder.beginRenderPass(renderPassDescriptor); - passEncoder.setPipeline(pipeline); - passEncoder.draw(3); - passEncoder.end(); - - device.queue.submit([commandEncoder.finish()]); - - context.present(); - }; - helloTriangle(); - }, [ref]); - - return ( - - - - ); -} - -const style = StyleSheet.create({ - container: { - flex: 1, - }, - webgpu: { - flex: 1, - }, -}); -``` - -## Example App - -To run the example app you first need to [install Dawn](#installing-dawn). - -From there you will be able to run the example app properly. - -## Similarities and Differences with the Web - -The API has been designed to be completely symmetric with the Web. -For instance, you can access the WebGPU context synchronously, as well as the canvas size. -Pixel density and canvas resizing are handled exactly like on the Web as well. - -```tsx -// The default canvas size is not scaled to the device pixel ratio -// When resizing the canvas, the clientWidth and clientHeight are updated automatically -// This behaviour is symmetric to the Web -const ctx = canvas.current.getContext("webgpu")!; -ctx.canvas.width = ctx.canvas.clientWidth * PixelRatio.get(); -ctx.canvas.height = ctx.canvas.clientHeight * PixelRatio.get(); -``` - -### Frame Scheduling - -In React Native, frame presentation is a manual operation: when you are ready to present a frame, call `present()` on the context after submitting your commands to the queue. This works the same on every runtime: the main JS runtime, the Reanimated UI runtime, and dedicated worklet runtimes (`createWorkletRuntime` / `runOnRuntime`, or a Vision Camera frame processor). `present()` runs synchronously on the calling thread, so the frame is presented from whichever thread did the rendering. - -```tsx -// draw -// submit to the queue -device.queue.submit([commandEncoder.finish()]); -// This method is React Native only -context.present(); -``` - -### Threading model - -react-native-webgpu can drive WebGPU from more than one JavaScript runtime: the main JS runtime, the Reanimated UI runtime, and dedicated worklet runtimes (`createWorkletRuntime` / `runOnRuntime`, or a Vision Camera frame processor). -This module also works well with [Bundle Mode](https://docs.swmansion.com/react-native-worklets/docs/bundleMode/) and lets you run complex Three.js scenes on the UI thread or dedicated worklet threads. - -There is a caveat with `device.lost` and `uncapturederror`: they are only delivered on the main JS runtime. This is usually fine because the GPU device is typically created on the main JS thread and then sent to the UI or a dedicated worklet thread. However, if for some reason you create the device outside the main JS thread, beware that `device.lost` and `uncapturederror` won't fire. - -### Canvas Transparency - -On Android, the `alphaMode` property is ignored when configuring the canvas. -To have a transparent canvas by default, use the `transparent` property. - -```tsx -return ( - - - -); -``` - -### External Textures - -This module provides a `createImageBitmap` function that you can use in `copyExternalImageToTexture`. - -```tsx -const url = Image.resolveAssetSource(require("./assets/image.png")).uri; -const response = await fetch(url); -const imageBitmap = await createImageBitmap(await response.blob()); - -const texture = device.createTexture({ - size: [imageBitmap.width, imageBitmap.height, 1], - format: "rgba8unorm", - usage: - GPUTextureUsage.TEXTURE_BINDING | - GPUTextureUsage.COPY_DST | - GPUTextureUsage.RENDER_ATTACHMENT, -}); -device.queue.copyExternalImageToTexture( - { source: imageBitmap }, - { texture }, - [imageBitmap.width, imageBitmap.height], -); -``` +Expo: `npx create-expo-app@latest -e with-webgpu` -### Shared Texture Memory +Example app: [`apps/example/`](apps/example/) -React Native WebGPU exposes Dawn's `SharedTextureMemory` so you can import a native pixel surface (an `IOSurface`-backed `CVPixelBuffer` on iOS, an `AHardwareBuffer` on Android) as a sampleable `GPUTexture` without copying pixels through the CPU. This is the path you want for camera frames, video frames, or anything coming out of a hardware producer. +## Contributing -Like `importExternalTexture` on the web, this is **enabled by default**, there is nothing to request at device creation. The only thing to check is that the device supports it before importing. It always does on iOS/macOS; it can be missing on some Android drivers and emulators. - -```tsx -import type { NativeVideoFrame } from "react-native-wgpu"; - -const adapter = await navigator.gpu.requestAdapter(); -const device = await adapter!.requestDevice(); - -// On by default when supported; this is the only check you need. -if (!device.features.has("rnwebgpu/native-texture" as GPUFeatureName)) { - return; // rare: some Android drivers/emulators can't import native surfaces -} - -// `frame` here is a NativeVideoFrame whose .handle is the native surface -// (IOSurfaceRef / AHardwareBuffer*). NativeVideoFrames are produced by helpers -// like RNWebGPU.createVideoPlayer or RNWebGPU.createTestVideoFrame, or by -// any third-party module that hands you a compatible native pointer. -const memory = device.importSharedTextureMemory({ - handle: frame.handle, - label: "video-frame", -}); -const texture = memory.createTexture(); - -memory.beginAccess(texture, /* initialized */ true); -// ... bind `texture` into a sampler and render normally ... -memory.endAccess(texture); - -texture.destroy(); -frame.release(); -``` - -`beginAccess`/`endAccess` bracket the GPU's read window on the shared surface. Pass `initialized: true` when the producer has already written meaningful pixels (the typical video/camera case) and `false` when the next pass will fully overwrite the texture. - -### Importing External Textures - -`GPUDevice.importExternalTexture` is the higher-level path for sampling a native surface. You hand it a `NativeVideoFrame` and get back a `GPUExternalTexture` that you bind as a `texture_external` and read with `textureSampleBaseClampToEdge`. It does two things for you on top of `SharedTextureMemory`: - -- **Color conversion.** Camera and video surfaces are usually biplanar YUV (NV12), not RGB. An external texture carries the YUV→RGB matrix and the source/destination color-space transfer functions, so on the supported paths the sampler returns ready-to-use RGB in hardware. With raw `SharedTextureMemory` you would sample the luma/chroma planes and do that conversion by hand in WGSL. This is the main reason to prefer it for camera and video frames. -- **Lifecycle.** It owns the `SharedTextureMemory` + `createTexture` + `beginAccess`/`endAccess` sequence internally, so you just import the frame and `destroy()` the result. - -It builds on the same default-on capability as Shared Texture Memory above, so feature-detect the device the same way before importing. - -> **Android note:** the hardware YUV→RGB conversion is fully automatic on iOS (NV12 `IOSurface`). On Android, camera frames arrive as an _opaque_ YCbCr `AHardwareBuffer`, and Dawn's Vulkan path forces an identity (`RGB_IDENTITY`) sampler conversion, so the external sample comes back as raw `[Y, Cb, Cr]`. You still get the zero-copy import and the rotation/mirror transform, but you need to apply the YUV→RGB matrix yourself in the shader. See the `CAMERA_PRELUDE` in the [VisionCamera example](/apps/example/src/VisionCamera/shaders.ts) for a ready-made BT.709 decode. - -```tsx -const adapter = await navigator.gpu.requestAdapter(); -const device = await adapter!.requestDevice(); -// Feature-detect as shown above before importing on unsupported hardware. - -const render = () => { - // A GPUExternalTexture expires once the queue work that used it is submitted, - // so re-import one every frame. - const externalTexture = device.importExternalTexture({ - source: frame, // a NativeVideoFrame - label: "video-frame", - }); - - const bindGroup = device.createBindGroup({ - layout: pipeline.getBindGroupLayout(0), - entries: [ - { binding: 0, resource: externalTexture }, - { binding: 1, resource: sampler }, - ], - }); - - // ... encode a pass that samples `externalTexture`, then: - device.queue.submit([encoder.finish()]); - context.present(); - - // Release the surface's access window right after the submit that sampled it. - externalTexture.destroy(); -}; -``` - -Camera frames arrive in the sensor's native orientation, so `importExternalTexture` also accepts non-spec `rotation` (`0` | `90` | `180` | `270`, in degrees) and `mirrored` (horizontal flip) options. Dawn bakes them into the sampling transform, so the shader sees an upright frame. They map directly onto VisionCamera's `frame.orientation` / `frame.isMirrored`. - -#### Calling `destroy()` - -A `GPUExternalTexture` keeps an open access window on the underlying native surface until the wrapper is destroyed. On the Web `importExternalTexture` is core and the lifetime is handled for you; here the window is tied to the JavaScript object's lifetime. Call `externalTexture.destroy()` right after the `queue.submit()` that sampled it (never before) to release the surface back to its producer immediately. `destroy()` is idempotent, and the surface is also released when the object is garbage-collected, but relying on GC can starve a producer's buffer pool (e.g. an `AVPlayer`'s recycled `IOSurface`s) and pile up GPU resources, so prefer the explicit call in a render loop. - -### Reanimated Integration - -React Native WebGPU supports running WebGPU rendering on the UI thread using [React Native Reanimated](https://docs.swmansion.com/react-native-reanimated/) and [React Native Worklets](https://github.com/margelo/react-native-worklets). - -First, install the optional peer dependencies: +Yarn workspaces monorepo — use `yarn`, not `npm`. ```sh -npm install react-native-reanimated react-native-worklets -``` - -WebGPU objects are automatically registered for Worklets serialization when the module loads. You can pass WebGPU objects like `GPUDevice` and `GPUCanvasContext` directly to worklets. -Call `installWebGPU()` once at the top of the worklet to install flag constants like `GPUBufferUsage`, `GPUTextureUsage`, and so on. - -```tsx -import { Canvas, installWebGPU } from "react-native-webgpu"; -import { runOnUI } from "react-native-reanimated"; - -const renderFrame = (device: GPUDevice, context: GPUCanvasContext) => { - "worklet"; - installWebGPU(); - // WebGPU constants are now available on this worklet thread - const buffer = device.createBuffer({ - size, - usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ, - }); - // WebGPU rendering code runs on the UI thread - const commandEncoder = device.createCommandEncoder(); - // ... render ... - device.queue.submit([commandEncoder.finish()]); - context.present(); -}; - -// Initialize WebGPU on main thread, then run on UI thread -const device = await adapter.requestDevice(); -const context = canvasRef.current.getContext("webgpu"); -runOnUI(renderFrame)(device, context); -``` - -## Troubleshooting - -### iOS - -To run the React Native WebGPU project on the iOS simulator, you need to disable the Metal validation API. -In "Edit Scheme," uncheck "Metal Validation". Learn more [here](https://developer.apple.com/documentation/xcode/validating-your-apps-metal-api-usage/). - -Uncheck 'Metal Validation' - -## Library Development - -Make sure to check out the submodules: - -``` git submodule update --init -``` - -Make sure you have all the tools required for building the Skia libraries (Android Studio, XCode, Ninja, CMake, Android NDK/build tools). - -### Installing Dawn - -There is an alternative way which is to install the prebuilt binaries from GitHub. - -```sh -$ yarn -$ cd packages/webgpu -$ yarn install-dawn -``` - -### Building Dawn - -Alternatively, you can build Dawn locally. - -```sh yarn -cd packages/webgpu -yarn build-dawn +cd packages/webgpu && yarn install-dawn # prebuilt Dawn binaries +# or: yarn build-dawn # build Dawn from source ``` -### Upgrading - -1. `git submodule update --remote` -2. `yarn clean-dawn` -3. `yarn build-dawn` +Example app (from `apps/example/`): `yarn start` · `yarn ios` · `yarn android` -### Codegen +From the repo root: `yarn lint` · `yarn tsc` · `yarn build:docs` -* `cd packages/webgpu && yarn codegen` +Tests (from `packages/webgpu/`): `yarn test:ref` (Chrome reference) · `yarn test` (E2E — open the example app on the E2E screen) -### Testing +Other `packages/webgpu` scripts: `yarn codegen` · `yarn clean-dawn` · `yarn build-dawn` -In the `package` folder, to run the test against Chrome for reference: - -``` -yarn test:ref -``` - -To run the e2e test, open the example app on the e2e screen. -By default, it will try to connect to a localhost test server. -If you want to run the test suite on a physical device, you can modify the address [here](/apps/example/src/useClient.ts#L4). - -``` -yarn test -``` +See also [`packages/webgpu/CONTRIBUTING.md`](packages/webgpu/CONTRIBUTING.md). diff --git a/apps/docs/.gitignore b/apps/docs/.gitignore new file mode 100644 index 000000000..53ccf97bb --- /dev/null +++ b/apps/docs/.gitignore @@ -0,0 +1,3 @@ +.next/ +out/ +.source/ diff --git a/apps/docs/app/(content)/api/[[...slug]]/page.tsx b/apps/docs/app/(content)/api/[[...slug]]/page.tsx new file mode 100644 index 000000000..987c806c9 --- /dev/null +++ b/apps/docs/app/(content)/api/[[...slug]]/page.tsx @@ -0,0 +1,59 @@ +import { createRelativeLink } from "fumadocs-ui/mdx"; +import { + DocsBody, + DocsDescription, + DocsPage, + DocsTitle, +} from "fumadocs-ui/page"; +import type { Metadata } from "next"; +import { notFound, redirect } from "next/navigation"; + +import { getMDXComponents } from "@/components/mdx"; +import { apiSource } from "@/lib/api-source"; + +export default async function Page(props: PageProps<"/api/[[...slug]]">) { + const params = await props.params; + if (!params.slug?.length) { + redirect("/api/canvas"); + } + + const page = apiSource.getPage(params.slug); + if (!page) { + notFound(); + } + + const MDX = page.data.body; + + return ( + + {page.data.title} + {page.data.description} + + + + + ); +} + +export async function generateStaticParams() { + return [{ slug: [] }, ...apiSource.generateParams()]; +} + +export async function generateMetadata( + props: PageProps<"/api/[[...slug]]">, +): Promise { + const params = await props.params; + const page = apiSource.getPage(params.slug); + if (!page) { + notFound(); + } + + return { + title: `${page.data.title} | API`, + description: page.data.description, + }; +} diff --git a/apps/docs/app/(content)/api/layout.tsx b/apps/docs/app/(content)/api/layout.tsx new file mode 100644 index 000000000..4e7647e18 --- /dev/null +++ b/apps/docs/app/(content)/api/layout.tsx @@ -0,0 +1,25 @@ +import { DocsLayout } from "fumadocs-ui/layouts/docs"; +import type { ReactNode } from "react"; + +import { + apiReferenceSidebarWidthClassName, + docsLayoutContainerClassName, + docsLayoutSidebarOptions, + sideBarOptions, +} from "@/lib/layout.shared"; +import { apiSource } from "@/lib/api-source"; + +export default function Layout({ children }: { children: ReactNode }) { + return ( + + {children} + + ); +} diff --git a/apps/docs/app/(content)/docs/[[...slug]]/page.tsx b/apps/docs/app/(content)/docs/[[...slug]]/page.tsx new file mode 100644 index 000000000..728bde482 --- /dev/null +++ b/apps/docs/app/(content)/docs/[[...slug]]/page.tsx @@ -0,0 +1,59 @@ +import { createRelativeLink } from "fumadocs-ui/mdx"; +import { + DocsBody, + DocsDescription, + DocsPage, + DocsTitle, +} from "fumadocs-ui/page"; +import type { Metadata } from "next"; +import { notFound, redirect } from "next/navigation"; + +import { getMDXComponents } from "@/components/mdx"; +import { source } from "@/lib/source"; + +export default async function Page(props: PageProps<"/docs/[[...slug]]">) { + const params = await props.params; + if (!params.slug?.length) { + redirect("/docs/getting-started/installation"); + } + + const page = source.getPage(params.slug); + if (!page) { + notFound(); + } + + const MDX = page.data.body; + + return ( + + {page.data.title} + {page.data.description} + + + + + ); +} + +export async function generateStaticParams() { + return [{ slug: [] }, ...source.generateParams()]; +} + +export async function generateMetadata( + props: PageProps<"/docs/[[...slug]]">, +): Promise { + const params = await props.params; + const page = source.getPage(params.slug); + if (!page) { + notFound(); + } + + return { + title: page.data.title, + description: page.data.description, + }; +} diff --git a/apps/docs/app/(content)/docs/layout.tsx b/apps/docs/app/(content)/docs/layout.tsx new file mode 100644 index 000000000..0dab4be44 --- /dev/null +++ b/apps/docs/app/(content)/docs/layout.tsx @@ -0,0 +1,22 @@ +import { DocsLayout } from "fumadocs-ui/layouts/docs"; +import type { ReactNode } from "react"; + +import { + docsLayoutContainerClassName, + docsLayoutSidebarOptions, + sideBarOptions, +} from "@/lib/layout.shared"; +import { source } from "@/lib/source"; + +export default function Layout({ children }: { children: ReactNode }) { + return ( + + {children} + + ); +} diff --git a/apps/docs/app/(content)/layout.tsx b/apps/docs/app/(content)/layout.tsx new file mode 100644 index 000000000..ae0ed0104 --- /dev/null +++ b/apps/docs/app/(content)/layout.tsx @@ -0,0 +1,12 @@ +import { HomeLayout } from "fumadocs-ui/layouts/home"; +import type { ReactNode } from "react"; + +import { docsShellClassName, homeOptions } from "@/lib/layout.shared"; + +export default function ContentLayout({ children }: { children: ReactNode }) { + return ( + + {children} + + ); +} diff --git a/apps/docs/app/(home)/layout.tsx b/apps/docs/app/(home)/layout.tsx new file mode 100644 index 000000000..d7d69f9b4 --- /dev/null +++ b/apps/docs/app/(home)/layout.tsx @@ -0,0 +1,15 @@ +import { HomeLayout } from "fumadocs-ui/layouts/home"; +import type { ReactNode } from "react"; + +import { homeOptions } from "@/lib/layout.shared"; + +export default function Layout({ children }: { children: ReactNode }) { + return ( + +
{children}
+
+ ); +} diff --git a/apps/docs/app/(home)/page.tsx b/apps/docs/app/(home)/page.tsx new file mode 100644 index 000000000..a4f4a22d6 --- /dev/null +++ b/apps/docs/app/(home)/page.tsx @@ -0,0 +1,65 @@ +"use client"; + +import dynamic from "next/dynamic"; +import Link from "next/link"; +import { useTheme } from "next-themes"; + +import { homeLinks } from "@/lib/layout.shared"; + +const HeroShader = dynamic( + () => import("@/components/HeroShader").then((m) => m.HeroShader), + { ssr: false }, +); + +const links = homeLinks(); + +export default function HomePage() { + const { resolvedTheme } = useTheme(); + const isLight = resolvedTheme === "light"; + + return ( +
+ + +
+

+ React Native WebGPU +

+

+ The most powerful GPU library for React Native. Dawn-backed WebGPU on + iOS, Android, macOS, and visionOS. +

+
+ + Get Started + + + API Reference + +
+
+
+ ); +} diff --git a/apps/docs/app/api/search/route.ts b/apps/docs/app/api/search/route.ts new file mode 100644 index 000000000..5c773a0e8 --- /dev/null +++ b/apps/docs/app/api/search/route.ts @@ -0,0 +1,5 @@ +import { searchSource } from "@/lib/search-source"; +import { flexsearchFromSource } from "fumadocs-core/search/flexsearch"; + +export const revalidate = false; +export const { staticGET: GET } = flexsearchFromSource(searchSource); diff --git a/apps/docs/app/global.css b/apps/docs/app/global.css new file mode 100644 index 000000000..1323d6f72 --- /dev/null +++ b/apps/docs/app/global.css @@ -0,0 +1,109 @@ +@import "tailwindcss"; +@import "fumadocs-ui/css/neutral.css"; +@import "fumadocs-ui/css/preset.css"; + +@source "../src/lib/**/*.tsx"; +@source "../src/components/**/*.tsx"; + +html { + scroll-behavior: smooth; +} + +button[data-search-full] { + @apply mx-auto! rounded-xl! max-w-lg!; +} + +article { + @apply pt-8; +} + +@media (max-width: 767px) { + .rnwgpu-docs-shell #nd-nav { + display: none; + } +} + +@media (min-width: 768px) { + /* Make the HomeLayout wrapper transparent so its sticky #nd-nav child + becomes a direct layout participant of .rnwgpu-docs-shell. */ + .rnwgpu-docs-shell > #nd-home-layout { + display: contents; + } + + /* Nav bar height (h-14 = 3.5rem). Fumadocs uses this to offset + sticky sidebar/ToC below the nav. */ + .rnwgpu-docs-shell { + --fd-banner-height: 3.5rem; + } + + /* Short pages fill the viewport (nav + grid = 100dvh). */ + .rnwgpu-docs-shell > #nd-docs-layout { + min-height: calc(100dvh - var(--fd-banner-height)); + } + + /* Sidebar: no duplicate title, search, or collapse - top nav owns search. */ + .rnwgpu-docs-layout #nd-sidebar > div:first-child > div:first-child { + display: none !important; + } +} + +@theme { + --spacing-fd-container: 1400px; + --fd-layout-width: 1400px; +} + +body { + overscroll-behavior-y: none; + background-color: var(--color-fd-background); +} + +/* Homepage: single viewport, no document scroll */ +.rnwgpu-home-shell { + --fd-banner-height: 3.5rem; +} + +.rnwgpu-home-shell > div:last-child { + display: flex; + min-height: 0; + flex: 1; + flex-direction: column; +} + +@media (max-width: 767px) { + .rnwgpu-home-shell { + --fd-banner-height: 0px; + } +} + +/* Interactive demos: square-play icon at the right of sidebar titles */ +#nd-sidebar a[href$="/hello-triangle"], +#nd-sidebar a[href$="/rotating-cube"], +#nd-sidebar a[href$="/compute-boids"], +#nd-sidebar a[href$="/particles"], +#nd-sidebar a[href$="/three-js"], +#nd-sidebar a[href$="/react-three-fiber"], +#nd-sidebar a[href$="/tensorflow"] { + display: flex !important; + align-items: center; + gap: 0.375rem; +} + +#nd-sidebar a[href$="/hello-triangle"]::after, +#nd-sidebar a[href$="/rotating-cube"]::after, +#nd-sidebar a[href$="/compute-boids"]::after, +#nd-sidebar a[href$="/particles"]::after, +#nd-sidebar a[href$="/three-js"]::after, +#nd-sidebar a[href$="/react-three-fiber"]::after, +#nd-sidebar a[href$="/tensorflow"]::after { + content: ""; + margin-left: auto; + width: 0.875rem; + height: 0.875rem; + flex-shrink: 0; + opacity: 0.55; + background-color: var(--color-fd-primary); + mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='18' height='18' x='3' y='3' rx='2'/%3E%3Cpath d='m9 8 6 4-6 4Z'/%3E%3C/svg%3E"); + mask-size: contain; + mask-repeat: no-repeat; + mask-position: center; +} diff --git a/apps/docs/app/layout.tsx b/apps/docs/app/layout.tsx new file mode 100644 index 000000000..bb5d946cb --- /dev/null +++ b/apps/docs/app/layout.tsx @@ -0,0 +1,30 @@ +import "./global.css"; +import { RootProvider } from "fumadocs-ui/provider/next"; +import type { ReactNode } from "react"; + +import DocsSearchDialog from "@/components/search"; + +const basePath = process.env.GITHUB_PAGES === "true" ? "/react-native-webgpu" : ""; + +export default function Layout({ children }: { children: ReactNode }) { + return ( + + + + {children} + + {basePath ? ( + + Redirecting… + + +

+ Continue to Installation +

+ + diff --git a/apps/docs/source.config.ts b/apps/docs/source.config.ts new file mode 100644 index 000000000..ba6c197b2 --- /dev/null +++ b/apps/docs/source.config.ts @@ -0,0 +1,27 @@ +import { createGenerator, remarkAutoTypeTable } from "fumadocs-typescript"; +import { remarkMdxMermaid } from "fumadocs-core/mdx-plugins"; +import { defineConfig, defineDocs } from "fumadocs-mdx/config"; + +const generator = createGenerator({ cache: "fs" }); + +export const docs = defineDocs({ + dir: "content/docs", +}); + +export const api = defineDocs({ + dir: "content/api", +}); + +export default defineConfig({ + mdxOptions: { + remarkNpmOptions: { + persist: { + id: "package-manager", + }, + }, + remarkPlugins: [ + remarkMdxMermaid, + [remarkAutoTypeTable, { generator }], + ], + }, +}); diff --git a/apps/docs/src/components/HeroShader.tsx b/apps/docs/src/components/HeroShader.tsx new file mode 100644 index 000000000..64d76579a --- /dev/null +++ b/apps/docs/src/components/HeroShader.tsx @@ -0,0 +1,496 @@ +"use client"; + +import { useEffect, useRef } from "react"; +import { useTheme } from "next-themes"; + +const CHARSET = " .'`^\",:;!|#@█"; +const CHAR_W = 8; +const CHAR_H = 12; +const CHAR_SIZE = 10; + +const VERTEX_SHADER = /* wgsl */ ` +@vertex +fn vs_main(@builtin(vertex_index) vi: u32) -> @builtin(position) vec4f { + var pos = array( + vec2f(-1.0, -1.0), + vec2f(3.0, -1.0), + vec2f(-1.0, 3.0), + ); + return vec4f(pos[vi], 0.0, 1.0); +} +`; + +const FRAGMENT_SHADER = /* wgsl */ ` +struct Uniforms { + resolution: vec2f, + time: f32, + charSize: f32, + charCount: f32, + theme: f32, + shape: f32, +} + +@group(0) @binding(0) var u: Uniforms; +@group(0) @binding(1) var fontAtlas: texture_2d; +@group(0) @binding(2) var fontSampler: sampler; + +fn rotX(p: vec3f, a: f32) -> vec3f { + let s = sin(a); + let c = cos(a); + return vec3f(p.x, c * p.y - s * p.z, s * p.y + c * p.z); +} + +fn rotY(p: vec3f, a: f32) -> vec3f { + let s = sin(a); + let c = cos(a); + return vec3f(c * p.x + s * p.z, p.y, -s * p.x + c * p.z); +} + +fn sdfBox(p: vec3f, halfExtent: vec3f) -> f32 { + let q = abs(p) - halfExtent; + return length(max(q, vec3f(0.0))) + min(max(q.x, max(q.y, q.z)), 0.0); +} + +fn sdfSphere(p: vec3f, radius: f32) -> f32 { + return length(p) - radius; +} + +fn sdfScene(p: vec3f, morph: f32) -> f32 { + return mix(sdfBox(p, vec3f(1.0)), sdfSphere(p, 1.0), morph); +} + +fn sdfNormal(p: vec3f, morph: f32) -> vec3f { + let eps = 0.0015; + let d = sdfScene(p, morph); + let nx = sdfScene(p + vec3f(eps, 0.0, 0.0), morph) - d; + let ny = sdfScene(p + vec3f(0.0, eps, 0.0), morph) - d; + let nz = sdfScene(p + vec3f(0.0, 0.0, eps), morph) - d; + return normalize(vec3f(nx, ny, nz)); +} + +fn traceScene(ro: vec3f, rd: vec3f, morph: f32) -> f32 { + var t = 0.0; + for (var i = 0; i < 80; i++) { + let p = ro + rd * t; + let d = sdfScene(p, morph); + if (d < 0.0008) { + return t; + } + t += max(d * 0.9, 0.001); + if (t > 24.0) { + break; + } + } + return -1.0; +} + +fn bayer8(p: vec2f) -> f32 { + var mx = u32(p.x) & 7u; + var my = u32(p.y) & 7u; + var acc = 0u; + for (var i = 0u; i < 3u; i++) { + let ox = mx & 1u; + let oy = my & 1u; + acc = acc * 4u + oy * 2u + ox; + mx = mx >> 1u; + my = my >> 1u; + } + return f32(acc) / 64.0; +} + +fn rotZ(p: vec3f, a: f32) -> vec3f { + let s = sin(a); + let c = cos(a); + return vec3f(c * p.x - s * p.y, s * p.x + c * p.y, p.z); +} + +fn imageDither(col: vec3f, px: vec2f) -> vec3f { + let levels = 22.0; + let strength = 1.6; + let dR = bayer8(px) - 0.5; + let dG = bayer8(px + vec2f(3.0, 1.0)) - 0.5; + let dB = bayer8(px + vec2f(1.0, 5.0)) - 0.5; + return vec3f( + (floor(col.r * levels + dR * strength) + 0.5) / levels, + (floor(col.g * levels + dG * strength) + 0.5) / levels, + (floor(col.b * levels + dB * strength) + 0.5) / levels, + ); +} + +fn themeBg(theme: f32) -> vec3f { + return mix(vec3f(0.018, 0.018, 0.03), vec3f(0.965, 0.968, 0.982), theme); +} + +fn faceTone(n: vec3f) -> f32 { + let a = abs(n); + if (a.x > a.y && a.x > a.z) { + return mix(0.48, 0.52, step(0.0, n.x)); + } + if (a.y > a.z) { + return mix(0.46, 0.50, step(0.0, n.y)); + } + return mix(0.49, 0.53, step(0.0, n.z)); +} + +fn surfaceTone(n: vec3f, shape: f32) -> f32 { + let box = faceTone(n); + let sphere = 0.50 + n.y * 0.035 + n.z * 0.015; + return mix(box, sphere, shape); +} + +fn cubeSample(pixel: vec2f) -> vec4f { + let aspect = u.resolution.x / max(u.resolution.y, 1.0); + var uv = pixel / u.resolution * 2.0 - 1.0; + uv.x *= aspect; + + let ro = vec3f(0.0, 0.0, -3.4); + let rd = normalize(vec3f(uv * 0.92, 1.6)); + + let yaw = u.time * 0.38; + let pitch = u.time * 0.14; + let roll = u.time * 0.091; + + var lro = rotY(ro, -yaw); + var lrd = rotY(rd, -yaw); + lro = rotX(lro, -pitch); + lrd = rotX(lrd, -pitch); + lro = rotZ(lro, -roll); + lrd = rotZ(lrd, -roll); + + let hitT = traceScene(lro, lrd, u.shape); + if (hitT < 0.0) { + return vec4f(0.0, 0.0, 0.0, 0.0); + } + + let pt = lro + lrd * hitT; + let n = sdfNormal(pt, u.shape); + let light = normalize(vec3f(0.35, 0.55, 0.75)); + let diff = clamp(dot(n, light), 0.0, 1.0); + let rim = pow(1.0 - clamp(dot(n, -lrd), 0.0, 1.0), 2.0) * 0.18; + + let tone = surfaceTone(n, u.shape); + let shade = clamp(diff * 0.62 + rim + 0.26 + (tone - 0.5) * 0.10, 0.0, 1.0); + + return vec4f(tone, tone, tone, shade); +} + +@fragment +fn fs_main(@builtin(position) pos: vec4f) -> @location(0) vec4f { + let cell = floor(pos.xy / u.charSize); + let cellCenter = (cell + 0.5) * u.charSize; + let sample = cubeSample(cellCenter); + let shade = sample.a; + let face = sample.r; + + let idx = u32(clamp(shade * (u.charCount - 1.0), 0.0, u.charCount - 1.0)); + + let local = fract(pos.xy / u.charSize); + let atlasX = (f32(idx) + local.x) / u.charCount; + let atlasY = local.y; + let glyph = textureSample(fontAtlas, fontSampler, vec2f(atlasX, atlasY)).r; + + let bg = themeBg(u.theme); + + let mark = glyph * (0.34 + shade * 0.38); + let ink = vec3f(0.54, 0.54, 0.56) * (0.94 + face * 0.06); + let col = mix( + bg + ink * mark * 0.19, + bg - ink * mark * 0.25, + u.theme, + ); + + if (shade < 0.02 || (glyph < 0.04 && shade < 0.10)) { + return vec4f(imageDither(bg, floor(pos.xy)), 1.0); + } + + return vec4f(imageDither(col, floor(pos.xy)), 1.0); +} +`; + +function createFontAtlas(): Uint8Array { + const width = CHAR_W * CHARSET.length; + const height = CHAR_H; + const canvas = document.createElement("canvas"); + canvas.width = width; + canvas.height = height; + + const ctx = canvas.getContext("2d"); + if (!ctx) { + return new Uint8Array(width * height); + } + + ctx.fillStyle = "#000000"; + ctx.fillRect(0, 0, width, height); + ctx.fillStyle = "#ffffff"; + ctx.font = `bold ${CHAR_H - 1}px ui-monospace, SFMono-Regular, Menlo, monospace`; + ctx.textBaseline = "middle"; + + for (let i = 0; i < CHARSET.length; i++) { + ctx.fillText(CHARSET[i]!, i * CHAR_W + 1, height / 2 + 1); + } + + const { data } = ctx.getImageData(0, 0, width, height); + const luminance = new Uint8Array(width * height); + for (let i = 0; i < width * height; i++) { + const r = data[i * 4]!; + const g = data[i * 4 + 1]!; + const b = data[i * 4 + 2]!; + luminance[i] = Math.round(r * 0.299 + g * 0.587 + b * 0.114); + } + + return luminance; +} + +interface HeroShaderProps { + className?: string; +} + +const CLICKS_TO_MORPH = 5; +const CLICK_RESET_MS = 2500; +const MORPH_BACK_DEBOUNCE_MS = 700; + +export function HeroShader({ className }: HeroShaderProps) { + const canvasRef = useRef(null); + const { resolvedTheme } = useTheme(); + const themeTargetRef = useRef(0); + const themeRef = useRef(0); + const shapeTargetRef = useRef(0); + const shapeRef = useRef(0); + const clickCountRef = useRef(0); + const lastClickAtRef = useRef(0); + const sphereLockedAtRef = useRef(0); + const lastTimeRef = useRef(0); + + useEffect(() => { + themeTargetRef.current = resolvedTheme === "light" ? 1 : 0; + }, [resolvedTheme]); + + const onCanvasClick = () => { + const now = performance.now(); + + if (shapeTargetRef.current >= 1) { + if (now - sphereLockedAtRef.current < MORPH_BACK_DEBOUNCE_MS) { + return; + } + shapeTargetRef.current = 0; + clickCountRef.current = 0; + return; + } + + if (now - lastClickAtRef.current > CLICK_RESET_MS) { + clickCountRef.current = 0; + } + lastClickAtRef.current = now; + clickCountRef.current += 1; + + if (clickCountRef.current >= CLICKS_TO_MORPH) { + shapeTargetRef.current = 1; + sphereLockedAtRef.current = now; + clickCountRef.current = 0; + } + }; + + useEffect(() => { + const canvas = canvasRef.current; + if (!canvas || !navigator.gpu) { + return; + } + + let animationId = 0; + let disposed = false; + let device: GPUDevice | null = null; + let uniformBuffer: GPUBuffer | null = null; + let fontTexture: GPUTexture | null = null; + let clearColor: GPUColor = [0.018, 0.018, 0.03, 1]; + + (async () => { + const adapter = await navigator.gpu.requestAdapter(); + if (!adapter || disposed) { + return; + } + + device = await adapter.requestDevice(); + if (disposed) { + device.destroy(); + return; + } + + const context = canvas.getContext("webgpu"); + if (!context) { + return; + } + + const format = navigator.gpu.getPreferredCanvasFormat(); + const atlasData = createFontAtlas(); + const atlasWidth = CHAR_W * CHARSET.length; + const atlasHeight = CHAR_H; + + fontTexture = device.createTexture({ + size: [atlasWidth, atlasHeight], + format: "r8unorm", + usage: GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST, + }); + + device.queue.writeTexture( + { texture: fontTexture }, + new Uint8Array(atlasData), + { bytesPerRow: atlasWidth }, + [atlasWidth, atlasHeight], + ); + + const sampler = device.createSampler({ + magFilter: "nearest", + minFilter: "nearest", + }); + + const renderModule = device.createShaderModule({ code: FRAGMENT_SHADER }); + + const bindGroupLayout = device.createBindGroupLayout({ + entries: [ + { + binding: 0, + visibility: GPUShaderStage.FRAGMENT, + buffer: { type: "uniform" }, + }, + { + binding: 1, + visibility: GPUShaderStage.FRAGMENT, + texture: { sampleType: "float" }, + }, + { + binding: 2, + visibility: GPUShaderStage.FRAGMENT, + sampler: { type: "filtering" }, + }, + ], + }); + + const renderPipeline = device.createRenderPipeline({ + layout: device.createPipelineLayout({ + bindGroupLayouts: [bindGroupLayout], + }), + vertex: { + module: device.createShaderModule({ code: VERTEX_SHADER }), + entryPoint: "vs_main", + }, + fragment: { + module: renderModule, + entryPoint: "fs_main", + targets: [{ format }], + }, + primitive: { topology: "triangle-list" }, + }); + + uniformBuffer = device.createBuffer({ + size: 32, + usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST, + }); + + const bindGroup = device.createBindGroup({ + layout: bindGroupLayout, + entries: [ + { binding: 0, resource: { buffer: uniformBuffer } }, + { binding: 1, resource: fontTexture.createView() }, + { binding: 2, resource: sampler }, + ], + }); + + const resize = () => { + if (!device) return; + + const dpr = window.devicePixelRatio || 1; + const { width, height } = canvas.getBoundingClientRect(); + canvas.width = Math.max(1, Math.floor(width * dpr)); + canvas.height = Math.max(1, Math.floor(height * dpr)); + context.configure({ device, format, alphaMode: "opaque" }); + }; + + resize(); + window.addEventListener("resize", resize); + lastTimeRef.current = performance.now(); + + const render = (now: number) => { + if (disposed || !device || !uniformBuffer) { + return; + } + + resize(); + + const dt = Math.min(0.032, (now - lastTimeRef.current) / 1000); + lastTimeRef.current = now; + const time = now / 1000; + const dpr = window.devicePixelRatio || 1; + + themeRef.current += + (themeTargetRef.current - themeRef.current) * (1 - Math.exp(-dt * 10)); + const theme = themeRef.current; + + shapeRef.current += + (shapeTargetRef.current - shapeRef.current) * (1 - Math.exp(-dt * 1.8)); + const shape = shapeRef.current; + + clearColor = theme > 0.5 + ? [0.965, 0.968, 0.982, 1] + : [0.018, 0.018, 0.03, 1]; + + const uniformData = new ArrayBuffer(32); + new Float32Array(uniformData, 0, 2).set([ + canvas.width, + canvas.height, + ]); + new Float32Array(uniformData, 8, 5).set([ + time, + CHAR_SIZE * dpr, + CHARSET.length, + theme, + shape, + ]); + device.queue.writeBuffer(uniformBuffer, 0, uniformData); + + const encoder = device.createCommandEncoder(); + const pass = encoder.beginRenderPass({ + colorAttachments: [ + { + view: context.getCurrentTexture().createView(), + clearValue: clearColor, + loadOp: "clear", + storeOp: "store", + }, + ], + }); + pass.setPipeline(renderPipeline); + pass.setBindGroup(0, bindGroup); + pass.draw(3); + pass.end(); + + device.queue.submit([encoder.finish()]); + animationId = requestAnimationFrame(render); + }; + + animationId = requestAnimationFrame(render); + + return () => { + window.removeEventListener("resize", resize); + }; + })(); + + return () => { + disposed = true; + cancelAnimationFrame(animationId); + uniformBuffer?.destroy(); + fontTexture?.destroy(); + device?.destroy(); + }; + }, []); + + const isLight = resolvedTheme === "light"; + + return ( + + ); +} diff --git a/apps/docs/src/components/mdx.tsx b/apps/docs/src/components/mdx.tsx new file mode 100644 index 000000000..6aaeda973 --- /dev/null +++ b/apps/docs/src/components/mdx.tsx @@ -0,0 +1,16 @@ +import defaultComponents from "fumadocs-ui/mdx"; +import { TypeTable } from "fumadocs-ui/components/type-table"; +import type { MDXComponents } from "mdx/types"; + +import { Mermaid } from "@/components/mdx/mermaid"; +import { WebGPUPlayground } from "@/components/playground/WebGPUPlayground"; + +export function getMDXComponents(components?: MDXComponents): MDXComponents { + return { + ...defaultComponents, + TypeTable, + Mermaid, + WebGPUPlayground, + ...components, + }; +} diff --git a/apps/docs/src/components/mdx/mermaid.tsx b/apps/docs/src/components/mdx/mermaid.tsx new file mode 100644 index 000000000..056fe33d9 --- /dev/null +++ b/apps/docs/src/components/mdx/mermaid.tsx @@ -0,0 +1,87 @@ +"use client"; + +import { useEffect, useId, useRef, useState } from "react"; +import { useTheme } from "next-themes"; + +export function Mermaid({ chart }: { chart: string }) { + const [mounted, setMounted] = useState(false); + + useEffect(() => { + setMounted(true); + }, []); + + if (!mounted) { + return ( +
+ ); + } + + return ; +} + +function MermaidContent({ chart }: { chart: string }) { + const id = useId(); + const containerRef = useRef(null); + const { resolvedTheme } = useTheme(); + const [svg, setSvg] = useState(""); + + useEffect(() => { + let cancelled = false; + + async function renderChart() { + const { default: mermaid } = await import("mermaid"); + + mermaid.initialize({ + startOnLoad: false, + securityLevel: "loose", + fontFamily: "inherit", + themeCSS: "margin: 0 auto;", + theme: resolvedTheme === "dark" ? "dark" : "default", + flowchart: { + htmlLabels: true, + curve: "basis", + padding: 16, + nodeSpacing: 40, + rankSpacing: 56, + }, + }); + + try { + const { svg, bindFunctions } = await mermaid.render( + id.replaceAll(":", ""), + chart.replaceAll("\\n", "\n"), + containerRef.current ?? undefined, + ); + + if (cancelled) return; + + setSvg(svg); + + if (containerRef.current) { + bindFunctions?.(containerRef.current); + } + } catch (error) { + console.error("Mermaid render error:", error); + } + } + + void renderChart(); + + return () => { + cancelled = true; + }; + }, [chart, id, resolvedTheme]); + + return ( +
+
+
+ ); +} diff --git a/apps/docs/src/components/playground/PlaygroundInner.tsx b/apps/docs/src/components/playground/PlaygroundInner.tsx new file mode 100644 index 000000000..5a388b789 --- /dev/null +++ b/apps/docs/src/components/playground/PlaygroundInner.tsx @@ -0,0 +1,67 @@ +"use client"; + +import dynamic from "next/dynamic"; +import { View } from "react-native"; +import { GPUDeviceProvider } from "react-native-webgpu"; + +import { HelloTriangleDemo } from "@/demos/HelloTriangleDemo"; +import { RotatingCubeDemo } from "@/demos/RotatingCubeDemo"; +import { TransparencyDemo } from "@/demos/TransparencyDemo"; +import type { PlaygroundDemo } from "./WebGPUPlayground"; + +const BoidsDemo = dynamic( + () => import("@/demos/BoidsDemo").then((m) => m.BoidsDemo), + { ssr: false }, +); +const ParticlesDemo = dynamic( + () => import("@/demos/ParticlesDemo").then((m) => m.ParticlesDemo), + { ssr: false }, +); +const CameraEffectDemo = dynamic( + () => import("@/demos/CameraEffectDemo").then((m) => m.CameraEffectDemo), + { ssr: false }, +); +const ThreeJsDemo = dynamic( + () => import("@/demos/ThreeJsDemo").then((m) => m.ThreeJsDemo), + { ssr: false }, +); +const TensorflowDemo = dynamic( + () => import("@/demos/TensorflowDemo").then((m) => m.TensorflowDemo), + { ssr: false }, +); + +interface PlaygroundInnerProps { + demo: PlaygroundDemo; + height: number; + transparent?: boolean; +} + +export default function PlaygroundInner({ + demo, + height, + transparent, +}: PlaygroundInnerProps) { + if (demo === "tensorflow") { + return ( + + + + ); + } + + return ( + + + {demo === "hello-triangle" ? ( + + ) : null} + {demo === "rotating-cube" ? : null} + {demo === "transparency" ? : null} + {demo === "boids" ? : null} + {demo === "particles" ? : null} + {demo === "camera-effect" ? : null} + {demo === "three-js" ? : null} + + + ); +} diff --git a/apps/docs/src/components/playground/WebGPUPlayground.tsx b/apps/docs/src/components/playground/WebGPUPlayground.tsx new file mode 100644 index 000000000..8b1c44d0f --- /dev/null +++ b/apps/docs/src/components/playground/WebGPUPlayground.tsx @@ -0,0 +1,42 @@ +"use client"; + +import dynamic from "next/dynamic"; +import type { ReactNode } from "react"; + +const PlaygroundInner = dynamic(() => import("./PlaygroundInner"), { + ssr: false, + loading: () => ( +
+ Loading WebGPU playground… +
+ ), +}); + +export type PlaygroundDemo = + | "hello-triangle" + | "rotating-cube" + | "transparency" + | "boids" + | "particles" + | "camera-effect" + | "three-js" + | "tensorflow"; + +interface WebGPUPlaygroundProps { + demo: PlaygroundDemo; + height?: number; + transparent?: boolean; + children?: ReactNode; +} + +export function WebGPUPlayground({ + demo, + height = 320, + transparent, +}: WebGPUPlaygroundProps) { + return ( +
+ +
+ ); +} diff --git a/apps/docs/src/components/search.tsx b/apps/docs/src/components/search.tsx new file mode 100644 index 000000000..0ad3e3739 --- /dev/null +++ b/apps/docs/src/components/search.tsx @@ -0,0 +1,44 @@ +"use client"; + +import { + SearchDialog, + SearchDialogClose, + SearchDialogContent, + SearchDialogFooter, + SearchDialogHeader, + SearchDialogIcon, + SearchDialogInput, + SearchDialogList, + SearchDialogOverlay, + type SharedProps, +} from "fumadocs-ui/components/dialog/search"; +import { useDocsSearch } from "fumadocs-core/search/client"; +import { flexsearchStaticClient } from "fumadocs-core/search/client/flexsearch-static"; + +export default function DocsSearchDialog(props: SharedProps) { + const { search, setSearch, query } = useDocsSearch({ + client: flexsearchStaticClient({}), + }); + + return ( + + + + + + + + + + + + + ); +} diff --git a/apps/docs/src/demos/BoidsDemo.tsx b/apps/docs/src/demos/BoidsDemo.tsx new file mode 100644 index 000000000..becce23d6 --- /dev/null +++ b/apps/docs/src/demos/BoidsDemo.tsx @@ -0,0 +1,119 @@ +"use client"; + +import { useCallback } from "react"; +import { StyleSheet, View } from "react-native"; +import { Canvas } from "react-native-webgpu"; + +import { + BOID_COUNT, + boidsComputeWGSL, + boidsRenderWGSL, +} from "./shaders/boids"; +import { useWebGPU, type SceneProps } from "./useWebGPU"; + +function initBoids(): Float32Array { + const data = new Float32Array(BOID_COUNT * 4); + for (let i = 0; i < BOID_COUNT; i++) { + data[i * 4] = Math.random() * 1.6 - 0.8; + data[i * 4 + 1] = Math.random() * 1.6 - 0.8; + data[i * 4 + 2] = (Math.random() - 0.5) * 0.01; + data[i * 4 + 3] = (Math.random() - 0.5) * 0.01; + } + return data; +} + +export function BoidsDemo() { + const scene = useCallback(({ context, device, presentationFormat }: SceneProps) => { + const bufferA = device.createBuffer({ + size: BOID_COUNT * 16, + usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST, + }); + const bufferB = device.createBuffer({ + size: BOID_COUNT * 16, + usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST, + }); + const initial = initBoids(); + device.queue.writeBuffer( + bufferA, + 0, + initial.buffer, + initial.byteOffset, + initial.byteLength, + ); + + const computeModule = device.createShaderModule({ code: boidsComputeWGSL }); + const computePipeline = device.createComputePipeline({ + layout: "auto", + compute: { module: computeModule, entryPoint: "main" }, + }); + + const renderModule = device.createShaderModule({ code: boidsRenderWGSL }); + const renderPipeline = device.createRenderPipeline({ + layout: "auto", + vertex: { module: renderModule, entryPoint: "vs_main" }, + fragment: { + module: renderModule, + entryPoint: "fs_main", + targets: [{ format: presentationFormat }], + }, + primitive: { topology: "triangle-list" }, + }); + + let readBuffer = bufferA; + let writeBuffer = bufferB; + + return () => { + const computeBindGroup = device.createBindGroup({ + layout: computePipeline.getBindGroupLayout(0), + entries: [ + { binding: 0, resource: { buffer: readBuffer } }, + { binding: 1, resource: { buffer: writeBuffer } }, + ], + }); + + const renderBindGroup = device.createBindGroup({ + layout: renderPipeline.getBindGroupLayout(0), + entries: [{ binding: 0, resource: { buffer: writeBuffer } }], + }); + + const encoder = device.createCommandEncoder(); + + const computePass = encoder.beginComputePass(); + computePass.setPipeline(computePipeline); + computePass.setBindGroup(0, computeBindGroup); + computePass.dispatchWorkgroups(Math.ceil(BOID_COUNT / 64)); + computePass.end(); + + const renderPass = encoder.beginRenderPass({ + colorAttachments: [ + { + view: context.getCurrentTexture().createView(), + clearValue: [0.05, 0.08, 0.14, 1], + loadOp: "clear", + storeOp: "store", + }, + ], + }); + renderPass.setPipeline(renderPipeline); + renderPass.setBindGroup(0, renderBindGroup); + renderPass.draw(3, BOID_COUNT); + renderPass.end(); + + device.queue.submit([encoder.finish()]); + + [readBuffer, writeBuffer] = [writeBuffer, readBuffer]; + }; + }, []); + + const ref = useWebGPU(scene); + + return ( + + + + ); +} + +const styles = StyleSheet.create({ + container: { flex: 1 }, +}); diff --git a/apps/docs/src/demos/CameraEffectDemo.tsx b/apps/docs/src/demos/CameraEffectDemo.tsx new file mode 100644 index 000000000..63d034ee1 --- /dev/null +++ b/apps/docs/src/demos/CameraEffectDemo.tsx @@ -0,0 +1,152 @@ +"use client"; + +import { useEffect, useRef } from "react"; +import { PixelRatio, StyleSheet, Text, View } from "react-native"; +import { Canvas, useDevice, type CanvasRef } from "react-native-webgpu"; + +import { + cameraEffectFragWGSL, + cameraEffectVertWGSL, +} from "./shaders/cameraEffect"; + +export function CameraEffectDemo() { + const { device } = useDevice(); + const ref = useRef(null); + + useEffect(() => { + if (!device) { + return; + } + + let animationId = 0; + let cancelled = false; + + const start = () => { + const context = ref.current?.getContext("webgpu"); + if (!context || cancelled) { + animationId = requestAnimationFrame(start); + return; + } + + const canvas = context.canvas as HTMLCanvasElement; + if (canvas.clientWidth === 0 || canvas.clientHeight === 0) { + animationId = requestAnimationFrame(start); + return; + } + + const format = navigator.gpu.getPreferredCanvasFormat(); + const dpr = PixelRatio.get(); + canvas.width = canvas.clientWidth * dpr; + canvas.height = canvas.clientHeight * dpr; + + context.configure({ device, format, alphaMode: "opaque" }); + + const uniformBuffer = device.createBuffer({ + size: 32, + usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST, + }); + + const bindGroupLayout = device.createBindGroupLayout({ + entries: [{ + binding: 0, + visibility: GPUShaderStage.FRAGMENT, + buffer: { type: "uniform" }, + }], + }); + + const pipeline = device.createRenderPipeline({ + layout: device.createPipelineLayout({ bindGroupLayouts: [bindGroupLayout] }), + vertex: { + module: device.createShaderModule({ code: cameraEffectVertWGSL }), + entryPoint: "vs_main", + }, + fragment: { + module: device.createShaderModule({ code: cameraEffectFragWGSL }), + entryPoint: "fs_main", + targets: [{ format }], + }, + primitive: { topology: "triangle-list" }, + }); + + const bindGroup = device.createBindGroup({ + layout: bindGroupLayout, + entries: [{ binding: 0, resource: { buffer: uniformBuffer } }], + }); + + const render = (time: number) => { + if (cancelled) { + return; + } + + canvas.width = canvas.clientWidth * dpr; + canvas.height = canvas.clientHeight * dpr; + + device.queue.writeBuffer( + uniformBuffer, + 0, + new Float32Array([ + time * 0.001, + 0.006, + 0.7, + canvas.width, + canvas.height, + ]), + ); + + const encoder = device.createCommandEncoder(); + const pass = encoder.beginRenderPass({ + colorAttachments: [{ + view: context.getCurrentTexture().createView(), + clearValue: [0.05, 0.05, 0.08, 1], + loadOp: "clear", + storeOp: "store", + }], + }); + pass.setPipeline(pipeline); + pass.setBindGroup(0, bindGroup); + pass.draw(3); + pass.end(); + device.queue.submit([encoder.finish()]); + context.present(); + + animationId = requestAnimationFrame(render); + }; + + animationId = requestAnimationFrame(render); + }; + + animationId = requestAnimationFrame(start); + + return () => { + cancelled = true; + cancelAnimationFrame(animationId); + }; + }, [device]); + + return ( + + + + Simulated camera feed + + + ); +} + +const styles = StyleSheet.create({ + container: { flex: 1 }, + badge: { + position: "absolute", + bottom: 8, + left: 8, + backgroundColor: "rgba(0,0,0,0.55)", + borderRadius: 6, + paddingHorizontal: 8, + paddingVertical: 4, + }, + badgeText: { + color: "#fff", + fontSize: 11, + fontWeight: "500", + }, +}); diff --git a/apps/docs/src/demos/HelloTriangleDemo.tsx b/apps/docs/src/demos/HelloTriangleDemo.tsx new file mode 100644 index 000000000..71d445f97 --- /dev/null +++ b/apps/docs/src/demos/HelloTriangleDemo.tsx @@ -0,0 +1,97 @@ +"use client"; + +import { useEffect, useRef } from "react"; +import { PixelRatio, StyleSheet, View } from "react-native"; +import { Canvas, type CanvasRef } from "react-native-webgpu"; + +import { redFragWGSL, triangleVertWGSL } from "./shaders/triangle"; + +interface HelloTriangleDemoProps { + transparent?: boolean; +} + +export function HelloTriangleDemo({ transparent = true }: HelloTriangleDemoProps) { + const ref = useRef(null); + + useEffect(() => { + let cancelled = false; + + (async () => { + const adapter = await navigator.gpu.requestAdapter(); + if (!adapter || cancelled) { + return; + } + + const device = await adapter.requestDevice(); + const presentationFormat = navigator.gpu.getPreferredCanvasFormat(); + const context = ref.current?.getContext("webgpu"); + if (!context || cancelled) { + return; + } + + const canvas = context.canvas as HTMLCanvasElement; + canvas.width = canvas.clientWidth * PixelRatio.get(); + canvas.height = canvas.clientHeight * PixelRatio.get(); + + context.configure({ + device, + format: presentationFormat, + alphaMode: transparent ? "premultiplied" : "opaque", + }); + + const pipeline = device.createRenderPipeline({ + layout: "auto", + vertex: { + module: device.createShaderModule({ code: triangleVertWGSL }), + entryPoint: "main", + }, + fragment: { + module: device.createShaderModule({ code: redFragWGSL }), + entryPoint: "main", + targets: [{ format: presentationFormat }], + }, + primitive: { topology: "triangle-list" }, + }); + + const encoder = device.createCommandEncoder(); + const pass = encoder.beginRenderPass({ + colorAttachments: [ + { + view: context.getCurrentTexture().createView(), + clearValue: transparent ? [0, 0, 0, 0] : [0.05, 0.08, 0.14, 1], + loadOp: "clear", + storeOp: "store", + }, + ], + }); + pass.setPipeline(pipeline); + pass.draw(3); + pass.end(); + device.queue.submit([encoder.finish()]); + context.present(); + })(); + + return () => { + cancelled = true; + }; + }, [transparent]); + + return ( + + {transparent ? ( + + ) : null} + + + ); +} + +const styles = StyleSheet.create({ + container: { + flex: 1, + }, +}); diff --git a/apps/docs/src/demos/ParticlesDemo.tsx b/apps/docs/src/demos/ParticlesDemo.tsx new file mode 100644 index 000000000..962ce652a --- /dev/null +++ b/apps/docs/src/demos/ParticlesDemo.tsx @@ -0,0 +1,119 @@ +"use client"; + +import { useCallback } from "react"; +import { StyleSheet, View } from "react-native"; +import { Canvas } from "react-native-webgpu"; + +import { + PARTICLE_COUNT, + particlesComputeWGSL, + particlesRenderWGSL, +} from "./shaders/particles"; +import { useWebGPU, type SceneProps } from "./useWebGPU"; + +function initParticles(): Float32Array { + const data = new Float32Array(PARTICLE_COUNT * 4); + for (let i = 0; i < PARTICLE_COUNT; i++) { + data[i * 4] = Math.random() * 1.8 - 0.9; + data[i * 4 + 1] = Math.random() * 1.8 - 0.9; + data[i * 4 + 2] = (Math.random() - 0.5) * 0.008; + data[i * 4 + 3] = 0.004 + Math.random() * 0.008; + } + return data; +} + +export function ParticlesDemo() { + const scene = useCallback(({ context, device, presentationFormat }: SceneProps) => { + const particlesBuffer = device.createBuffer({ + size: PARTICLE_COUNT * 16, + usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST, + }); + const initial = initParticles(); + device.queue.writeBuffer( + particlesBuffer, + 0, + initial.buffer, + initial.byteOffset, + initial.byteLength, + ); + + const paramsBuffer = device.createBuffer({ + size: 16, + usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST, + }); + + const computePipeline = device.createComputePipeline({ + layout: "auto", + compute: { + module: device.createShaderModule({ code: particlesComputeWGSL }), + entryPoint: "main", + }, + }); + + const renderModule = device.createShaderModule({ code: particlesRenderWGSL }); + const renderPipeline = device.createRenderPipeline({ + layout: "auto", + vertex: { module: renderModule, entryPoint: "vs_main" }, + fragment: { + module: renderModule, + entryPoint: "fs_main", + targets: [{ + format: presentationFormat, + blend: { + color: { srcFactor: "src-alpha", dstFactor: "one", operation: "add" }, + alpha: { srcFactor: "one", dstFactor: "one", operation: "add" }, + }, + }], + }, + primitive: { topology: "triangle-list" }, + }); + + return () => { + device.queue.writeBuffer(paramsBuffer, 0, new Float32Array([1.0, 0.00005])); + + const encoder = device.createCommandEncoder(); + + const computePass = encoder.beginComputePass(); + computePass.setPipeline(computePipeline); + computePass.setBindGroup(0, device.createBindGroup({ + layout: computePipeline.getBindGroupLayout(0), + entries: [ + { binding: 0, resource: { buffer: particlesBuffer } }, + { binding: 1, resource: { buffer: paramsBuffer } }, + ], + })); + computePass.dispatchWorkgroups(Math.ceil(PARTICLE_COUNT / 256)); + computePass.end(); + + const renderPass = encoder.beginRenderPass({ + colorAttachments: [{ + view: context.getCurrentTexture().createView(), + clearValue: [0.02, 0.02, 0.05, 1], + loadOp: "clear", + storeOp: "store", + }], + }); + renderPass.setPipeline(renderPipeline); + renderPass.setBindGroup(0, device.createBindGroup({ + layout: renderPipeline.getBindGroupLayout(0), + entries: [{ binding: 0, resource: { buffer: particlesBuffer } }], + })); + renderPass.draw(6, PARTICLE_COUNT); + renderPass.end(); + + device.queue.submit([encoder.finish()]); + }; + }, []); + + const ref = useWebGPU(scene); + + return ( + + + + ); +} + +const styles = StyleSheet.create({ + container: { flex: 1 }, +}); diff --git a/apps/docs/src/demos/RotatingCubeDemo.tsx b/apps/docs/src/demos/RotatingCubeDemo.tsx new file mode 100644 index 000000000..1e61f3470 --- /dev/null +++ b/apps/docs/src/demos/RotatingCubeDemo.tsx @@ -0,0 +1,175 @@ +"use client"; + +import { useCallback } from "react"; +import { PixelRatio, StyleSheet, View } from "react-native"; +import { Canvas } from "react-native-webgpu"; +import { mat4, vec3 } from "wgpu-matrix"; + +import { + basicVertWGSL, + cubePositionOffset, + cubeUVOffset, + cubeVertexArray, + cubeVertexCount, + cubeVertexSize, + vertexPositionColorWGSL, +} from "./shaders/cube"; +import { useWebGPU, type SceneProps } from "./useWebGPU"; + +export function RotatingCubeDemo() { + const scene = useCallback(({ context, device, presentationFormat, canvas }: SceneProps) => { + const verticesBuffer = device.createBuffer({ + size: cubeVertexArray.byteLength, + usage: GPUBufferUsage.VERTEX, + mappedAtCreation: true, + }); + new Float32Array(verticesBuffer.getMappedRange()).set(cubeVertexArray); + verticesBuffer.unmap(); + + const pipeline = device.createRenderPipeline({ + layout: "auto", + vertex: { + module: device.createShaderModule({ code: basicVertWGSL }), + buffers: [ + { + arrayStride: cubeVertexSize, + attributes: [ + { + shaderLocation: 0, + offset: cubePositionOffset, + format: "float32x4", + }, + { + shaderLocation: 1, + offset: cubeUVOffset, + format: "float32x2", + }, + ], + }, + ], + }, + fragment: { + module: device.createShaderModule({ code: vertexPositionColorWGSL }), + targets: [{ format: presentationFormat }], + }, + primitive: { topology: "triangle-list", cullMode: "back" }, + depthStencil: { + depthWriteEnabled: true, + depthCompare: "less", + format: "depth24plus", + }, + }); + + let depthTexture = device.createTexture({ + size: [Math.max(canvas.width, 1), Math.max(canvas.height, 1)], + format: "depth24plus", + usage: GPUTextureUsage.RENDER_ATTACHMENT, + }); + + const uniformBuffer = device.createBuffer({ + size: 64, + usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST, + }); + + const uniformBindGroup = device.createBindGroup({ + layout: pipeline.getBindGroupLayout(0), + entries: [{ binding: 0, resource: { buffer: uniformBuffer } }], + }); + + const modelViewProjectionMatrix = mat4.create(); + + const getTransformationMatrix = (timestamp: number) => { + const htmlCanvas = context.canvas as HTMLCanvasElement; + const width = Math.max(htmlCanvas.width, 1); + const height = Math.max(htmlCanvas.height, 1); + const aspect = width / height; + + const projectionMatrix = mat4.perspective( + (2 * Math.PI) / 5, + aspect, + 1, + 100, + ); + + const viewMatrix = mat4.identity(); + mat4.translate(viewMatrix, vec3.fromValues(0, 0, -4), viewMatrix); + const t = timestamp / 1000; + mat4.rotate( + viewMatrix, + vec3.fromValues(Math.sin(t), Math.cos(t), 0), + 1, + viewMatrix, + ); + + return mat4.multiply( + projectionMatrix, + viewMatrix, + modelViewProjectionMatrix, + ); + }; + + return (timestamp: number) => { + const htmlCanvas = context.canvas as HTMLCanvasElement; + const dpr = PixelRatio.get(); + htmlCanvas.width = htmlCanvas.clientWidth * dpr; + htmlCanvas.height = htmlCanvas.clientHeight * dpr; + + const width = Math.max(htmlCanvas.width, 1); + const height = Math.max(htmlCanvas.height, 1); + + if (depthTexture.width !== width || depthTexture.height !== height) { + depthTexture.destroy(); + depthTexture = device.createTexture({ + size: [width, height], + format: "depth24plus", + usage: GPUTextureUsage.RENDER_ATTACHMENT, + }); + } + + const transformationMatrix = getTransformationMatrix(timestamp); + device.queue.writeBuffer( + uniformBuffer, + 0, + transformationMatrix.buffer, + transformationMatrix.byteOffset, + transformationMatrix.byteLength, + ); + + const encoder = device.createCommandEncoder(); + const pass = encoder.beginRenderPass({ + colorAttachments: [ + { + view: context.getCurrentTexture().createView(), + clearValue: [0.05, 0.08, 0.14, 1], + loadOp: "clear", + storeOp: "store", + }, + ], + depthStencilAttachment: { + view: depthTexture.createView(), + depthClearValue: 1, + depthLoadOp: "clear", + depthStoreOp: "store", + }, + }); + pass.setPipeline(pipeline); + pass.setBindGroup(0, uniformBindGroup); + pass.setVertexBuffer(0, verticesBuffer); + pass.draw(cubeVertexCount); + pass.end(); + device.queue.submit([encoder.finish()]); + }; + }, []); + + const ref = useWebGPU(scene); + + return ( + + + + ); +} + +const styles = StyleSheet.create({ + container: { flex: 1 }, +}); diff --git a/apps/docs/src/demos/TensorflowDemo.tsx b/apps/docs/src/demos/TensorflowDemo.tsx new file mode 100644 index 000000000..340895b71 --- /dev/null +++ b/apps/docs/src/demos/TensorflowDemo.tsx @@ -0,0 +1,309 @@ +"use client"; + +import { useEffect, useRef, useState } from "react"; +import { + ActivityIndicator, + Pressable, + StyleSheet, + Text, + TextInput, + View, +} from "react-native"; + +import { initSentimentModel, predictSentiment } from "./sentimentModel"; + +import type * as Tf from "@tensorflow/tfjs"; + +type Phase = "loading" | "training" | "ready" | "error"; + +export function TensorflowDemo() { + const [phase, setPhase] = useState("loading"); + const [backend, setBackend] = useState(""); + const [epoch, setEpoch] = useState(0); + const [totalEpochs, setTotalEpochs] = useState(0); + const [error, setError] = useState(null); + const [inputText, setInputText] = useState("this is great"); + const [score, setScore] = useState(null); + const [analyzing, setAnalyzing] = useState(false); + + const tfRef = useRef(null); + const modelRef = useRef(null); + + useEffect(() => { + let cancelled = false; + + (async () => { + try { + await import("@/lib/react-native-webgpu"); + await import("@tensorflow/tfjs-backend-webgpu"); + const tfModule = await import("@tensorflow/tfjs"); + const tf = ("default" in tfModule && tfModule.default + ? tfModule.default + : tfModule) as typeof import("@tensorflow/tfjs"); + tfRef.current = tf; + + if (cancelled) return; + + setPhase("training"); + const { model, backend: activeBackend } = await initSentimentModel( + tf, + (current, total) => { + if (!cancelled) { + setEpoch(current); + setTotalEpochs(total); + } + }, + ); + + if (cancelled) { + model.dispose(); + return; + } + + modelRef.current = model; + setBackend(activeBackend); + setPhase("ready"); + + const initial = await predictSentiment(tf, model, "this is great"); + if (!cancelled) { + setScore(initial); + } + } catch (e) { + if (!cancelled) { + setError(e instanceof Error ? e.message : "Failed to init TensorFlow.js"); + setPhase("error"); + } + } + })(); + + return () => { + cancelled = true; + modelRef.current?.dispose(); + modelRef.current = null; + }; + }, []); + + const analyze = async () => { + const tf = tfRef.current; + const model = modelRef.current; + if (!tf || !model || !inputText.trim()) return; + + setAnalyzing(true); + try { + const value = await predictSentiment(tf, model, inputText.trim()); + setScore(value); + } finally { + setAnalyzing(false); + } + }; + + const trainingProgress = + totalEpochs > 0 ? Math.round((epoch / totalEpochs) * 100) : 0; + + const sentimentLabel = + score === null ? null : score > 0.5 ? "Positive" : "Negative"; + const sentimentColor = score === null ? "#94a3b8" : score > 0.5 ? "#16a34a" : "#dc2626"; + + return ( + + + Sentiment on WebGPU + {backend ? ( + + {backend} + + ) : null} + + + {phase === "loading" || phase === "training" ? ( + + + + {phase === "loading" + ? "Loading TensorFlow.js…" + : `Training on GPU (${epoch}/${totalEpochs})…`} + + {phase === "training" ? ( + + + + ) : null} + + ) : null} + + {phase === "error" ? ( + + {error} + + ) : null} + + {phase === "ready" ? ( + <> + + + void analyze()} + disabled={analyzing} + > + + {analyzing ? "Running inference…" : "Analyze sentiment"} + + + + {score !== null ? ( + + + {sentimentLabel} + {score.toFixed(3)} + + + + + + Score 0 = negative, 1 = positive. + + + ) : null} + + ) : null} + + ); +} + +const styles = StyleSheet.create({ + root: { + flex: 1, + padding: 16, + backgroundColor: "#0f172a", + gap: 12, + }, + header: { + flexDirection: "row", + alignItems: "center", + justifyContent: "space-between", + }, + title: { + color: "#f8fafc", + fontSize: 15, + fontWeight: "600", + }, + badge: { + paddingHorizontal: 8, + paddingVertical: 3, + borderRadius: 999, + backgroundColor: "#334155", + }, + badgeWebgpu: { + backgroundColor: "#312e81", + }, + badgeText: { + color: "#e2e8f0", + fontSize: 11, + fontWeight: "600", + textTransform: "uppercase", + letterSpacing: 0.5, + }, + center: { + flex: 1, + alignItems: "center", + justifyContent: "center", + gap: 10, + }, + statusText: { + color: "#cbd5e1", + fontSize: 13, + }, + progressTrack: { + width: "80%", + height: 4, + borderRadius: 2, + backgroundColor: "#1e293b", + overflow: "hidden", + }, + progressFill: { + height: "100%", + backgroundColor: "#6366f1", + }, + errorText: { + color: "#fca5a5", + fontSize: 13, + textAlign: "center", + paddingHorizontal: 12, + }, + input: { + minHeight: 72, + borderWidth: 1, + borderColor: "#334155", + borderRadius: 10, + padding: 12, + color: "#f1f5f9", + fontSize: 14, + backgroundColor: "#1e293b", + }, + button: { + alignItems: "center", + justifyContent: "center", + backgroundColor: "#6366f1", + borderRadius: 10, + paddingVertical: 10, + }, + buttonDisabled: { + opacity: 0.7, + }, + buttonText: { + color: "#fff", + fontSize: 14, + fontWeight: "600", + }, + result: { + gap: 8, + marginTop: 4, + }, + resultRow: { + flexDirection: "row", + justifyContent: "space-between", + alignItems: "center", + }, + resultLabel: { + color: "#f8fafc", + fontSize: 16, + fontWeight: "600", + }, + scoreText: { + color: "#94a3b8", + fontSize: 13, + fontFamily: "monospace", + }, + barTrack: { + height: 8, + borderRadius: 4, + backgroundColor: "#1e293b", + overflow: "hidden", + }, + barFill: { + height: "100%", + borderRadius: 4, + }, + hint: { + color: "#64748b", + fontSize: 11, + lineHeight: 16, + }, + hintMono: { + fontFamily: "monospace", + color: "#94a3b8", + }, +}); diff --git a/apps/docs/src/demos/ThreeJsDemo.tsx b/apps/docs/src/demos/ThreeJsDemo.tsx new file mode 100644 index 000000000..c410c4cdc --- /dev/null +++ b/apps/docs/src/demos/ThreeJsDemo.tsx @@ -0,0 +1,98 @@ +"use client"; + +import { useEffect, useRef } from "react"; +import { PixelRatio, StyleSheet, View } from "react-native"; +import { Canvas, useDevice, type CanvasRef } from "react-native-webgpu"; +import * as THREE from "three/webgpu"; + +import { makeWebGPURenderer } from "./makeWebGPURenderer"; + +export function ThreeJsDemo() { + const { device } = useDevice(); + const ref = useRef(null); + + useEffect(() => { + if (!device) { + return; + } + + let animationId = 0; + let cancelled = false; + let renderer: THREE.WebGPURenderer | null = null; + + const start = async () => { + const context = ref.current?.getContext("webgpu"); + if (!context || cancelled) { + animationId = requestAnimationFrame(() => void start()); + return; + } + + const canvas = context.canvas as HTMLCanvasElement; + if (canvas.clientWidth === 0 || canvas.clientHeight === 0) { + animationId = requestAnimationFrame(() => void start()); + return; + } + + const dpr = PixelRatio.get(); + canvas.width = canvas.clientWidth * dpr; + canvas.height = canvas.clientHeight * dpr; + + context.configure({ + device, + format: navigator.gpu.getPreferredCanvasFormat(), + alphaMode: "premultiplied", + }); + + renderer = makeWebGPURenderer(context); + await renderer.init(); + + const scene = new THREE.Scene(); + const camera = new THREE.PerspectiveCamera( + 70, + canvas.clientWidth / canvas.clientHeight, + 0.01, + 10, + ); + camera.position.z = 1; + + const mesh = new THREE.Mesh( + new THREE.BoxGeometry(0.35, 0.35, 0.35), + new THREE.MeshNormalMaterial(), + ); + scene.add(mesh); + + const render = (time: number) => { + if (cancelled || !renderer) { + return; + } + + mesh.rotation.x = time / 2000; + mesh.rotation.y = time / 1000; + renderer.render(scene, camera); + context.present(); + animationId = requestAnimationFrame(render); + }; + + animationId = requestAnimationFrame(render); + }; + + void start(); + + return () => { + cancelled = true; + cancelAnimationFrame(animationId); + renderer?.setAnimationLoop(null); + renderer?.dispose(); + }; + }, [device]); + + return ( + + + + ); +} + +const styles = StyleSheet.create({ + container: { flex: 1 }, +}); diff --git a/apps/docs/src/demos/TransparencyDemo.tsx b/apps/docs/src/demos/TransparencyDemo.tsx new file mode 100644 index 000000000..217dd79e9 --- /dev/null +++ b/apps/docs/src/demos/TransparencyDemo.tsx @@ -0,0 +1,184 @@ +"use client"; + +import { useEffect, useRef } from "react"; +import { PixelRatio, StyleSheet, Text, View } from "react-native"; +import { Canvas, useDevice, type CanvasRef } from "react-native-webgpu"; + +import { + transparencyFragWGSL, + transparencyVertWGSL, +} from "./shaders/transparency"; + +function Background() { + return ( + + + + + + + + + + + React Native views underneath + + + ); +} + +export function TransparencyDemo() { + const { device } = useDevice(); + const ref = useRef(null); + + useEffect(() => { + if (!device) { + return; + } + + let animationId = 0; + let cancelled = false; + + const start = () => { + const context = ref.current?.getContext("webgpu"); + if (!context || cancelled) { + animationId = requestAnimationFrame(start); + return; + } + + const canvas = context.canvas as HTMLCanvasElement; + if (canvas.clientWidth === 0 || canvas.clientHeight === 0) { + animationId = requestAnimationFrame(start); + return; + } + + const format = navigator.gpu.getPreferredCanvasFormat(); + const dpr = PixelRatio.get(); + canvas.width = canvas.clientWidth * dpr; + canvas.height = canvas.clientHeight * dpr; + + context.configure({ + device, + format, + alphaMode: "premultiplied", + }); + + const uniformBuffer = device.createBuffer({ + size: 16, + usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST, + }); + + const bindGroupLayout = device.createBindGroupLayout({ + entries: [ + { + binding: 0, + visibility: GPUShaderStage.FRAGMENT, + buffer: { type: "uniform" }, + }, + ], + }); + + const pipeline = device.createRenderPipeline({ + layout: device.createPipelineLayout({ bindGroupLayouts: [bindGroupLayout] }), + vertex: { + module: device.createShaderModule({ code: transparencyVertWGSL }), + entryPoint: "main", + }, + fragment: { + module: device.createShaderModule({ code: transparencyFragWGSL }), + entryPoint: "main", + targets: [{ format }], + }, + primitive: { topology: "triangle-list" }, + }); + + const bindGroup = device.createBindGroup({ + layout: bindGroupLayout, + entries: [{ binding: 0, resource: { buffer: uniformBuffer } }], + }); + + const render = (time: number) => { + if (cancelled) { + return; + } + + canvas.width = canvas.clientWidth * dpr; + canvas.height = canvas.clientHeight * dpr; + + device.queue.writeBuffer( + uniformBuffer, + 0, + new Float32Array([canvas.width, time * 0.001]), + ); + + const encoder = device.createCommandEncoder(); + const pass = encoder.beginRenderPass({ + colorAttachments: [ + { + view: context.getCurrentTexture().createView(), + clearValue: [0, 0, 0, 0], + loadOp: "clear", + storeOp: "store", + }, + ], + }); + pass.setPipeline(pipeline); + pass.setBindGroup(0, bindGroup); + pass.draw(6); + pass.end(); + device.queue.submit([encoder.finish()]); + context.present(); + + animationId = requestAnimationFrame(render); + }; + + animationId = requestAnimationFrame(render); + }; + + animationId = requestAnimationFrame(start); + + return () => { + cancelled = true; + cancelAnimationFrame(animationId); + }; + }, [device]); + + return ( + + + + + ); +} + +const styles = StyleSheet.create({ + container: { + flex: 1, + }, + background: { + ...StyleSheet.absoluteFillObject, + }, + row: { + flex: 1, + flexDirection: "row", + }, + quadrant: { + flex: 1, + }, + labelWrap: { + ...StyleSheet.absoluteFillObject, + alignItems: "center", + justifyContent: "center", + }, + label: { + color: "#ffffff", + fontSize: 14, + fontWeight: "600", + letterSpacing: 0.2, + opacity: 0.92, + textAlign: "center", + textShadowColor: "rgba(0, 0, 0, 0.45)", + textShadowOffset: { width: 0, height: 1 }, + textShadowRadius: 4, + }, +}); diff --git a/apps/docs/src/demos/makeWebGPURenderer.ts b/apps/docs/src/demos/makeWebGPURenderer.ts new file mode 100644 index 000000000..4d7c26cce --- /dev/null +++ b/apps/docs/src/demos/makeWebGPURenderer.ts @@ -0,0 +1,43 @@ +import type { NativeCanvas } from "react-native-webgpu"; +import * as THREE from "three/webgpu"; + +export class ReactNativeCanvas { + constructor(private canvas: NativeCanvas) {} + + get width() { + return this.canvas.width; + } + set width(v: number) { + this.canvas.width = v; + } + get height() { + return this.canvas.height; + } + set height(v: number) { + this.canvas.height = v; + } + get clientWidth() { + return this.canvas.clientWidth; + } + get clientHeight() { + return this.canvas.clientHeight; + } + + addEventListener() {} + removeEventListener() {} + dispatchEvent() { + return false; + } + setPointerCapture() {} + releasePointerCapture() {} +} + +export function makeWebGPURenderer(context: GPUCanvasContext) { + return new THREE.WebGPURenderer({ + antialias: true, + canvas: new ReactNativeCanvas( + context.canvas as unknown as NativeCanvas, + ) as unknown as HTMLCanvasElement, + context, + }); +} diff --git a/apps/docs/src/demos/sentimentModel.ts b/apps/docs/src/demos/sentimentModel.ts new file mode 100644 index 000000000..3df264150 --- /dev/null +++ b/apps/docs/src/demos/sentimentModel.ts @@ -0,0 +1,137 @@ +import type * as Tf from "@tensorflow/tfjs"; + +export const VOCAB_SIZE = 5000; +export const MAX_LENGTH = 32; +const EPOCHS = 50; + +const SAMPLE_TEXTS = [ + "this is great", + "i love it", + "amazing experience", + "i am happy", + "feeling wonderful", + "excellent service", + "fantastic results", + "very satisfied", + "perfect solution", + "awesome day", + "really pleased", + "joy and happiness", + "feeling blessed", + "incredible experience", + "super excited", + "this is fun", + "terrible service", + "worst product ever", + "very disappointed", + "i am sad", + "feeling depressed", + "awful experience", + "this is horrible", + "completely frustrated", + "waste of time", + "very unhappy", + "absolutely terrible", + "poor quality", + "extremely disappointed", + "total failure", + "not satisfied", + "this is tedious", +]; + +const LABELS = [ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +]; + +export function tokenize(text: string) { + return text + .toLowerCase() + .split(/\s+/) + .filter(Boolean) + .map((word) => { + const hash = Array.from(word).reduce( + (h, char) => (h << 5) - h + char.charCodeAt(0), + 0, + ); + return Math.abs(hash) % VOCAB_SIZE; + }); +} + +export function padSequence(sequence: number[], maxLength: number) { + if (sequence.length > maxLength) { + return sequence.slice(0, maxLength); + } + return [...sequence, ...new Array(maxLength - sequence.length).fill(0)]; +} + +function createModel(tf: typeof Tf) { + const model = tf.sequential(); + model.add( + tf.layers.embedding({ + inputDim: VOCAB_SIZE, + outputDim: 32, + inputLength: MAX_LENGTH, + maskZero: true, + }), + ); + model.add(tf.layers.globalAveragePooling1d()); + model.add(tf.layers.dense({ units: 16, activation: "relu" })); + model.add(tf.layers.dense({ units: 1, activation: "sigmoid" })); + model.compile({ + optimizer: tf.train.adam(0.0005), + loss: "binaryCrossentropy", + metrics: ["accuracy"], + }); + return model; +} + +export async function initSentimentModel( + tf: typeof Tf, + onEpoch: (epoch: number, total: number) => void, +) { + await tf.setBackend("webgpu"); + await tf.ready(); + + const backend = tf.getBackend(); + const model = createModel(tf); + + const sequences = SAMPLE_TEXTS.map((text) => + padSequence(tokenize(text), MAX_LENGTH), + ); + const xTrain = tf.tensor2d(sequences); + const yTrain = tf.tensor1d(LABELS); + + await model.fit(xTrain, yTrain, { + epochs: EPOCHS, + verbose: 0, + callbacks: { + onEpochEnd: (epoch) => onEpoch(epoch + 1, EPOCHS), + }, + }); + + await tf.nextFrame(); + + xTrain.dispose(); + yTrain.dispose(); + + return { model, backend }; +} + +export async function predictSentiment( + tf: typeof Tf, + model: Tf.LayersModel, + text: string, +) { + const sequence = padSequence(tokenize(text), MAX_LENGTH); + const input = tf.tensor2d([sequence]); + const output = model.predict(input); + if (Array.isArray(output)) { + input.dispose(); + throw new Error("Unexpected multi-output model"); + } + const values = await output.data(); + output.dispose(); + input.dispose(); + return values[0] ?? 0.5; +} diff --git a/apps/docs/src/demos/shaders/boids.ts b/apps/docs/src/demos/shaders/boids.ts new file mode 100644 index 000000000..2949aed74 --- /dev/null +++ b/apps/docs/src/demos/shaders/boids.ts @@ -0,0 +1,98 @@ +export const BOID_COUNT = 256; + +export const boidsComputeWGSL = /* wgsl */ ` +struct Boid { + pos: vec2f, + vel: vec2f, +} + +@group(0) @binding(0) var input: array; +@group(0) @binding(1) var output: array; + +@compute @workgroup_size(64) +fn main(@builtin(global_invocation_id) gid: vec3u) { + let i = gid.x; + if (i >= arrayLength(&input)) { + return; + } + + var b = input[i]; + var separation = vec2f(0.0); + var alignment = vec2f(0.0); + var alignCount = 0u; + + for (var j = 0u; j < arrayLength(&input); j++) { + if (j == i) { + continue; + } + let other = input[j]; + let delta = b.pos - other.pos; + let dist = length(delta); + if (dist < 0.12 && dist > 0.0001) { + separation += delta / dist; + } + if (dist < 0.35) { + alignment += other.vel; + alignCount++; + } + } + + if (alignCount > 0u) { + alignment /= f32(alignCount); + } + + b.vel += separation * 0.0008 + alignment * 0.02; + let speed = length(b.vel); + b.vel = select(normalize(b.vel) * 0.004, b.vel, speed < 0.0001); + b.pos += b.vel; + + if (b.pos.x > 1.0) { b.pos.x = -1.0; } + if (b.pos.x < -1.0) { b.pos.x = 1.0; } + if (b.pos.y > 1.0) { b.pos.y = -1.0; } + if (b.pos.y < -1.0) { b.pos.y = 1.0; } + + output[i] = b; +} +`; + +export const boidsRenderWGSL = /* wgsl */ ` +struct Boid { + pos: vec2f, + vel: vec2f, +} + +@group(0) @binding(0) var boids: array; + +struct VsOut { + @builtin(position) position: vec4f, + @location(0) color: vec4f, +} + +@vertex +fn vs_main( + @builtin(instance_index) i: u32, + @builtin(vertex_index) vi: u32, +) -> VsOut { + let tri = array( + vec2f(0.0, 0.035), + vec2f(-0.02, -0.02), + vec2f(0.02, -0.02), + ); + let b = boids[i]; + let angle = atan2(b.vel.y, b.vel.x); + let c = cos(angle); + let s = sin(angle); + let local = tri[vi]; + let rotated = vec2f(local.x * c - local.y * s, local.x * s + local.y * c); + var out: VsOut; + out.position = vec4f(b.pos + rotated, 0.0, 1.0); + let n = normalize(b.vel + vec2f(0.001, 0.001)); + out.color = vec4f(0.5 + 0.5 * n.x, 0.5 + 0.5 * n.y, 0.5, 1.0); + return out; +} + +@fragment +fn fs_main(@location(0) color: vec4f) -> @location(0) vec4f { + return color; +} +`; diff --git a/apps/docs/src/demos/shaders/cameraEffect.ts b/apps/docs/src/demos/shaders/cameraEffect.ts new file mode 100644 index 000000000..a3be843a8 --- /dev/null +++ b/apps/docs/src/demos/shaders/cameraEffect.ts @@ -0,0 +1,44 @@ +export const cameraEffectVertWGSL = /* wgsl */ ` +@vertex +fn vs_main(@builtin(vertex_index) vi: u32) -> @builtin(position) vec4f { + let pos = array( + vec2f(-1.0, -1.0), + vec2f( 3.0, -1.0), + vec2f(-1.0, 3.0), + ); + return vec4f(pos[vi], 0.0, 1.0); +} +`; + +export const cameraEffectFragWGSL = /* wgsl */ ` +struct Params { + time: f32, + aberration: f32, + vignette: f32, + width: f32, + height: f32, +} + +@group(0) @binding(0) var u: Params; + +fn scene(uv: vec2f, time: f32) -> vec3f { + let p = uv * vec2f(1.2, 1.0) + vec2f(time * 0.08, time * 0.05); + let face = sin(p.x * 12.0) * sin(p.y * 10.0); + let skin = vec3f(0.85, 0.65, 0.55); + let bg = vec3f(0.15, 0.35, 0.55); + return mix(bg, skin, smoothstep(-0.2, 0.6, face + sin(time + p.x * 3.0) * 0.15)); +} + +@fragment +fn fs_main(@builtin(position) pos: vec4f) -> @location(0) vec4f { + let uv = pos.xy / vec2f(u.width, u.height); + let ab = u.aberration; + let r = scene(uv + vec2f(ab, 0.0), u.time).r; + let g = scene(uv, u.time).g; + let b = scene(uv - vec2f(ab, 0.0), u.time).b; + var color = vec3f(r, g, b); + let d = length(uv - vec2f(0.5)); + color *= 1.0 - smoothstep(0.55, 0.95, d) * u.vignette; + return vec4f(color, 1.0); +} +`; diff --git a/apps/docs/src/demos/shaders/cube.ts b/apps/docs/src/demos/shaders/cube.ts new file mode 100644 index 000000000..eff03113c --- /dev/null +++ b/apps/docs/src/demos/shaders/cube.ts @@ -0,0 +1,12 @@ +export { + cubePositionOffset, + cubeUVOffset, + cubeVertexArray, + cubeVertexCount, + cubeVertexSize, +} from "@example/components/cube"; + +export { + basicVertWGSL, + vertexPositionColorWGSL, +} from "@example/Cube/Shaders"; diff --git a/apps/docs/src/demos/shaders/gradientTiles.ts b/apps/docs/src/demos/shaders/gradientTiles.ts new file mode 100644 index 000000000..42a0cc800 --- /dev/null +++ b/apps/docs/src/demos/shaders/gradientTiles.ts @@ -0,0 +1,29 @@ +const gradientTilesVertWGSL = /* wgsl */ ` +@vertex +fn vs_main(@builtin(vertex_index) vi: u32) -> @builtin(position) vec4f { + var pos = array( + vec2f(-1.0, -1.0), + vec2f(3.0, -1.0), + vec2f(-1.0, 3.0), + ); + return vec4f(pos[vi], 0.0, 1.0); +} +`; + +const gradientTilesFragWGSL = /* wgsl */ ` +struct Uniforms { + span: vec2f, +} + +@group(0) @binding(0) var u: Uniforms; + +@fragment +fn fs_main(@builtin(position) pos: vec4f) -> @location(0) vec4f { + let uv = pos.xy / vec2f(800.0, 600.0); + let red = floor(uv.x * u.span.x) / u.span.x; + let green = floor(uv.y * u.span.y) / u.span.y; + return vec4f(red, green, 0.5, 1.0); +} +`; + +export { gradientTilesFragWGSL, gradientTilesVertWGSL }; diff --git a/apps/docs/src/demos/shaders/particles.ts b/apps/docs/src/demos/shaders/particles.ts new file mode 100644 index 000000000..0decc377f --- /dev/null +++ b/apps/docs/src/demos/shaders/particles.ts @@ -0,0 +1,78 @@ +export const PARTICLE_COUNT = 2048; + +export const particlesComputeWGSL = /* wgsl */ ` +struct Particle { + pos: vec2f, + vel: vec2f, +} + +@group(0) @binding(0) var particles: array; +@group(0) @binding(1) var params: vec2f; + +@compute @workgroup_size(256) +fn main(@builtin(global_invocation_id) gid: vec3u) { + let i = gid.x; + if (i >= arrayLength(&particles)) { + return; + } + + var p = particles[i]; + p.pos += p.vel * params.x; + p.vel.y -= params.y; + + if (p.pos.x < -1.0 || p.pos.x > 1.0) { + p.vel.x *= -1.0; + } + if (p.pos.y < -1.0) { + p.pos = vec2f(fract(sin(f32(i) * 12.9898) * 43758.5453) * 2.0 - 1.0, 1.0); + p.vel = vec2f((fract(cos(f32(i)) * 123.456) - 0.5) * 0.01, 0.008 + fract(sin(f32(i))) * 0.006); + } + + particles[i] = p; +} +`; + +export const particlesRenderWGSL = /* wgsl */ ` +struct Particle { + pos: vec2f, + vel: vec2f, +} + +@group(0) @binding(0) var particles: array; + +struct VsOut { + @builtin(position) position: vec4f, + @location(0) color: vec4f, +} + +@vertex +fn vs_main( + @builtin(instance_index) i: u32, + @builtin(vertex_index) vi: u32, +) -> VsOut { + let quad = array( + vec2f(-0.012, -0.012), + vec2f( 0.012, -0.012), + vec2f(-0.012, 0.012), + vec2f(-0.012, 0.012), + vec2f( 0.012, -0.012), + vec2f( 0.012, 0.012), + ); + let p = particles[i]; + let hue = fract(f32(i) * 0.013 + length(p.vel) * 40.0); + var out: VsOut; + out.position = vec4f(p.pos + quad[vi], 0.0, 1.0); + out.color = vec4f( + 0.5 + 0.5 * sin(hue * 6.28), + 0.5 + 0.5 * sin(hue * 6.28 + 2.0), + 0.5 + 0.5 * sin(hue * 6.28 + 4.0), + 0.65, + ); + return out; +} + +@fragment +fn fs_main(@location(0) color: vec4f) -> @location(0) vec4f { + return color; +} +`; diff --git a/apps/docs/src/demos/shaders/transparency.ts b/apps/docs/src/demos/shaders/transparency.ts new file mode 100644 index 000000000..cd3fc9c81 --- /dev/null +++ b/apps/docs/src/demos/shaders/transparency.ts @@ -0,0 +1,37 @@ +export const transparencyVertWGSL = `@vertex +fn main(@builtin(vertex_index) vertexIndex: u32) -> @builtin(position) vec4f { + var pos = array( + vec2(-1.0, -1.0), + vec2(1.0, -1.0), + vec2(-1.0, 1.0), + vec2(-1.0, 1.0), + vec2(1.0, -1.0), + vec2(1.0, 1.0), + ); + + return vec4f(pos[vertexIndex], 0.0, 1.0); +}`; + +export const transparencyFragWGSL = `@group(0) @binding(0) var params: vec2f; + +struct FragmentOutput { + @location(0) color: vec4f, +}; + +@fragment +fn main(@builtin(position) position: vec4f) -> FragmentOutput { + let size = params; + let uv = position.xy / size; + let center = vec2(0.5, 0.5); + let aspect = size.x / max(size.y, 1.0); + let p = uv - center; + p.x *= aspect; + let d = length(p); + let pulse = 0.5 + 0.5 * sin(params.y * 2.5); + let radius = mix(0.22, 0.3, pulse); + let alpha = smoothstep(radius, radius - 0.04, d) * 0.72; + let rgb = vec3(1.0, 0.35, 0.15); + var out: FragmentOutput; + out.color = vec4(rgb * alpha, alpha); + return out; +}`; diff --git a/apps/docs/src/demos/shaders/triangle.ts b/apps/docs/src/demos/shaders/triangle.ts new file mode 100644 index 000000000..c6d838130 --- /dev/null +++ b/apps/docs/src/demos/shaders/triangle.ts @@ -0,0 +1,4 @@ +export { + triangleVertWGSL, + redFragWGSL, +} from "@example/Triangle/triangle"; diff --git a/apps/docs/src/demos/useWebGPU.ts b/apps/docs/src/demos/useWebGPU.ts new file mode 100644 index 000000000..f36db5c6a --- /dev/null +++ b/apps/docs/src/demos/useWebGPU.ts @@ -0,0 +1,98 @@ +import { useEffect, useRef } from "react"; +import { PixelRatio } from "react-native"; +import { + useDevice, + type CanvasRef, + type NativeCanvas, +} from "react-native-webgpu"; + +interface SceneProps { + context: GPUCanvasContext; + device: GPUDevice; + gpu: GPU; + presentationFormat: GPUTextureFormat; + canvas: NativeCanvas; +} + +type RenderScene = (timestamp: number) => void; +export type Scene = (props: SceneProps) => RenderScene | void | Promise; +export type { SceneProps }; + +export const useWebGPU = (scene: Scene) => { + const { device } = useDevice(); + const ref = useRef(null); + const sceneRef = useRef(scene); + const animationFrameId = useRef(null); + + sceneRef.current = scene; + + useEffect(() => { + let cancelled = false; + + const start = () => { + const context = ref.current?.getContext("webgpu"); + if (!context || !device || cancelled) { + animationFrameId.current = requestAnimationFrame(start); + return; + } + + const htmlCanvas = context.canvas as HTMLCanvasElement; + if (htmlCanvas.clientWidth === 0 || htmlCanvas.clientHeight === 0) { + animationFrameId.current = requestAnimationFrame(start); + return; + } + + const presentationFormat = navigator.gpu.getPreferredCanvasFormat(); + htmlCanvas.width = htmlCanvas.clientWidth * PixelRatio.get(); + htmlCanvas.height = htmlCanvas.clientHeight * PixelRatio.get(); + context.configure({ + device, + format: presentationFormat, + alphaMode: "premultiplied", + }); + + const sceneProps: SceneProps = { + context, + device, + gpu: navigator.gpu, + presentationFormat, + canvas: context.canvas as unknown as NativeCanvas, + }; + + void (async () => { + const result = sceneRef.current(sceneProps); + let renderScene: RenderScene | undefined; + if (result instanceof Promise) { + renderScene = await result; + } else if (typeof result === "function") { + renderScene = result; + } + + if (typeof renderScene !== "function" || cancelled) { + return; + } + + const render = () => { + if (cancelled) { + return; + } + renderScene!(Date.now()); + context.present(); + animationFrameId.current = requestAnimationFrame(render); + }; + animationFrameId.current = requestAnimationFrame(render); + })(); + }; + + animationFrameId.current = requestAnimationFrame(start); + + return () => { + cancelled = true; + if (animationFrameId.current) { + cancelAnimationFrame(animationFrameId.current); + } + }; + }, [device]); + + return ref; +}; diff --git a/apps/docs/src/global.d.ts b/apps/docs/src/global.d.ts new file mode 100644 index 000000000..cbd44f35f --- /dev/null +++ b/apps/docs/src/global.d.ts @@ -0,0 +1 @@ +/// diff --git a/apps/docs/src/lib/api-source.ts b/apps/docs/src/lib/api-source.ts new file mode 100644 index 000000000..768fc90c4 --- /dev/null +++ b/apps/docs/src/lib/api-source.ts @@ -0,0 +1,7 @@ +import { api } from "collections/server"; +import { loader } from "fumadocs-core/source"; + +export const apiSource = loader({ + baseUrl: "/api", + source: api.toFumadocsSource(), +}); diff --git a/apps/docs/src/lib/layout.shared.tsx b/apps/docs/src/lib/layout.shared.tsx new file mode 100644 index 000000000..a2b102664 --- /dev/null +++ b/apps/docs/src/lib/layout.shared.tsx @@ -0,0 +1,66 @@ +import type { HomeLayoutProps } from "fumadocs-ui/layouts/home"; +import type { BaseLayoutProps } from "fumadocs-ui/layouts/shared"; + +export const docsShellClassName = "rnwgpu-docs-shell flex flex-col"; +export const docsLayoutContainerClassName = "rnwgpu-docs-layout"; +export const apiReferenceSidebarWidthClassName = + "md:[--fd-sidebar-width:19rem] lg:[--fd-sidebar-width:20rem]"; + +const githubUrl = "https://github.com/wcandillon/react-native-webgpu"; + +export function sideBarOptions(): BaseLayoutProps { + return { + themeSwitch: { + enabled: false, + }, + searchToggle: { + enabled: false, + }, + nav: { + title: "React Native WebGPU", + url: "/", + }, + }; +} + +export function docsLayoutSidebarOptions() { + return { + collapsible: false, + } as const; +} + +export function homeOptions(): HomeLayoutProps { + return { + links: [ + { + text: "Docs", + url: "/docs", + active: "nested-url", + }, + { + text: "API Reference", + url: "/api", + active: "nested-url", + }, + ], + githubUrl, + nav: { + title: "React Native WebGPU", + url: "/", + }, + }; +} + +export function homeLinks() { + const basePath = + process.env.NEXT_PUBLIC_BASE_PATH ?? + (process.env.GITHUB_PAGES === "true" && + process.env.NODE_ENV === "production" + ? "/react-native-webgpu" + : ""); + return { + docs: `${basePath}/docs`, + gettingStarted: `${basePath}/docs`, + api: `${basePath}/api`, + }; +} diff --git a/apps/docs/src/lib/react-native-webgpu.ts b/apps/docs/src/lib/react-native-webgpu.ts new file mode 100644 index 000000000..2285ba142 --- /dev/null +++ b/apps/docs/src/lib/react-native-webgpu.ts @@ -0,0 +1,3 @@ +// Re-export from source so Turbopack/webpack resolve via relative imports +// instead of a Windows absolute-path alias (unsupported in Turbopack dev). +export * from "../../../../packages/webgpu/src/index"; diff --git a/apps/docs/src/lib/search-source.ts b/apps/docs/src/lib/search-source.ts new file mode 100644 index 000000000..9069e61a7 --- /dev/null +++ b/apps/docs/src/lib/search-source.ts @@ -0,0 +1,10 @@ +import { api, docs } from "collections/server"; +import { loader } from "fumadocs-core/source"; + +export const searchSource = loader( + { + docs: docs.toFumadocsSource(), + api: api.toFumadocsSource(), + }, + { baseUrl: "/" }, +); diff --git a/apps/docs/src/lib/source.ts b/apps/docs/src/lib/source.ts new file mode 100644 index 000000000..bb4e907a5 --- /dev/null +++ b/apps/docs/src/lib/source.ts @@ -0,0 +1,14 @@ +import { docs } from "collections/server"; +import { loader } from "fumadocs-core/source"; +import { icons } from "lucide-react"; +import { createElement } from "react"; + +export const source = loader({ + baseUrl: "/docs", + source: docs.toFumadocsSource(), + icon(icon) { + if (icon && icon in icons) { + return createElement(icons[icon as keyof typeof icons]); + } + }, +}); diff --git a/apps/docs/tsconfig.json b/apps/docs/tsconfig.json new file mode 100644 index 000000000..1d37783ca --- /dev/null +++ b/apps/docs/tsconfig.json @@ -0,0 +1,50 @@ +{ + "compilerOptions": { + "target": "ES2017", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "react-jsx", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": [ + "./src/*" + ], + "@example/*": [ + "../example/src/*" + ], + "collections/*": [ + "./.source/*" + ], + "react-native-webgpu": [ + "./src/lib/react-native-webgpu.ts" + ] + } + }, + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx", + ".next/types/**/*.ts", + ".next/dev/types/**/*.ts" + ], + "exclude": [ + "node_modules" + ] +} diff --git a/package.json b/package.json index 4409824d0..09e501e3c 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "build:macos": "turbo run build:macos", "build:android": "turbo run build:android", "build": "turbo run build", + "build:docs": "turbo run build:docs", "pod:install": "turbo run pod:install", "reset": "rm -rf node_modules && find apps packages -maxdepth 2 -type d -name node_modules -prune -exec rm -rf '{}' ';' && yarn install && rm -rf apps/example/ios/Pods apps/example/ios/Podfile.lock && pod install --project-directory=apps/example/ios" }, diff --git a/packages/webgpu/package.json b/packages/webgpu/package.json index ce48f8605..8e8233b32 100644 --- a/packages/webgpu/package.json +++ b/packages/webgpu/package.json @@ -51,7 +51,7 @@ "bugs": { "url": "https://github.com/wcandillon/react-native-webgpu/issues" }, - "homepage": "https://github.com/wcandillon/react-native-webgpu#readme", + "homepage": "https://wcandillon.github.io/react-native-webgpu/", "publishConfig": { "registry": "https://registry.npmjs.org/" }, diff --git a/turbo.json b/turbo.json index 852ee62d4..5890d125e 100644 --- a/turbo.json +++ b/turbo.json @@ -70,6 +70,18 @@ }, "lint": {}, "tsc": {}, - "build": {} + "build": { + "outputs": ["lib/**", ".next/**", "out/**"] + }, + "build:docs": { + "env": ["GITHUB_PAGES", "NEXT_PUBLIC_BASE_PATH"], + "outputs": [".next/**", "out/**"], + "inputs": [ + "**/*", + "../../packages/webgpu/src/**", + "!**/.next/**", + "!**/out/**" + ] + } } } diff --git a/yarn.lock b/yarn.lock index de5af0781..7b9f1dddc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,6 +5,23 @@ __metadata: version: 6 cacheKey: 8 +"@alloc/quick-lru@npm:^5.2.0": + version: 5.2.0 + resolution: "@alloc/quick-lru@npm:5.2.0" + checksum: bdc35758b552bcf045733ac047fb7f9a07c4678b944c641adfbd41f798b4b91fffd0fdc0df2578d9b0afc7b4d636aa6e110ead5d6281a2adc1ab90efd7f057f8 + languageName: node + linkType: hard + +"@antfu/install-pkg@npm:^1.1.0": + version: 1.1.0 + resolution: "@antfu/install-pkg@npm:1.1.0" + dependencies: + package-manager-detector: ^1.3.0 + tinyexec: ^1.0.1 + checksum: e20b7cd1c37eff832cc878cddd794f8c3779175681cf6d75c4cc1ae1475526126a4c1f71fa027161aa1ee35a8850782be9ca0ec01b621893defebe97ba9dc70e + languageName: node + linkType: hard + "@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.24.7, @babel/code-frame@npm:^7.28.6": version: 7.28.6 resolution: "@babel/code-frame@npm:7.28.6" @@ -2015,6 +2032,13 @@ __metadata: languageName: node linkType: hard +"@braintree/sanitize-url@npm:^7.1.1": + version: 7.1.2 + resolution: "@braintree/sanitize-url@npm:7.1.2" + checksum: ca787264bbea2a3c02ce5cd5e08a1debf1ffff1c87b954ed2522d816fc3f3a9b93a5a55056dfe394d86c780ced35ee2fc06abbffd0f5f2e95264f7b62cb29d66 + languageName: node + linkType: hard + "@callstack/react-native-visionos@npm:^0.74.0": version: 0.74.4 resolution: "@callstack/react-native-visionos@npm:0.74.4" @@ -2069,6 +2093,13 @@ __metadata: languageName: node linkType: hard +"@chevrotain/types@npm:~11.1.1": + version: 11.1.2 + resolution: "@chevrotain/types@npm:11.1.2" + checksum: 4c948b8559c94329bae5fa5b087e20ebfbac3fa73ff32ee7e3752716ab565da1c9efc2103eb1dbee2bf492d68231d4386836283f0bb7cca63f4185788808af70 + languageName: node + linkType: hard + "@dimforge/rapier3d-compat@npm:~0.12.0": version: 0.12.0 resolution: "@dimforge/rapier3d-compat@npm:0.12.0" @@ -2085,6 +2116,16 @@ __metadata: languageName: node linkType: hard +"@emnapi/core@npm:^1.10.0": + version: 1.10.0 + resolution: "@emnapi/core@npm:1.10.0" + dependencies: + "@emnapi/wasi-threads": 1.2.1 + tslib: ^2.4.0 + checksum: d8cf0d6e0668db456190dda05bffb299395e58e814bacfbe78e6306aea9df8c48c0c276ad9ca787d5bbd4272e765fcc879e8156c0fc40398d5f43658819b7314 + languageName: node + linkType: hard + "@emnapi/core@npm:^1.4.3": version: 1.8.1 resolution: "@emnapi/core@npm:1.8.1" @@ -2095,6 +2136,15 @@ __metadata: languageName: node linkType: hard +"@emnapi/runtime@npm:^1.10.0, @emnapi/runtime@npm:^1.7.0": + version: 1.10.0 + resolution: "@emnapi/runtime@npm:1.10.0" + dependencies: + tslib: ^2.4.0 + checksum: cc403db36a6875495f4f4a776eea8379c028d83d7d37a018b50079db226e7484f269a0447fc1e49235216d4fb2378bf2c61fa7f047d9f9c50e21698ce9b6e531 + languageName: node + linkType: hard + "@emnapi/runtime@npm:^1.4.3": version: 1.8.1 resolution: "@emnapi/runtime@npm:1.8.1" @@ -2113,6 +2163,15 @@ __metadata: languageName: node linkType: hard +"@emnapi/wasi-threads@npm:1.2.1, @emnapi/wasi-threads@npm:^1.2.1": + version: 1.2.1 + resolution: "@emnapi/wasi-threads@npm:1.2.1" + dependencies: + tslib: ^2.4.0 + checksum: a2360553f8056e3e676f708b7e1639bae84212714ace6ee13b6e0ce667b3057bea6d120c7a4f5b32851f93d287fd4b5a0fd58b14f43363d365cb83bc538254d1 + languageName: node + linkType: hard + "@esbuild/aix-ppc64@npm:0.27.2": version: 0.27.2 resolution: "@esbuild/aix-ppc64@npm:0.27.2" @@ -2120,6 +2179,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/aix-ppc64@npm:0.28.0": + version: 0.28.0 + resolution: "@esbuild/aix-ppc64@npm:0.28.0" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/android-arm64@npm:0.27.2": version: 0.27.2 resolution: "@esbuild/android-arm64@npm:0.27.2" @@ -2127,6 +2193,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm64@npm:0.28.0": + version: 0.28.0 + resolution: "@esbuild/android-arm64@npm:0.28.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/android-arm@npm:0.27.2": version: 0.27.2 resolution: "@esbuild/android-arm@npm:0.27.2" @@ -2134,6 +2207,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm@npm:0.28.0": + version: 0.28.0 + resolution: "@esbuild/android-arm@npm:0.28.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@esbuild/android-x64@npm:0.27.2": version: 0.27.2 resolution: "@esbuild/android-x64@npm:0.27.2" @@ -2141,6 +2221,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-x64@npm:0.28.0": + version: 0.28.0 + resolution: "@esbuild/android-x64@npm:0.28.0" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + "@esbuild/darwin-arm64@npm:0.27.2": version: 0.27.2 resolution: "@esbuild/darwin-arm64@npm:0.27.2" @@ -2148,6 +2235,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-arm64@npm:0.28.0": + version: 0.28.0 + resolution: "@esbuild/darwin-arm64@npm:0.28.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/darwin-x64@npm:0.27.2": version: 0.27.2 resolution: "@esbuild/darwin-x64@npm:0.27.2" @@ -2155,6 +2249,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-x64@npm:0.28.0": + version: 0.28.0 + resolution: "@esbuild/darwin-x64@npm:0.28.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@esbuild/freebsd-arm64@npm:0.27.2": version: 0.27.2 resolution: "@esbuild/freebsd-arm64@npm:0.27.2" @@ -2162,6 +2263,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-arm64@npm:0.28.0": + version: 0.28.0 + resolution: "@esbuild/freebsd-arm64@npm:0.28.0" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/freebsd-x64@npm:0.27.2": version: 0.27.2 resolution: "@esbuild/freebsd-x64@npm:0.27.2" @@ -2169,6 +2277,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-x64@npm:0.28.0": + version: 0.28.0 + resolution: "@esbuild/freebsd-x64@npm:0.28.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/linux-arm64@npm:0.27.2": version: 0.27.2 resolution: "@esbuild/linux-arm64@npm:0.27.2" @@ -2176,6 +2291,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm64@npm:0.28.0": + version: 0.28.0 + resolution: "@esbuild/linux-arm64@npm:0.28.0" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/linux-arm@npm:0.27.2": version: 0.27.2 resolution: "@esbuild/linux-arm@npm:0.27.2" @@ -2183,6 +2305,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm@npm:0.28.0": + version: 0.28.0 + resolution: "@esbuild/linux-arm@npm:0.28.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@esbuild/linux-ia32@npm:0.27.2": version: 0.27.2 resolution: "@esbuild/linux-ia32@npm:0.27.2" @@ -2190,6 +2319,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ia32@npm:0.28.0": + version: 0.28.0 + resolution: "@esbuild/linux-ia32@npm:0.28.0" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/linux-loong64@npm:0.27.2": version: 0.27.2 resolution: "@esbuild/linux-loong64@npm:0.27.2" @@ -2197,6 +2333,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-loong64@npm:0.28.0": + version: 0.28.0 + resolution: "@esbuild/linux-loong64@npm:0.28.0" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + "@esbuild/linux-mips64el@npm:0.27.2": version: 0.27.2 resolution: "@esbuild/linux-mips64el@npm:0.27.2" @@ -2204,6 +2347,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-mips64el@npm:0.28.0": + version: 0.28.0 + resolution: "@esbuild/linux-mips64el@npm:0.28.0" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + "@esbuild/linux-ppc64@npm:0.27.2": version: 0.27.2 resolution: "@esbuild/linux-ppc64@npm:0.27.2" @@ -2211,6 +2361,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ppc64@npm:0.28.0": + version: 0.28.0 + resolution: "@esbuild/linux-ppc64@npm:0.28.0" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/linux-riscv64@npm:0.27.2": version: 0.27.2 resolution: "@esbuild/linux-riscv64@npm:0.27.2" @@ -2218,6 +2375,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-riscv64@npm:0.28.0": + version: 0.28.0 + resolution: "@esbuild/linux-riscv64@npm:0.28.0" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + "@esbuild/linux-s390x@npm:0.27.2": version: 0.27.2 resolution: "@esbuild/linux-s390x@npm:0.27.2" @@ -2225,6 +2389,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-s390x@npm:0.28.0": + version: 0.28.0 + resolution: "@esbuild/linux-s390x@npm:0.28.0" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + "@esbuild/linux-x64@npm:0.27.2": version: 0.27.2 resolution: "@esbuild/linux-x64@npm:0.27.2" @@ -2232,6 +2403,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-x64@npm:0.28.0": + version: 0.28.0 + resolution: "@esbuild/linux-x64@npm:0.28.0" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + "@esbuild/netbsd-arm64@npm:0.27.2": version: 0.27.2 resolution: "@esbuild/netbsd-arm64@npm:0.27.2" @@ -2239,6 +2417,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-arm64@npm:0.28.0": + version: 0.28.0 + resolution: "@esbuild/netbsd-arm64@npm:0.28.0" + conditions: os=netbsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/netbsd-x64@npm:0.27.2": version: 0.27.2 resolution: "@esbuild/netbsd-x64@npm:0.27.2" @@ -2246,6 +2431,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-x64@npm:0.28.0": + version: 0.28.0 + resolution: "@esbuild/netbsd-x64@npm:0.28.0" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/openbsd-arm64@npm:0.27.2": version: 0.27.2 resolution: "@esbuild/openbsd-arm64@npm:0.27.2" @@ -2253,6 +2445,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-arm64@npm:0.28.0": + version: 0.28.0 + resolution: "@esbuild/openbsd-arm64@npm:0.28.0" + conditions: os=openbsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/openbsd-x64@npm:0.27.2": version: 0.27.2 resolution: "@esbuild/openbsd-x64@npm:0.27.2" @@ -2260,6 +2459,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-x64@npm:0.28.0": + version: 0.28.0 + resolution: "@esbuild/openbsd-x64@npm:0.28.0" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/openharmony-arm64@npm:0.27.2": version: 0.27.2 resolution: "@esbuild/openharmony-arm64@npm:0.27.2" @@ -2267,6 +2473,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openharmony-arm64@npm:0.28.0": + version: 0.28.0 + resolution: "@esbuild/openharmony-arm64@npm:0.28.0" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/sunos-x64@npm:0.27.2": version: 0.27.2 resolution: "@esbuild/sunos-x64@npm:0.27.2" @@ -2274,6 +2487,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/sunos-x64@npm:0.28.0": + version: 0.28.0 + resolution: "@esbuild/sunos-x64@npm:0.28.0" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + "@esbuild/win32-arm64@npm:0.27.2": version: 0.27.2 resolution: "@esbuild/win32-arm64@npm:0.27.2" @@ -2281,6 +2501,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-arm64@npm:0.28.0": + version: 0.28.0 + resolution: "@esbuild/win32-arm64@npm:0.28.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/win32-ia32@npm:0.27.2": version: 0.27.2 resolution: "@esbuild/win32-ia32@npm:0.27.2" @@ -2288,6 +2515,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-ia32@npm:0.28.0": + version: 0.28.0 + resolution: "@esbuild/win32-ia32@npm:0.28.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/win32-x64@npm:0.27.2": version: 0.27.2 resolution: "@esbuild/win32-x64@npm:0.27.2" @@ -2295,6 +2529,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-x64@npm:0.28.0": + version: 0.28.0 + resolution: "@esbuild/win32-x64@npm:0.28.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0, @eslint-community/eslint-utils@npm:^4.8.0, @eslint-community/eslint-utils@npm:^4.9.1": version: 4.9.1 resolution: "@eslint-community/eslint-utils@npm:4.9.1" @@ -2381,6 +2622,59 @@ __metadata: languageName: node linkType: hard +"@floating-ui/core@npm:^1.7.5": + version: 1.7.5 + resolution: "@floating-ui/core@npm:1.7.5" + dependencies: + "@floating-ui/utils": ^0.2.11 + checksum: 9dda28bb1d301305ba407ad61fc1acf0f498819a6976e0b9c0a91069d92fb4b4bc8d6cffd1c68c4c281cffd0f7d267cbc2e56ea622f91c342aaa060d5b73d5db + languageName: node + linkType: hard + +"@floating-ui/dom@npm:^1.7.6": + version: 1.7.6 + resolution: "@floating-ui/dom@npm:1.7.6" + dependencies: + "@floating-ui/core": ^1.7.5 + "@floating-ui/utils": ^0.2.11 + checksum: 0c1ba371a2e5b8cdbd6a88daafd8bb22cc415a5b50dbf23d829842c1551efe8e74fed5d34c89644fa8ee5dcf9b0470f9b2e9a3f82f91622abe6e1284b272d1c1 + languageName: node + linkType: hard + +"@floating-ui/react-dom@npm:^2.0.0": + version: 2.1.8 + resolution: "@floating-ui/react-dom@npm:2.1.8" + dependencies: + "@floating-ui/dom": ^1.7.6 + peerDependencies: + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: f81777f92bfbdc3bdb852f3c15d2609ffcd207e15db7cd2b58680ea9bd0574ba37a472475dfb71dbfcbfbdef40792ab8120f327df2050d52193bafff8db9aa71 + languageName: node + linkType: hard + +"@floating-ui/utils@npm:^0.2.11": + version: 0.2.11 + resolution: "@floating-ui/utils@npm:0.2.11" + checksum: e98a2da3e36bd476460b0b85c3ba37c254516790d8c5eafa79ecf67bae7f2230c46d5fabce196aaf08bcd31586828e2df718cd2ccd1d333f18120f8adef66828 + languageName: node + linkType: hard + +"@fumadocs/tailwind@npm:0.0.5": + version: 0.0.5 + resolution: "@fumadocs/tailwind@npm:0.0.5" + peerDependencies: + "@tailwindcss/oxide": ^4.0.0 + tailwindcss: ^4.0.0 + peerDependenciesMeta: + "@tailwindcss/oxide": + optional: true + tailwindcss: + optional: true + checksum: a7f2019197eb78a0f87dc9adceb80d1f521ccd9c023d88a7bbca0e6254014cba129a2d3a78f8c46cff8fb53898a5d49496ec166a3cbb418e4a2362106eaeb800 + languageName: node + linkType: hard + "@hapi/hoek@npm:^9.0.0, @hapi/hoek@npm:^9.3.0": version: 9.3.0 resolution: "@hapi/hoek@npm:9.3.0" @@ -2428,110 +2722,355 @@ __metadata: languageName: node linkType: hard -"@isaacs/balanced-match@npm:^4.0.1": - version: 4.0.1 - resolution: "@isaacs/balanced-match@npm:4.0.1" - checksum: 102fbc6d2c0d5edf8f6dbf2b3feb21695a21bc850f11bc47c4f06aa83bd8884fde3fe9d6d797d619901d96865fdcb4569ac2a54c937992c48885c5e3d9967fe8 +"@iconify/types@npm:^2.0.0": + version: 2.0.0 + resolution: "@iconify/types@npm:2.0.0" + checksum: 029f58542c160e9d4a746869cf2e475b603424d3adf3994c5cc8d0406c47e6e04a3b898b2707840c1c5b9bd5563a1660a34b110d89fce43923baca5222f4e597 languageName: node linkType: hard -"@isaacs/brace-expansion@npm:^5.0.0": - version: 5.0.0 - resolution: "@isaacs/brace-expansion@npm:5.0.0" +"@iconify/utils@npm:^3.0.2": + version: 3.1.3 + resolution: "@iconify/utils@npm:3.1.3" dependencies: - "@isaacs/balanced-match": ^4.0.1 - checksum: d7a3b8b0ddbf0ccd8eeb1300e29dd0a0c02147e823d8138f248375a365682360620895c66d113e05ee02389318c654379b0e538b996345b83c914941786705b1 + "@antfu/install-pkg": ^1.1.0 + "@iconify/types": ^2.0.0 + import-meta-resolve: ^4.2.0 + checksum: 63f43869a679185604ea1f65f8107532afe2e0e6aa4e1666d97885589ea95311b9bff0501ddbda4d239757b383f70b5291092fa2600a39a6b61771c525d4fa22 languageName: node linkType: hard -"@isaacs/cliui@npm:^8.0.2": - version: 8.0.2 - resolution: "@isaacs/cliui@npm:8.0.2" +"@img/colour@npm:^1.0.0": + version: 1.1.0 + resolution: "@img/colour@npm:1.1.0" + checksum: 1572b4f154fe5987e02e107c32f64a9f50a18cab4a2015b7e53f48317b20c58e00cc2e09467378a2d4f06a6139cabd259b1b6d224e79a3bd6b66daea70a6613d + languageName: node + linkType: hard + +"@img/sharp-darwin-arm64@npm:0.34.5": + version: 0.34.5 + resolution: "@img/sharp-darwin-arm64@npm:0.34.5" dependencies: - string-width: ^5.1.2 - string-width-cjs: "npm:string-width@^4.2.0" - strip-ansi: ^7.0.1 - strip-ansi-cjs: "npm:strip-ansi@^6.0.1" - wrap-ansi: ^8.1.0 - wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" - checksum: 4a473b9b32a7d4d3cfb7a614226e555091ff0c5a29a1734c28c72a182c2f6699b26fc6b5c2131dfd841e86b185aea714c72201d7c98c2fba5f17709333a67aeb + "@img/sharp-libvips-darwin-arm64": 1.2.4 + dependenciesMeta: + "@img/sharp-libvips-darwin-arm64": + optional: true + conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@isaacs/fs-minipass@npm:^4.0.0": - version: 4.0.1 - resolution: "@isaacs/fs-minipass@npm:4.0.1" +"@img/sharp-darwin-x64@npm:0.34.5": + version: 0.34.5 + resolution: "@img/sharp-darwin-x64@npm:0.34.5" dependencies: - minipass: ^7.0.4 - checksum: 5d36d289960e886484362d9eb6a51d1ea28baed5f5d0140bbe62b99bac52eaf06cc01c2bc0d3575977962f84f6b2c4387b043ee632216643d4787b0999465bf2 + "@img/sharp-libvips-darwin-x64": 1.2.4 + dependenciesMeta: + "@img/sharp-libvips-darwin-x64": + optional: true + conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@isaacs/ttlcache@npm:^1.4.1": - version: 1.4.1 - resolution: "@isaacs/ttlcache@npm:1.4.1" - checksum: b99f0918faf1eba405b6bc3421584282b2edc46cca23f8d8e112a643bf6e4506c6c53a4525901118e229d19c5719bbec3028ec438d758fd71081f6c32af871ec +"@img/sharp-libvips-darwin-arm64@npm:1.2.4": + version: 1.2.4 + resolution: "@img/sharp-libvips-darwin-arm64@npm:1.2.4" + conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@istanbuljs/load-nyc-config@npm:^1.0.0": - version: 1.1.0 - resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" - dependencies: - camelcase: ^5.3.1 - find-up: ^4.1.0 - get-package-type: ^0.1.0 - js-yaml: ^3.13.1 - resolve-from: ^5.0.0 - checksum: d578da5e2e804d5c93228450a1380e1a3c691de4953acc162f387b717258512a3e07b83510a936d9fab03eac90817473917e24f5d16297af3867f59328d58568 +"@img/sharp-libvips-darwin-x64@npm:1.2.4": + version: 1.2.4 + resolution: "@img/sharp-libvips-darwin-x64@npm:1.2.4" + conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@istanbuljs/schema@npm:^0.1.2, @istanbuljs/schema@npm:^0.1.3": - version: 0.1.3 - resolution: "@istanbuljs/schema@npm:0.1.3" - checksum: 5282759d961d61350f33d9118d16bcaed914ebf8061a52f4fa474b2cb08720c9c81d165e13b82f2e5a8a212cc5af482f0c6fc1ac27b9e067e5394c9a6ed186c9 +"@img/sharp-libvips-linux-arm64@npm:1.2.4": + version: 1.2.4 + resolution: "@img/sharp-libvips-linux-arm64@npm:1.2.4" + conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@jest/console@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/console@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - "@types/node": "*" - chalk: ^4.0.0 - jest-message-util: ^29.7.0 - jest-util: ^29.7.0 - slash: ^3.0.0 - checksum: 0e3624e32c5a8e7361e889db70b170876401b7d70f509a2538c31d5cd50deb0c1ae4b92dc63fe18a0902e0a48c590c21d53787a0df41a52b34fa7cab96c384d6 +"@img/sharp-libvips-linux-arm@npm:1.2.4": + version: 1.2.4 + resolution: "@img/sharp-libvips-linux-arm@npm:1.2.4" + conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@jest/core@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/core@npm:29.7.0" - dependencies: - "@jest/console": ^29.7.0 - "@jest/reporters": ^29.7.0 - "@jest/test-result": ^29.7.0 - "@jest/transform": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - ansi-escapes: ^4.2.1 - chalk: ^4.0.0 - ci-info: ^3.2.0 - exit: ^0.1.2 - graceful-fs: ^4.2.9 - jest-changed-files: ^29.7.0 - jest-config: ^29.7.0 - jest-haste-map: ^29.7.0 - jest-message-util: ^29.7.0 - jest-regex-util: ^29.6.3 - jest-resolve: ^29.7.0 - jest-resolve-dependencies: ^29.7.0 - jest-runner: ^29.7.0 - jest-runtime: ^29.7.0 +"@img/sharp-libvips-linux-ppc64@npm:1.2.4": + version: 1.2.4 + resolution: "@img/sharp-libvips-linux-ppc64@npm:1.2.4" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-libvips-linux-riscv64@npm:1.2.4": + version: 1.2.4 + resolution: "@img/sharp-libvips-linux-riscv64@npm:1.2.4" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-libvips-linux-s390x@npm:1.2.4": + version: 1.2.4 + resolution: "@img/sharp-libvips-linux-s390x@npm:1.2.4" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-libvips-linux-x64@npm:1.2.4": + version: 1.2.4 + resolution: "@img/sharp-libvips-linux-x64@npm:1.2.4" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-libvips-linuxmusl-arm64@npm:1.2.4": + version: 1.2.4 + resolution: "@img/sharp-libvips-linuxmusl-arm64@npm:1.2.4" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@img/sharp-libvips-linuxmusl-x64@npm:1.2.4": + version: 1.2.4 + resolution: "@img/sharp-libvips-linuxmusl-x64@npm:1.2.4" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@img/sharp-linux-arm64@npm:0.34.5": + version: 0.34.5 + resolution: "@img/sharp-linux-arm64@npm:0.34.5" + dependencies: + "@img/sharp-libvips-linux-arm64": 1.2.4 + dependenciesMeta: + "@img/sharp-libvips-linux-arm64": + optional: true + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-linux-arm@npm:0.34.5": + version: 0.34.5 + resolution: "@img/sharp-linux-arm@npm:0.34.5" + dependencies: + "@img/sharp-libvips-linux-arm": 1.2.4 + dependenciesMeta: + "@img/sharp-libvips-linux-arm": + optional: true + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-linux-ppc64@npm:0.34.5": + version: 0.34.5 + resolution: "@img/sharp-linux-ppc64@npm:0.34.5" + dependencies: + "@img/sharp-libvips-linux-ppc64": 1.2.4 + dependenciesMeta: + "@img/sharp-libvips-linux-ppc64": + optional: true + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-linux-riscv64@npm:0.34.5": + version: 0.34.5 + resolution: "@img/sharp-linux-riscv64@npm:0.34.5" + dependencies: + "@img/sharp-libvips-linux-riscv64": 1.2.4 + dependenciesMeta: + "@img/sharp-libvips-linux-riscv64": + optional: true + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-linux-s390x@npm:0.34.5": + version: 0.34.5 + resolution: "@img/sharp-linux-s390x@npm:0.34.5" + dependencies: + "@img/sharp-libvips-linux-s390x": 1.2.4 + dependenciesMeta: + "@img/sharp-libvips-linux-s390x": + optional: true + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-linux-x64@npm:0.34.5": + version: 0.34.5 + resolution: "@img/sharp-linux-x64@npm:0.34.5" + dependencies: + "@img/sharp-libvips-linux-x64": 1.2.4 + dependenciesMeta: + "@img/sharp-libvips-linux-x64": + optional: true + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-linuxmusl-arm64@npm:0.34.5": + version: 0.34.5 + resolution: "@img/sharp-linuxmusl-arm64@npm:0.34.5" + dependencies: + "@img/sharp-libvips-linuxmusl-arm64": 1.2.4 + dependenciesMeta: + "@img/sharp-libvips-linuxmusl-arm64": + optional: true + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@img/sharp-linuxmusl-x64@npm:0.34.5": + version: 0.34.5 + resolution: "@img/sharp-linuxmusl-x64@npm:0.34.5" + dependencies: + "@img/sharp-libvips-linuxmusl-x64": 1.2.4 + dependenciesMeta: + "@img/sharp-libvips-linuxmusl-x64": + optional: true + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@img/sharp-wasm32@npm:0.34.5": + version: 0.34.5 + resolution: "@img/sharp-wasm32@npm:0.34.5" + dependencies: + "@emnapi/runtime": ^1.7.0 + conditions: cpu=wasm32 + languageName: node + linkType: hard + +"@img/sharp-win32-arm64@npm:0.34.5": + version: 0.34.5 + resolution: "@img/sharp-win32-arm64@npm:0.34.5" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@img/sharp-win32-ia32@npm:0.34.5": + version: 0.34.5 + resolution: "@img/sharp-win32-ia32@npm:0.34.5" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@img/sharp-win32-x64@npm:0.34.5": + version: 0.34.5 + resolution: "@img/sharp-win32-x64@npm:0.34.5" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@isaacs/balanced-match@npm:^4.0.1": + version: 4.0.1 + resolution: "@isaacs/balanced-match@npm:4.0.1" + checksum: 102fbc6d2c0d5edf8f6dbf2b3feb21695a21bc850f11bc47c4f06aa83bd8884fde3fe9d6d797d619901d96865fdcb4569ac2a54c937992c48885c5e3d9967fe8 + languageName: node + linkType: hard + +"@isaacs/brace-expansion@npm:^5.0.0": + version: 5.0.0 + resolution: "@isaacs/brace-expansion@npm:5.0.0" + dependencies: + "@isaacs/balanced-match": ^4.0.1 + checksum: d7a3b8b0ddbf0ccd8eeb1300e29dd0a0c02147e823d8138f248375a365682360620895c66d113e05ee02389318c654379b0e538b996345b83c914941786705b1 + languageName: node + linkType: hard + +"@isaacs/cliui@npm:^8.0.2": + version: 8.0.2 + resolution: "@isaacs/cliui@npm:8.0.2" + dependencies: + string-width: ^5.1.2 + string-width-cjs: "npm:string-width@^4.2.0" + strip-ansi: ^7.0.1 + strip-ansi-cjs: "npm:strip-ansi@^6.0.1" + wrap-ansi: ^8.1.0 + wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" + checksum: 4a473b9b32a7d4d3cfb7a614226e555091ff0c5a29a1734c28c72a182c2f6699b26fc6b5c2131dfd841e86b185aea714c72201d7c98c2fba5f17709333a67aeb + languageName: node + linkType: hard + +"@isaacs/fs-minipass@npm:^4.0.0": + version: 4.0.1 + resolution: "@isaacs/fs-minipass@npm:4.0.1" + dependencies: + minipass: ^7.0.4 + checksum: 5d36d289960e886484362d9eb6a51d1ea28baed5f5d0140bbe62b99bac52eaf06cc01c2bc0d3575977962f84f6b2c4387b043ee632216643d4787b0999465bf2 + languageName: node + linkType: hard + +"@isaacs/ttlcache@npm:^1.4.1": + version: 1.4.1 + resolution: "@isaacs/ttlcache@npm:1.4.1" + checksum: b99f0918faf1eba405b6bc3421584282b2edc46cca23f8d8e112a643bf6e4506c6c53a4525901118e229d19c5719bbec3028ec438d758fd71081f6c32af871ec + languageName: node + linkType: hard + +"@istanbuljs/load-nyc-config@npm:^1.0.0": + version: 1.1.0 + resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" + dependencies: + camelcase: ^5.3.1 + find-up: ^4.1.0 + get-package-type: ^0.1.0 + js-yaml: ^3.13.1 + resolve-from: ^5.0.0 + checksum: d578da5e2e804d5c93228450a1380e1a3c691de4953acc162f387b717258512a3e07b83510a936d9fab03eac90817473917e24f5d16297af3867f59328d58568 + languageName: node + linkType: hard + +"@istanbuljs/schema@npm:^0.1.2, @istanbuljs/schema@npm:^0.1.3": + version: 0.1.3 + resolution: "@istanbuljs/schema@npm:0.1.3" + checksum: 5282759d961d61350f33d9118d16bcaed914ebf8061a52f4fa474b2cb08720c9c81d165e13b82f2e5a8a212cc5af482f0c6fc1ac27b9e067e5394c9a6ed186c9 + languageName: node + linkType: hard + +"@jest/console@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/console@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + "@types/node": "*" + chalk: ^4.0.0 + jest-message-util: ^29.7.0 + jest-util: ^29.7.0 + slash: ^3.0.0 + checksum: 0e3624e32c5a8e7361e889db70b170876401b7d70f509a2538c31d5cd50deb0c1ae4b92dc63fe18a0902e0a48c590c21d53787a0df41a52b34fa7cab96c384d6 + languageName: node + linkType: hard + +"@jest/core@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/core@npm:29.7.0" + dependencies: + "@jest/console": ^29.7.0 + "@jest/reporters": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + ansi-escapes: ^4.2.1 + chalk: ^4.0.0 + ci-info: ^3.2.0 + exit: ^0.1.2 + graceful-fs: ^4.2.9 + jest-changed-files: ^29.7.0 + jest-config: ^29.7.0 + jest-haste-map: ^29.7.0 + jest-message-util: ^29.7.0 + jest-regex-util: ^29.6.3 + jest-resolve: ^29.7.0 + jest-resolve-dependencies: ^29.7.0 + jest-runner: ^29.7.0 + jest-runtime: ^29.7.0 jest-snapshot: ^29.7.0 jest-util: ^29.7.0 jest-validate: ^29.7.0 @@ -2800,6 +3339,48 @@ __metadata: languageName: node linkType: hard +"@mdx-js/mdx@npm:^3.1.1": + version: 3.1.1 + resolution: "@mdx-js/mdx@npm:3.1.1" + dependencies: + "@types/estree": ^1.0.0 + "@types/estree-jsx": ^1.0.0 + "@types/hast": ^3.0.0 + "@types/mdx": ^2.0.0 + acorn: ^8.0.0 + collapse-white-space: ^2.0.0 + devlop: ^1.0.0 + estree-util-is-identifier-name: ^3.0.0 + estree-util-scope: ^1.0.0 + estree-walker: ^3.0.0 + hast-util-to-jsx-runtime: ^2.0.0 + markdown-extensions: ^2.0.0 + recma-build-jsx: ^1.0.0 + recma-jsx: ^1.0.0 + recma-stringify: ^1.0.0 + rehype-recma: ^1.0.0 + remark-mdx: ^3.0.0 + remark-parse: ^11.0.0 + remark-rehype: ^11.0.0 + source-map: ^0.7.0 + unified: ^11.0.0 + unist-util-position-from-estree: ^2.0.0 + unist-util-stringify-position: ^4.0.0 + unist-util-visit: ^5.0.0 + vfile: ^6.0.0 + checksum: 6e624abc177345b80e1fedd0e899e06ceb2e73dfba7b4a5ac59e415a3f905048818dbe6e89c46e20cafcb20ef53ea6901193fbd5d59fa661680d81b837b6d7df + languageName: node + linkType: hard + +"@mermaid-js/parser@npm:^1.1.1": + version: 1.1.1 + resolution: "@mermaid-js/parser@npm:1.1.1" + dependencies: + "@chevrotain/types": ~11.1.1 + checksum: aba326b660a64817d5151502ba4764d4cd3446719de762efbccf080a56607b247722216514fee2686b332ed406fa0bfef67cc34cb38290e21560d54937d6b326 + languageName: node + linkType: hard + "@napi-rs/wasm-runtime@npm:^0.2.11": version: 0.2.12 resolution: "@napi-rs/wasm-runtime@npm:0.2.12" @@ -2811,6 +3392,81 @@ __metadata: languageName: node linkType: hard +"@napi-rs/wasm-runtime@npm:^1.1.4": + version: 1.1.4 + resolution: "@napi-rs/wasm-runtime@npm:1.1.4" + dependencies: + "@tybys/wasm-util": ^0.10.1 + peerDependencies: + "@emnapi/core": ^1.7.1 + "@emnapi/runtime": ^1.7.1 + checksum: b4e73515605a7d90a1e629e9c2a917f3719af6650637029cb791cb1db4703221fe55b038366ae11819fb9ccfbec026c0c30d6c40b0a19ec0936068fe7d4a0d4a + languageName: node + linkType: hard + +"@next/env@npm:16.2.7": + version: 16.2.7 + resolution: "@next/env@npm:16.2.7" + checksum: 1667612eb3e228048a9cc7baff2e8c4bfed4dde0f66e1567139f06232bcfbe8b80fb99cb78bdc286f0fb17b2b39ee78202de0c27ecbc703ad2e7ca850cd9181d + languageName: node + linkType: hard + +"@next/swc-darwin-arm64@npm:16.2.7": + version: 16.2.7 + resolution: "@next/swc-darwin-arm64@npm:16.2.7" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@next/swc-darwin-x64@npm:16.2.7": + version: 16.2.7 + resolution: "@next/swc-darwin-x64@npm:16.2.7" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@next/swc-linux-arm64-gnu@npm:16.2.7": + version: 16.2.7 + resolution: "@next/swc-linux-arm64-gnu@npm:16.2.7" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@next/swc-linux-arm64-musl@npm:16.2.7": + version: 16.2.7 + resolution: "@next/swc-linux-arm64-musl@npm:16.2.7" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@next/swc-linux-x64-gnu@npm:16.2.7": + version: 16.2.7 + resolution: "@next/swc-linux-x64-gnu@npm:16.2.7" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@next/swc-linux-x64-musl@npm:16.2.7": + version: 16.2.7 + resolution: "@next/swc-linux-x64-musl@npm:16.2.7" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@next/swc-win32-arm64-msvc@npm:16.2.7": + version: 16.2.7 + resolution: "@next/swc-win32-arm64-msvc@npm:16.2.7" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@next/swc-win32-x64-msvc@npm:16.2.7": + version: 16.2.7 + resolution: "@next/swc-win32-x64-msvc@npm:16.2.7" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1": version: 5.1.1-v1 resolution: "@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1" @@ -2876,7 +3532,14 @@ __metadata: languageName: node linkType: hard -"@pkgjs/parseargs@npm:^0.11.0": +"@orama/orama@npm:^3.1.18": + version: 3.1.18 + resolution: "@orama/orama@npm:3.1.18" + checksum: 3d3f2e300cb78762826f28550e3245ad4b82d45461bc8bc3fc1367aeca4059b0f0d41cfc160bbd47acd7b2725c33770a3dbe049aeda5fc5a2099072725dfc982 + languageName: node + linkType: hard + +"@pkgjs/parseargs@npm:^0.11.0": version: 0.11.0 resolution: "@pkgjs/parseargs@npm:0.11.0" checksum: 6ad6a00fc4f2f2cfc6bff76fb1d88b8ee20bc0601e18ebb01b6d4be583733a860239a521a7fbca73b612e66705078809483549d2b18f370eb346c5155c8e4a0f @@ -2907,1489 +3570,2704 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-clean@npm:13.6.9": - version: 13.6.9 - resolution: "@react-native-community/cli-clean@npm:13.6.9" - dependencies: - "@react-native-community/cli-tools": 13.6.9 - chalk: ^4.1.2 - execa: ^5.0.0 - fast-glob: ^3.3.2 - checksum: 2afb05e88e954161f14034dbb0f06b490f348e0ea473fc974dd704ca4704fd6b98fc38e1bd3f712ba24c2878ec376ee46ce203055c14ac37107c7c7654533c1e +"@radix-ui/number@npm:1.1.2": + version: 1.1.2 + resolution: "@radix-ui/number@npm:1.1.2" + checksum: 61062fa9e93dee7073d8523304802bfbae6dcc78608197b3c13a1dfd69a6d0795469885a017a39f83f9f50e33cf6bad1f8d51f35125c86a67841bf49ccf66491 languageName: node linkType: hard -"@react-native-community/cli-config@npm:13.6.9": - version: 13.6.9 - resolution: "@react-native-community/cli-config@npm:13.6.9" - dependencies: - "@react-native-community/cli-tools": 13.6.9 - chalk: ^4.1.2 - cosmiconfig: ^5.1.0 - deepmerge: ^4.3.0 - fast-glob: ^3.3.2 - joi: ^17.2.1 - checksum: 6bef773e793d445f44e6bdf02fcb083f390700d0f9aeeed2e3d43522d26a31c38b08c2b7613fdad42bb0de8c03c9123a1d3a0478c0b65ff4d139c231211e8618 +"@radix-ui/primitive@npm:1.1.4": + version: 1.1.4 + resolution: "@radix-ui/primitive@npm:1.1.4" + checksum: 983f49f953b39eca8cc0fa26f429375bd153535371a222255814ee7b9d2ff89c6ab3c73399eb77c027944d76289e7bc4eec03121c1f782a93d27623de11ad135 languageName: node linkType: hard -"@react-native-community/cli-debugger-ui@npm:13.6.8": - version: 13.6.8 - resolution: "@react-native-community/cli-debugger-ui@npm:13.6.8" +"@radix-ui/react-accordion@npm:^1.2.12": + version: 1.2.13 + resolution: "@radix-ui/react-accordion@npm:1.2.13" dependencies: - serve-static: ^1.13.1 - checksum: 412381ee341e76a7c4e36488930deccd68a37ea77d445ec579b3bbfdc9a42bc0f3571a852aa7d5a74e0a4ac4cdce5a98fae91abba0615a1a9a73fbaa7b2d7abf + "@radix-ui/primitive": 1.1.4 + "@radix-ui/react-collapsible": 1.1.13 + "@radix-ui/react-collection": 1.1.9 + "@radix-ui/react-compose-refs": 1.1.3 + "@radix-ui/react-context": 1.1.4 + "@radix-ui/react-direction": 1.1.2 + "@radix-ui/react-id": 1.1.2 + "@radix-ui/react-primitive": 2.1.5 + "@radix-ui/react-use-controllable-state": 1.2.3 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 28bd32d2893ae4d01c40ec0d370f2ca483cdd4f171457615a9210cfe03f037b960201cc7d7952ae9cce3b1539d2995f41ea7bc1e97a288288edd522e3b42df14 languageName: node linkType: hard -"@react-native-community/cli-debugger-ui@npm:13.6.9": - version: 13.6.9 - resolution: "@react-native-community/cli-debugger-ui@npm:13.6.9" +"@radix-ui/react-arrow@npm:1.1.9": + version: 1.1.9 + resolution: "@radix-ui/react-arrow@npm:1.1.9" dependencies: - serve-static: ^1.13.1 - checksum: 9c2db8a1d9fe0378418557c37b58a2acd2c5c8ec72e1fd162305d7a05556e9833fd0c0ee4c60d5e811708dbd3932b263f11a15559595e05798fd829e846fd2f2 + "@radix-ui/react-primitive": 2.1.5 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 4c12f2ba02e4853e80196085b2eb35b5cc9a022d9c54d49be330b722c67a10bd697885a89e46e9bb473986280a70f2118f374294a3a3ee292860e91099005574 languageName: node linkType: hard -"@react-native-community/cli-doctor@npm:13.6.9": - version: 13.6.9 - resolution: "@react-native-community/cli-doctor@npm:13.6.9" +"@radix-ui/react-collapsible@npm:1.1.13, @radix-ui/react-collapsible@npm:^1.1.12": + version: 1.1.13 + resolution: "@radix-ui/react-collapsible@npm:1.1.13" dependencies: - "@react-native-community/cli-config": 13.6.9 - "@react-native-community/cli-platform-android": 13.6.9 - "@react-native-community/cli-platform-apple": 13.6.9 - "@react-native-community/cli-platform-ios": 13.6.9 - "@react-native-community/cli-tools": 13.6.9 - chalk: ^4.1.2 - command-exists: ^1.2.8 - deepmerge: ^4.3.0 - envinfo: ^7.10.0 - execa: ^5.0.0 - hermes-profile-transformer: ^0.0.6 - node-stream-zip: ^1.9.1 - ora: ^5.4.1 - semver: ^7.5.2 - strip-ansi: ^5.2.0 - wcwidth: ^1.0.1 - yaml: ^2.2.1 - checksum: d34c011f54fb4091ca9ad31f09e54c2da88efad43ae0b8634de14e575f69530c2793fcb49052e25b4abf18532353391d796bd5297c38ac9ca9c157dcfc40f4cc + "@radix-ui/primitive": 1.1.4 + "@radix-ui/react-compose-refs": 1.1.3 + "@radix-ui/react-context": 1.1.4 + "@radix-ui/react-id": 1.1.2 + "@radix-ui/react-presence": 1.1.6 + "@radix-ui/react-primitive": 2.1.5 + "@radix-ui/react-use-controllable-state": 1.2.3 + "@radix-ui/react-use-layout-effect": 1.1.2 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: d83432110438d1270f666941617fdfb08e2e3b6481a33bc09970ed540a1523206e22ea6f3172bc2cb159d9037bbbed658b51368bed26dd93d3d47f82f2fb2404 languageName: node linkType: hard -"@react-native-community/cli-hermes@npm:13.6.9": - version: 13.6.9 - resolution: "@react-native-community/cli-hermes@npm:13.6.9" +"@radix-ui/react-collection@npm:1.1.9": + version: 1.1.9 + resolution: "@radix-ui/react-collection@npm:1.1.9" dependencies: - "@react-native-community/cli-platform-android": 13.6.9 - "@react-native-community/cli-tools": 13.6.9 - chalk: ^4.1.2 - hermes-profile-transformer: ^0.0.6 - checksum: b4b4bbf695c1a880bcdcacfc1ca685a73f90730af03859a68e5f55a6a70f4232ec3b33e4f63e14942a963e0067cb04805ba9902b8765a94b5ccbb807b4dcd4e6 + "@radix-ui/react-compose-refs": 1.1.3 + "@radix-ui/react-context": 1.1.4 + "@radix-ui/react-primitive": 2.1.5 + "@radix-ui/react-slot": 1.2.5 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 5398a9354da18074fce2897a106863a4ccbe599522515c9cf5de39356b424cc1d5fc695d44c7be03a8ca9768cdc5ef441ef6b101d54f990c51ad1849c7e38eec languageName: node linkType: hard -"@react-native-community/cli-platform-android@npm:13.6.9": - version: 13.6.9 - resolution: "@react-native-community/cli-platform-android@npm:13.6.9" - dependencies: - "@react-native-community/cli-tools": 13.6.9 - chalk: ^4.1.2 - execa: ^5.0.0 - fast-glob: ^3.3.2 - fast-xml-parser: ^4.2.4 - logkitty: ^0.7.1 - checksum: a743571c99d8a9769ec37086d3a1e04ceddb9ea0e76788a3fc95c458ca1f419b15059bbc18485e25f33d853e1116937ec09464b9fe463109dca5010914c2e72a +"@radix-ui/react-compose-refs@npm:1.1.3": + version: 1.1.3 + resolution: "@radix-ui/react-compose-refs@npm:1.1.3" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: e6c296ee4f816f65feb5f8511217c3521ad822c8a995f320792fe5d909266a982ab3d14b62dab705eab0cb36d82eb0a2895886bb259268dc25898ea43d68a224 languageName: node linkType: hard -"@react-native-community/cli-platform-apple@npm:13.6.9": - version: 13.6.9 - resolution: "@react-native-community/cli-platform-apple@npm:13.6.9" - dependencies: - "@react-native-community/cli-tools": 13.6.9 - chalk: ^4.1.2 - execa: ^5.0.0 - fast-glob: ^3.3.2 - fast-xml-parser: ^4.0.12 - ora: ^5.4.1 - checksum: 4ecd78baf03dbf6e916cc59a623c111cdf5b876427fcfbf34151ff5cc60c1e428362f176703078665d3a7438360d29844d7d2bcec9d692a6082342d8f9d7ffff +"@radix-ui/react-context@npm:1.1.4": + version: 1.1.4 + resolution: "@radix-ui/react-context@npm:1.1.4" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 01a4a4e59f868265aab95280c0a4d96433962f00592a0608f88d35e05901feff9adbf2b6926a49c3cae20f22db4630806ce4b8fc56d3e8a453666547a76485d1 languageName: node linkType: hard -"@react-native-community/cli-platform-ios@npm:13.6.9": - version: 13.6.9 - resolution: "@react-native-community/cli-platform-ios@npm:13.6.9" +"@radix-ui/react-dialog@npm:^1.1.15": + version: 1.1.16 + resolution: "@radix-ui/react-dialog@npm:1.1.16" dependencies: - "@react-native-community/cli-platform-apple": 13.6.9 - checksum: ba88a11d49d7a41fad8455d78be9956ba0a11257257995e2706e0e451f451c4bde352eb178a5e4743811a976f7c271caaae804e23defac9883b1f03c308edd26 + "@radix-ui/primitive": 1.1.4 + "@radix-ui/react-compose-refs": 1.1.3 + "@radix-ui/react-context": 1.1.4 + "@radix-ui/react-dismissable-layer": 1.1.12 + "@radix-ui/react-focus-guards": 1.1.4 + "@radix-ui/react-focus-scope": 1.1.9 + "@radix-ui/react-id": 1.1.2 + "@radix-ui/react-portal": 1.1.11 + "@radix-ui/react-presence": 1.1.6 + "@radix-ui/react-primitive": 2.1.5 + "@radix-ui/react-slot": 1.2.5 + "@radix-ui/react-use-controllable-state": 1.2.3 + aria-hidden: ^1.2.4 + react-remove-scroll: ^2.7.2 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 4ac94888de7ab345ca503229da6b7570692965dbd124af2d3afff8ce92f16cbd81d0f989e3b6c2ea80a68b8d5e8379075d0f5048b93734ae7ac5c48b72243091 languageName: node linkType: hard -"@react-native-community/cli-server-api@npm:13.6.8": - version: 13.6.8 - resolution: "@react-native-community/cli-server-api@npm:13.6.8" - dependencies: - "@react-native-community/cli-debugger-ui": 13.6.8 - "@react-native-community/cli-tools": 13.6.8 - compression: ^1.7.1 - connect: ^3.6.5 - errorhandler: ^1.5.1 - nocache: ^3.0.1 - pretty-format: ^26.6.2 - serve-static: ^1.13.1 - ws: ^6.2.2 - checksum: 686009df5a0e80b39faf4f63f0709620aafef69a15470f1caafa5eca85fec6c3b6a6761e71669267e5e0eed31acf4da2881fec6460abc263c1fc0ea9b6879359 +"@radix-ui/react-direction@npm:1.1.2, @radix-ui/react-direction@npm:^1.1.1": + version: 1.1.2 + resolution: "@radix-ui/react-direction@npm:1.1.2" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: c2c44fcecfb36dd1b4e75f523531185b4aeb4c46bc6b3512411de6f0b7414cdbf14cf6042fb571df81ae3ada722be94c1883520d7e7f12c02a17642335cfdc6a languageName: node linkType: hard -"@react-native-community/cli-server-api@npm:13.6.9": - version: 13.6.9 - resolution: "@react-native-community/cli-server-api@npm:13.6.9" +"@radix-ui/react-dismissable-layer@npm:1.1.12": + version: 1.1.12 + resolution: "@radix-ui/react-dismissable-layer@npm:1.1.12" dependencies: - "@react-native-community/cli-debugger-ui": 13.6.9 - "@react-native-community/cli-tools": 13.6.9 - compression: ^1.7.1 - connect: ^3.6.5 - errorhandler: ^1.5.1 - nocache: ^3.0.1 - pretty-format: ^26.6.2 - serve-static: ^1.13.1 - ws: ^6.2.2 - checksum: 962a3e32cad3609cb181e4578c23ca4225d5aa16daf12902661b7185efd8e6b92e194bf8a44c3525c85ee91a742cc28acc374c5c9af3574496ff7554621f8c64 + "@radix-ui/primitive": 1.1.4 + "@radix-ui/react-compose-refs": 1.1.3 + "@radix-ui/react-primitive": 2.1.5 + "@radix-ui/react-use-callback-ref": 1.1.2 + "@radix-ui/react-use-escape-keydown": 1.1.2 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: daad37784bdc9604730dbfcfc351fd1fa2ae8b5eab009026dfe6cd2ec6853e9deb28bed60de39f0c37e32343cf415f30f291e95f4746531a295c43cdd81dd7c2 languageName: node linkType: hard -"@react-native-community/cli-tools@npm:13.6.8": - version: 13.6.8 - resolution: "@react-native-community/cli-tools@npm:13.6.8" - dependencies: - appdirsjs: ^1.2.4 - chalk: ^4.1.2 - execa: ^5.0.0 - find-up: ^5.0.0 - mime: ^2.4.1 - node-fetch: ^2.6.0 - open: ^6.2.0 - ora: ^5.4.1 - semver: ^7.5.2 - shell-quote: ^1.7.3 - sudo-prompt: ^9.0.0 - checksum: 4f59441f98a6719e745addc36fdb14ca10fe17db87e0bf39300c026d0f36fbfbf3472036df1a89cd09d55d672bc87a98e3a61d7e15bf79a39f0947e5dfe66a8b +"@radix-ui/react-focus-guards@npm:1.1.4": + version: 1.1.4 + resolution: "@radix-ui/react-focus-guards@npm:1.1.4" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: da18237044a8f270fd69f5634fb0d812c0dc5e035e5e6ca9c7c4b5ab4a6f1bce746ed25bacfdf001cb37ce1b362a92b2802d354d18b7fc048d3a9474f84e577c languageName: node linkType: hard -"@react-native-community/cli-tools@npm:13.6.9": - version: 13.6.9 - resolution: "@react-native-community/cli-tools@npm:13.6.9" +"@radix-ui/react-focus-scope@npm:1.1.9": + version: 1.1.9 + resolution: "@radix-ui/react-focus-scope@npm:1.1.9" dependencies: - appdirsjs: ^1.2.4 - chalk: ^4.1.2 - execa: ^5.0.0 - find-up: ^5.0.0 - mime: ^2.4.1 - node-fetch: ^2.6.0 - open: ^6.2.0 - ora: ^5.4.1 - semver: ^7.5.2 - shell-quote: ^1.7.3 - sudo-prompt: ^9.0.0 - checksum: dc5ee921480a03249b408544146737a0674aa6259d797672a5f369d337a2775ec62fb986fcf62fe554992605305b75a220609db8eea9f6b75d97241a4dd79ad3 + "@radix-ui/react-compose-refs": 1.1.3 + "@radix-ui/react-primitive": 2.1.5 + "@radix-ui/react-use-callback-ref": 1.1.2 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: ce78d6e9c706e10fff837c7fe461844f682d2babdcf758f4ef8e6cce2d4353414e737c4e5a9590e56d435acee0b55bf994c407207e4f3f49898fb81cbf6bd2e5 languageName: node linkType: hard -"@react-native-community/cli-types@npm:13.6.9": - version: 13.6.9 - resolution: "@react-native-community/cli-types@npm:13.6.9" +"@radix-ui/react-id@npm:1.1.2": + version: 1.1.2 + resolution: "@radix-ui/react-id@npm:1.1.2" dependencies: - joi: ^17.2.1 - checksum: 224c60447fcebb9fd4719685a3d85aebabbd709f79d056a76750c59cc9d215882bd7386f0822103b2c7b6df1815f738f615c27838381f94028169833ae4473f8 + "@radix-ui/react-use-layout-effect": 1.1.2 + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: d58d0cb53238cef22a880c9fa49ad5510022f0b52aa852842c5ff29abc9dd205e547b58a747682f778adceb9d6f2a548d0897bd27964f4edc903a96707b6e472 languageName: node linkType: hard -"@react-native-community/cli@npm:13.6.9": - version: 13.6.9 - resolution: "@react-native-community/cli@npm:13.6.9" +"@radix-ui/react-navigation-menu@npm:^1.2.14": + version: 1.2.15 + resolution: "@radix-ui/react-navigation-menu@npm:1.2.15" dependencies: - "@react-native-community/cli-clean": 13.6.9 - "@react-native-community/cli-config": 13.6.9 - "@react-native-community/cli-debugger-ui": 13.6.9 - "@react-native-community/cli-doctor": 13.6.9 - "@react-native-community/cli-hermes": 13.6.9 - "@react-native-community/cli-server-api": 13.6.9 - "@react-native-community/cli-tools": 13.6.9 - "@react-native-community/cli-types": 13.6.9 - chalk: ^4.1.2 - commander: ^9.4.1 - deepmerge: ^4.3.0 - execa: ^5.0.0 - find-up: ^4.1.0 - fs-extra: ^8.1.0 - graceful-fs: ^4.1.3 - prompts: ^2.4.2 - semver: ^7.5.2 - bin: - rnc-cli: build/bin.js - checksum: 5e997b50fd687b4f3fcdde6a1fd36317ffee5536649fb16e87f6e3bb1bd56a279daad57b7d904d0442425106f048a114e3987f9a0fc8dc3fadd0a784dcb83a40 - languageName: node - linkType: hard - -"@react-native-community/eslint-config@npm:^3.2.0": - version: 3.2.0 - resolution: "@react-native-community/eslint-config@npm:3.2.0" - dependencies: - "@babel/core": ^7.14.0 - "@babel/eslint-parser": ^7.18.2 - "@react-native-community/eslint-plugin": ^1.1.0 - "@typescript-eslint/eslint-plugin": ^5.30.5 - "@typescript-eslint/parser": ^5.30.5 - eslint-config-prettier: ^8.5.0 - eslint-plugin-eslint-comments: ^3.2.0 - eslint-plugin-ft-flow: ^2.0.1 - eslint-plugin-jest: ^26.5.3 - eslint-plugin-prettier: ^4.2.1 - eslint-plugin-react: ^7.30.1 - eslint-plugin-react-hooks: ^4.6.0 - eslint-plugin-react-native: ^4.0.0 + "@radix-ui/primitive": 1.1.4 + "@radix-ui/react-collection": 1.1.9 + "@radix-ui/react-compose-refs": 1.1.3 + "@radix-ui/react-context": 1.1.4 + "@radix-ui/react-direction": 1.1.2 + "@radix-ui/react-dismissable-layer": 1.1.12 + "@radix-ui/react-id": 1.1.2 + "@radix-ui/react-presence": 1.1.6 + "@radix-ui/react-primitive": 2.1.5 + "@radix-ui/react-use-callback-ref": 1.1.2 + "@radix-ui/react-use-controllable-state": 1.2.3 + "@radix-ui/react-use-layout-effect": 1.1.2 + "@radix-ui/react-use-previous": 1.1.2 + "@radix-ui/react-visually-hidden": 1.2.5 peerDependencies: - eslint: ">=8" - prettier: ">=2" - checksum: 0a2dce65dbe43067571d7a382cfcfb1cae041b319aff216116797389ef0e431865caf6f48925e3532f1879363dc9f6b15cf81fdc967879d544d54605fd617119 + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: b82a7298580c5d76efdcfffb08a3c9e141e329783878279c5eaea0a21a2f1a6e10024aa72d7fdcad766bb5fc897edb14c49a40f6982c95ba74eb2568fb271a1a + languageName: node + linkType: hard + +"@radix-ui/react-popover@npm:^1.1.15": + version: 1.1.16 + resolution: "@radix-ui/react-popover@npm:1.1.16" + dependencies: + "@radix-ui/primitive": 1.1.4 + "@radix-ui/react-compose-refs": 1.1.3 + "@radix-ui/react-context": 1.1.4 + "@radix-ui/react-dismissable-layer": 1.1.12 + "@radix-ui/react-focus-guards": 1.1.4 + "@radix-ui/react-focus-scope": 1.1.9 + "@radix-ui/react-id": 1.1.2 + "@radix-ui/react-popper": 1.3.0 + "@radix-ui/react-portal": 1.1.11 + "@radix-ui/react-presence": 1.1.6 + "@radix-ui/react-primitive": 2.1.5 + "@radix-ui/react-slot": 1.2.5 + "@radix-ui/react-use-controllable-state": 1.2.3 + aria-hidden: ^1.2.4 + react-remove-scroll: ^2.7.2 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 9f165c884b641ddbc3830e3e9cc8821105b569c3066cb3d2e53a064430cf2db07d950facec9eb6dd41cb6fdefa5cb65429e74e1b2b67a7bc3900822858d919e2 languageName: node linkType: hard -"@react-native-community/eslint-plugin@npm:^1.1.0": +"@radix-ui/react-popper@npm:1.3.0": version: 1.3.0 - resolution: "@react-native-community/eslint-plugin@npm:1.3.0" - checksum: 5e04fa161fca6453299aed691695ea071fed8166c5da36935047eb6c169bc38c9d599e1ce20402b63cbcaf086a9bb63d2e88836be142cecabf61ba36954ccaae + resolution: "@radix-ui/react-popper@npm:1.3.0" + dependencies: + "@floating-ui/react-dom": ^2.0.0 + "@radix-ui/react-arrow": 1.1.9 + "@radix-ui/react-compose-refs": 1.1.3 + "@radix-ui/react-context": 1.1.4 + "@radix-ui/react-primitive": 2.1.5 + "@radix-ui/react-use-callback-ref": 1.1.2 + "@radix-ui/react-use-layout-effect": 1.1.2 + "@radix-ui/react-use-rect": 1.1.2 + "@radix-ui/react-use-size": 1.1.2 + "@radix-ui/rect": 1.1.2 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: caa9792d940dc72ea053b55060c3fd4c4b74c3bc0da3039b0ba47264a851d8e03d2f7c272ccaa218fb8521c9c0a24794913de92dd1e6c0c09007dc44ebdb2f83 languageName: node linkType: hard -"@react-native-macos/virtualized-lists@npm:0.79.1": - version: 0.79.1 - resolution: "@react-native-macos/virtualized-lists@npm:0.79.1" +"@radix-ui/react-portal@npm:1.1.11": + version: 1.1.11 + resolution: "@radix-ui/react-portal@npm:1.1.11" dependencies: - invariant: ^2.2.4 - nullthrows: ^1.1.1 + "@radix-ui/react-primitive": 2.1.5 + "@radix-ui/react-use-layout-effect": 1.1.2 peerDependencies: - "@types/react": ^19.0.0 - react: "*" - react-native: "*" + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: "@types/react": optional: true - checksum: 846cad109a2deb30a1cf1b18bcdf4c262c0d9c06ccc9af3b9a22c06f2ef53a9d63920e405a3f828b210ddba10c98b1abf32939d2730603389577d4164ee5da8f + "@types/react-dom": + optional: true + checksum: e26eec8e326504164dc52a40acdc291ed58ffab6db1827d67a89cceb4de2b5d64a93f8f3af3848f71ff555f1bda46290a491f616496a3ef75f0bd58653a873b0 languageName: node linkType: hard -"@react-native/assets-registry@npm:0.74.84": - version: 0.74.84 - resolution: "@react-native/assets-registry@npm:0.74.84" - checksum: 8f76f405a14c38695a0602f7351dad737f6feaa4209c96db53ed69564cab10be4ac55c3e35e2b3ec8e07d7168509a08a86c6585a16a1f279493dfd7d8d9dfef1 +"@radix-ui/react-presence@npm:1.1.6, @radix-ui/react-presence@npm:^1.1.5": + version: 1.1.6 + resolution: "@radix-ui/react-presence@npm:1.1.6" + dependencies: + "@radix-ui/react-use-layout-effect": 1.1.2 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: a1ad63411854d7e3ef1adcffad776705e79d777ec6c2222f9d1ca31b6bbea0945adf7bfc7c71383e078c7ea439aecad35d7e14cded9273a243b5343ceb39003c languageName: node linkType: hard -"@react-native/assets-registry@npm:0.79.6": - version: 0.79.6 - resolution: "@react-native/assets-registry@npm:0.79.6" - checksum: 4f8d870d57294ecc9a1e959596f42db71325346be661a5112e957b55d84b589a0826ef73108cb7b4b6f2040bde4e40e169fdaa9a29cd46b0a4ae70b50f80b441 +"@radix-ui/react-primitive@npm:2.1.5": + version: 2.1.5 + resolution: "@radix-ui/react-primitive@npm:2.1.5" + dependencies: + "@radix-ui/react-slot": 1.2.5 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 2931a5575351983587dfdfcadc428245702eaf90b01631cf33f4b0c9faec2e2778994c7a97507d5ee65625a9154ae27e4998464bac7bc9ad1df0855f9c02fbcc languageName: node linkType: hard -"@react-native/assets-registry@npm:0.81.4": - version: 0.81.4 - resolution: "@react-native/assets-registry@npm:0.81.4" - checksum: 23ee2fce6a5f74ff801a7b08ede9c1cd5bc53148bf94103185b9c55b2b0e1b98134b9fd3e637e11ec39988a1cee456f358d0a20bc124bf942253bd096efeb7c5 +"@radix-ui/react-roving-focus@npm:1.1.12": + version: 1.1.12 + resolution: "@radix-ui/react-roving-focus@npm:1.1.12" + dependencies: + "@radix-ui/primitive": 1.1.4 + "@radix-ui/react-collection": 1.1.9 + "@radix-ui/react-compose-refs": 1.1.3 + "@radix-ui/react-context": 1.1.4 + "@radix-ui/react-direction": 1.1.2 + "@radix-ui/react-id": 1.1.2 + "@radix-ui/react-primitive": 2.1.5 + "@radix-ui/react-use-callback-ref": 1.1.2 + "@radix-ui/react-use-controllable-state": 1.2.3 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: b4d292c8d00d164e25da310312c5edffa3bcc80bc5f01dfd41eee1350fe49be495c32e2539f4a1d975e04063fdf65f05c03c12a9c32d4c7f53e521659d5b4a28 languageName: node linkType: hard -"@react-native/assets-registry@npm:0.83.1": - version: 0.83.1 - resolution: "@react-native/assets-registry@npm:0.83.1" - checksum: ec788b086fb1be0813d47660c34cdd758eb54dada0e9e1a2e8b55d888adab3bd9e6431742d645317f94033522805fc2c7902aa9de567d7c77d37b9619d927cd5 +"@radix-ui/react-scroll-area@npm:^1.2.10": + version: 1.2.11 + resolution: "@radix-ui/react-scroll-area@npm:1.2.11" + dependencies: + "@radix-ui/number": 1.1.2 + "@radix-ui/primitive": 1.1.4 + "@radix-ui/react-compose-refs": 1.1.3 + "@radix-ui/react-context": 1.1.4 + "@radix-ui/react-direction": 1.1.2 + "@radix-ui/react-presence": 1.1.6 + "@radix-ui/react-primitive": 2.1.5 + "@radix-ui/react-use-callback-ref": 1.1.2 + "@radix-ui/react-use-layout-effect": 1.1.2 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: a3b29ad2852ddbf097c57b8af6530620281d0bfaac9a429c5c9b9ee27d82334c7784fe5427bbf8ae85653e484e54b7e5d2ef7c8557fbc3ae15e2eb5d0548b963 languageName: node linkType: hard -"@react-native/babel-plugin-codegen@npm:0.74.84": - version: 0.74.84 - resolution: "@react-native/babel-plugin-codegen@npm:0.74.84" +"@radix-ui/react-slot@npm:1.2.5, @radix-ui/react-slot@npm:^1.2.4": + version: 1.2.5 + resolution: "@radix-ui/react-slot@npm:1.2.5" dependencies: - "@react-native/codegen": 0.74.84 - checksum: b2ada55a80546162fee02129f4e7610a8a24780531ea67d198dbbb64d5c6ae29044a7af542a3f41d390296ef988d53d0304d5f6d17ab03c493d3f0ab440efa11 + "@radix-ui/react-compose-refs": 1.1.3 + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 61d73d862d32a5f90274ad9a5e450824b11bfa494237172dfe81dc24b541dd37b3730794a81c2c37f751a5af241281040d2f332187a9ba70a61ad02911f1fc1d languageName: node linkType: hard -"@react-native/babel-plugin-codegen@npm:0.81.0": - version: 0.81.0 - resolution: "@react-native/babel-plugin-codegen@npm:0.81.0" +"@radix-ui/react-tabs@npm:^1.1.13": + version: 1.1.14 + resolution: "@radix-ui/react-tabs@npm:1.1.14" dependencies: - "@babel/traverse": ^7.25.3 - "@react-native/codegen": 0.81.0 - checksum: 8d209bb2fb4af6168274993b9e0d12bd5bfc43cef6bc5bc89c8c99f0db3f8aac0f63008f1b1f319d875cb09b625bf61f37d91eba636a04742878e56032e88037 + "@radix-ui/primitive": 1.1.4 + "@radix-ui/react-context": 1.1.4 + "@radix-ui/react-direction": 1.1.2 + "@radix-ui/react-id": 1.1.2 + "@radix-ui/react-presence": 1.1.6 + "@radix-ui/react-primitive": 2.1.5 + "@radix-ui/react-roving-focus": 1.1.12 + "@radix-ui/react-use-controllable-state": 1.2.3 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 386db9db627ed31e850a47910e89206ed87524003e2da1cef8c8df55df8ee2752613be9951fde29f1154681d4b6460864434edee9b8459957c8b80ccc1f04c34 languageName: node linkType: hard -"@react-native/babel-preset@npm:0.74.84": - version: 0.74.84 - resolution: "@react-native/babel-preset@npm:0.74.84" - dependencies: - "@babel/core": ^7.20.0 - "@babel/plugin-proposal-async-generator-functions": ^7.0.0 - "@babel/plugin-proposal-class-properties": ^7.18.0 - "@babel/plugin-proposal-export-default-from": ^7.0.0 - "@babel/plugin-proposal-logical-assignment-operators": ^7.18.0 - "@babel/plugin-proposal-nullish-coalescing-operator": ^7.18.0 - "@babel/plugin-proposal-numeric-separator": ^7.0.0 - "@babel/plugin-proposal-object-rest-spread": ^7.20.0 - "@babel/plugin-proposal-optional-catch-binding": ^7.0.0 - "@babel/plugin-proposal-optional-chaining": ^7.20.0 - "@babel/plugin-syntax-dynamic-import": ^7.8.0 - "@babel/plugin-syntax-export-default-from": ^7.0.0 - "@babel/plugin-syntax-flow": ^7.18.0 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.0.0 - "@babel/plugin-syntax-optional-chaining": ^7.0.0 - "@babel/plugin-transform-arrow-functions": ^7.0.0 - "@babel/plugin-transform-async-to-generator": ^7.20.0 - "@babel/plugin-transform-block-scoping": ^7.0.0 - "@babel/plugin-transform-classes": ^7.0.0 - "@babel/plugin-transform-computed-properties": ^7.0.0 - "@babel/plugin-transform-destructuring": ^7.20.0 - "@babel/plugin-transform-flow-strip-types": ^7.20.0 - "@babel/plugin-transform-function-name": ^7.0.0 - "@babel/plugin-transform-literals": ^7.0.0 - "@babel/plugin-transform-modules-commonjs": ^7.0.0 - "@babel/plugin-transform-named-capturing-groups-regex": ^7.0.0 - "@babel/plugin-transform-parameters": ^7.0.0 - "@babel/plugin-transform-private-methods": ^7.22.5 - "@babel/plugin-transform-private-property-in-object": ^7.22.11 - "@babel/plugin-transform-react-display-name": ^7.0.0 - "@babel/plugin-transform-react-jsx": ^7.0.0 - "@babel/plugin-transform-react-jsx-self": ^7.0.0 - "@babel/plugin-transform-react-jsx-source": ^7.0.0 - "@babel/plugin-transform-runtime": ^7.0.0 - "@babel/plugin-transform-shorthand-properties": ^7.0.0 - "@babel/plugin-transform-spread": ^7.0.0 - "@babel/plugin-transform-sticky-regex": ^7.0.0 - "@babel/plugin-transform-typescript": ^7.5.0 - "@babel/plugin-transform-unicode-regex": ^7.0.0 - "@babel/template": ^7.0.0 - "@react-native/babel-plugin-codegen": 0.74.84 - babel-plugin-transform-flow-enums: ^0.0.2 - react-refresh: ^0.14.0 +"@radix-ui/react-use-callback-ref@npm:1.1.2": + version: 1.1.2 + resolution: "@radix-ui/react-use-callback-ref@npm:1.1.2" peerDependencies: - "@babel/core": "*" - checksum: 5cdc7a56b165e1a03c8cc24bf5d8fd32bf987cd889aa958a82aa828e5fdb651d517a033b16be33f4fa26b9b685dfb805df644bdccc8067fb9fca2bfa82a417b6 + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: d2a06a7e1f5e2778f49c4ae2579d6fb4d10edcaf71368364988159a54fe8ac4f384c6597541c0d37294ec5ebf43ce4613944fa8c9810f7ab5c4bb110dfc69cdf languageName: node linkType: hard -"@react-native/babel-preset@npm:0.81.0": - version: 0.81.0 - resolution: "@react-native/babel-preset@npm:0.81.0" +"@radix-ui/react-use-controllable-state@npm:1.2.3": + version: 1.2.3 + resolution: "@radix-ui/react-use-controllable-state@npm:1.2.3" dependencies: - "@babel/core": ^7.25.2 - "@babel/plugin-proposal-export-default-from": ^7.24.7 - "@babel/plugin-syntax-dynamic-import": ^7.8.3 - "@babel/plugin-syntax-export-default-from": ^7.24.7 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 - "@babel/plugin-transform-arrow-functions": ^7.24.7 - "@babel/plugin-transform-async-generator-functions": ^7.25.4 - "@babel/plugin-transform-async-to-generator": ^7.24.7 - "@babel/plugin-transform-block-scoping": ^7.25.0 - "@babel/plugin-transform-class-properties": ^7.25.4 - "@babel/plugin-transform-classes": ^7.25.4 - "@babel/plugin-transform-computed-properties": ^7.24.7 - "@babel/plugin-transform-destructuring": ^7.24.8 - "@babel/plugin-transform-flow-strip-types": ^7.25.2 - "@babel/plugin-transform-for-of": ^7.24.7 - "@babel/plugin-transform-function-name": ^7.25.1 - "@babel/plugin-transform-literals": ^7.25.2 - "@babel/plugin-transform-logical-assignment-operators": ^7.24.7 - "@babel/plugin-transform-modules-commonjs": ^7.24.8 - "@babel/plugin-transform-named-capturing-groups-regex": ^7.24.7 - "@babel/plugin-transform-nullish-coalescing-operator": ^7.24.7 - "@babel/plugin-transform-numeric-separator": ^7.24.7 - "@babel/plugin-transform-object-rest-spread": ^7.24.7 - "@babel/plugin-transform-optional-catch-binding": ^7.24.7 - "@babel/plugin-transform-optional-chaining": ^7.24.8 - "@babel/plugin-transform-parameters": ^7.24.7 - "@babel/plugin-transform-private-methods": ^7.24.7 - "@babel/plugin-transform-private-property-in-object": ^7.24.7 - "@babel/plugin-transform-react-display-name": ^7.24.7 - "@babel/plugin-transform-react-jsx": ^7.25.2 - "@babel/plugin-transform-react-jsx-self": ^7.24.7 - "@babel/plugin-transform-react-jsx-source": ^7.24.7 - "@babel/plugin-transform-regenerator": ^7.24.7 - "@babel/plugin-transform-runtime": ^7.24.7 - "@babel/plugin-transform-shorthand-properties": ^7.24.7 - "@babel/plugin-transform-spread": ^7.24.7 - "@babel/plugin-transform-sticky-regex": ^7.24.7 - "@babel/plugin-transform-typescript": ^7.25.2 - "@babel/plugin-transform-unicode-regex": ^7.24.7 - "@babel/template": ^7.25.0 - "@react-native/babel-plugin-codegen": 0.81.0 - babel-plugin-syntax-hermes-parser: 0.29.1 - babel-plugin-transform-flow-enums: ^0.0.2 - react-refresh: ^0.14.0 + "@radix-ui/react-use-effect-event": 0.0.3 + "@radix-ui/react-use-layout-effect": 1.1.2 peerDependencies: - "@babel/core": "*" - checksum: 39f7f9d5e51554716f8445b389e9abbec1d422322054b7a24516fc6679196b5dd4d509df0d3d1c6a48d4e0c6369ebb8fe87bb012b693885f6c2996a3938807bf + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 25d6957b7c4c29225da1ca26cd07b56517be8e655dfcef63f5928cb70f52355489257572ea777f15038e0c6de8bbbfc160e9f15e0c2a08e2d5183ad9ff0a951e languageName: node linkType: hard -"@react-native/codegen@npm:0.74.84": - version: 0.74.84 - resolution: "@react-native/codegen@npm:0.74.84" +"@radix-ui/react-use-effect-event@npm:0.0.3": + version: 0.0.3 + resolution: "@radix-ui/react-use-effect-event@npm:0.0.3" dependencies: - "@babel/parser": ^7.20.0 - glob: ^7.1.1 - hermes-parser: 0.19.1 - invariant: ^2.2.4 - jscodeshift: ^0.14.0 - mkdirp: ^0.5.1 - nullthrows: ^1.1.1 + "@radix-ui/react-use-layout-effect": 1.1.2 peerDependencies: - "@babel/preset-env": ^7.1.6 - checksum: d44d2e2d833dd92012cb947e7d815f47892b7b612eed99a19fbf3a3c0cdebbcc72ef9eef3dd538f7603910275344b0a0bdfcf9864a0a913a5b6401b382d07166 + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 53b4e813cb68b5c603cb2ccaa5822474f846ee46a7aa5e172f29842bea135521c20d69bf12a14e5522cc385ee3724b9e3bfbf8d2d01f1933e472bd9fa80478ca languageName: node linkType: hard -"@react-native/codegen@npm:0.79.6": - version: 0.79.6 - resolution: "@react-native/codegen@npm:0.79.6" +"@radix-ui/react-use-escape-keydown@npm:1.1.2": + version: 1.1.2 + resolution: "@radix-ui/react-use-escape-keydown@npm:1.1.2" dependencies: - "@babel/core": ^7.25.2 - "@babel/parser": ^7.25.3 - glob: ^7.1.1 - hermes-parser: 0.25.1 - invariant: ^2.2.4 - nullthrows: ^1.1.1 - yargs: ^17.6.2 - peerDependencies: - "@babel/core": "*" - checksum: eeae52acd9b7c82f85ba8dcdee07731e845eef45611e4b296062c8ce12e3a588b8fa6df4771d07257db59dd88490c44675791ccf31a925f1171bb9128895caf8 - languageName: node - linkType: hard - -"@react-native/codegen@npm:0.81.0": - version: 0.81.0 - resolution: "@react-native/codegen@npm:0.81.0" - dependencies: - glob: ^7.1.1 - hermes-parser: 0.29.1 - invariant: ^2.2.4 - nullthrows: ^1.1.1 - yargs: ^17.6.2 + "@radix-ui/react-use-callback-ref": 1.1.2 peerDependencies: - "@babel/core": "*" - checksum: 321c76ae3e9a25af29791ec3f1c3b08e784edf1474c98b14943894f25970a03796680b311ff4813c2fc8877153fb1243474e86f7e6dcd07450899d074ad0d210 + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 934ad362c80c7b3bfc4d183c229048b81538c3cc37cdc2398388783b7666afbd59591cc3674776cfee6cf67cc0df6f4c6a2602a4b7574ce9ab2bc78b0297f3ac languageName: node linkType: hard -"@react-native/codegen@npm:0.81.4": - version: 0.81.4 - resolution: "@react-native/codegen@npm:0.81.4" - dependencies: - "@babel/core": ^7.25.2 - "@babel/parser": ^7.25.3 - glob: ^7.1.1 - hermes-parser: 0.29.1 - invariant: ^2.2.4 - nullthrows: ^1.1.1 - yargs: ^17.6.2 +"@radix-ui/react-use-layout-effect@npm:1.1.2": + version: 1.1.2 + resolution: "@radix-ui/react-use-layout-effect@npm:1.1.2" peerDependencies: - "@babel/core": "*" - checksum: f1c4eea61b443847904e81b3890ae0dc401d72a511773b314ea661d63974e156ca57b1c672467c01b7f2d6cfb7d18a913007c56231e7a683a09a2f932eac41f3 + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 4ecffaec7a1b40634ffa90b5e0b5492980532a59c3315e2e57f91fb54736abed6dcb60acddbe5bb01a8a6b43a226e97d7581e816f061c8df619ed0f188308355 languageName: node linkType: hard -"@react-native/codegen@npm:0.83.1": - version: 0.83.1 - resolution: "@react-native/codegen@npm:0.83.1" - dependencies: - "@babel/core": ^7.25.2 - "@babel/parser": ^7.25.3 - glob: ^7.1.1 - hermes-parser: 0.32.0 - invariant: ^2.2.4 - nullthrows: ^1.1.1 - yargs: ^17.6.2 +"@radix-ui/react-use-previous@npm:1.1.2": + version: 1.1.2 + resolution: "@radix-ui/react-use-previous@npm:1.1.2" peerDependencies: - "@babel/core": "*" - checksum: 49c7e79b81d2595df33617b29aea981716ac36d92083301977c896a8299d1e1ce86054a804c85e1411a3732fd4e1b71e6e9edf53830b577ec5a9dd9120ca45a0 - languageName: node - linkType: hard - -"@react-native/community-cli-plugin@npm:0.74.84": - version: 0.74.84 - resolution: "@react-native/community-cli-plugin@npm:0.74.84" - dependencies: - "@react-native-community/cli-server-api": 13.6.8 - "@react-native-community/cli-tools": 13.6.8 - "@react-native/dev-middleware": 0.74.84 - "@react-native/metro-babel-transformer": 0.74.84 - chalk: ^4.0.0 - execa: ^5.1.1 - metro: ^0.80.3 - metro-config: ^0.80.3 - metro-core: ^0.80.3 - node-fetch: ^2.2.0 - querystring: ^0.2.1 - readline: ^1.3.0 - checksum: eaa8a013c3893bffaed5cf33559dd13a0e4809a197655432dda4dd0a62c217ad651f1bbe1f7f0e066e265d1c5d1f5155b55a06fbb0282a748b8e8a76d4ccc5df + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: fd8ddf7a42f33134d6f86f42d8792ba3833b84fd1f6c052084312f50c53f97bb38c22599f39d77ee6075a901c8c53c2594349ac651023fa15d41788bfb56df79 languageName: node linkType: hard -"@react-native/community-cli-plugin@npm:0.79.6": - version: 0.79.6 - resolution: "@react-native/community-cli-plugin@npm:0.79.6" +"@radix-ui/react-use-rect@npm:1.1.2": + version: 1.1.2 + resolution: "@radix-ui/react-use-rect@npm:1.1.2" dependencies: - "@react-native/dev-middleware": 0.79.6 - chalk: ^4.0.0 - debug: ^2.2.0 - invariant: ^2.2.4 - metro: ^0.82.0 - metro-config: ^0.82.0 - metro-core: ^0.82.0 - semver: ^7.1.3 + "@radix-ui/rect": 1.1.2 peerDependencies: - "@react-native-community/cli": "*" + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - "@react-native-community/cli": + "@types/react": optional: true - checksum: 4f8fc3e926b6ed20f6f8d05384f99684c6d4ae4582785ee2ab9ae4b2ae1685bb9ab60a86d7e3fef0208c23e346c97f9e73fdf81e654aaf1a93387dfc39ae51de + checksum: abe6a7f4c41adee3c348639080f6d79dd0cb32785af33974cd99ca69619dc3be3b6cd7fef33278b81c786d39f2c3ccaf073178dd16eeaa530607d5ec4e261995 languageName: node linkType: hard -"@react-native/community-cli-plugin@npm:0.81.4": - version: 0.81.4 - resolution: "@react-native/community-cli-plugin@npm:0.81.4" +"@radix-ui/react-use-size@npm:1.1.2": + version: 1.1.2 + resolution: "@radix-ui/react-use-size@npm:1.1.2" dependencies: - "@react-native/dev-middleware": 0.81.4 - debug: ^4.4.0 - invariant: ^2.2.4 - metro: ^0.83.1 - metro-config: ^0.83.1 - metro-core: ^0.83.1 - semver: ^7.1.3 + "@radix-ui/react-use-layout-effect": 1.1.2 peerDependencies: - "@react-native-community/cli": "*" - "@react-native/metro-config": "*" + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - "@react-native-community/cli": - optional: true - "@react-native/metro-config": + "@types/react": optional: true - checksum: 7b2997e30fae7da1d0231768214554c266543630758bddd59e648861d1b5fc1a34af7e46144daf625a2f452d33f24d9731f885ae4b2c5b146da2acde95e21382 + checksum: 4f44eba535f86ea93264f85ae1ac29e6cf540fa7ae58f460a1d89cb9ce57e42a66f68ca3dceb297605b34b35d2d37ace8e45c15b2f1ea1189fda14bb8a8f142c languageName: node linkType: hard -"@react-native/community-cli-plugin@npm:0.83.1": - version: 0.83.1 - resolution: "@react-native/community-cli-plugin@npm:0.83.1" +"@radix-ui/react-visually-hidden@npm:1.2.5": + version: 1.2.5 + resolution: "@radix-ui/react-visually-hidden@npm:1.2.5" dependencies: - "@react-native/dev-middleware": 0.83.1 - debug: ^4.4.0 - invariant: ^2.2.4 - metro: ^0.83.3 - metro-config: ^0.83.3 - metro-core: ^0.83.3 - semver: ^7.1.3 + "@radix-ui/react-primitive": 2.1.5 peerDependencies: - "@react-native-community/cli": "*" - "@react-native/metro-config": "*" + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - "@react-native-community/cli": + "@types/react": optional: true - "@react-native/metro-config": + "@types/react-dom": optional: true - checksum: 75d2a9e4de37bb4eb59d787e31c12e4e36db363b765d6ceaae68ab1f4c7cad021f9f8358eeef4c795949172d6af94f4d93081f98e4110a39d14868cecfde75bd + checksum: af4c4eb90ac672fe6f1f46b4e9fe8e872427c237defd370a818e4ff1cda43bac291b09c6900541e1464d48120a0e626e80e4091a3d43cffb0855ba57dfbfb060 languageName: node linkType: hard -"@react-native/debugger-frontend@npm:0.74.84": - version: 0.74.84 - resolution: "@react-native/debugger-frontend@npm:0.74.84" - checksum: 3d41b3bed8c3a16ddd6a95e12d0a844eb3634cf85fdfec13592dc78ccb9f54907841a8301b1e586ea47c2c42f9d46d617e9f2c5a904b1b624cedcd4742d1bfef +"@radix-ui/rect@npm:1.1.2": + version: 1.1.2 + resolution: "@radix-ui/rect@npm:1.1.2" + checksum: 9b83f77819c8b5ff50c0e7654b276aef043fe661a0b6313777572d78904b9355f20306f767ac1f3ea526ed6504a5647bf37b59f37e97ba2b7a0a01518cf6b565 languageName: node linkType: hard -"@react-native/debugger-frontend@npm:0.79.6": - version: 0.79.6 - resolution: "@react-native/debugger-frontend@npm:0.79.6" - checksum: 1d6d02816843f02925fc3752534111503a0892c0a60df52c81861a183ac8f72d1bc9a788826d97b9faf677faa1d700addcbfc4310f881e112f9daf1d46770689 +"@react-native-community/cli-clean@npm:13.6.9": + version: 13.6.9 + resolution: "@react-native-community/cli-clean@npm:13.6.9" + dependencies: + "@react-native-community/cli-tools": 13.6.9 + chalk: ^4.1.2 + execa: ^5.0.0 + fast-glob: ^3.3.2 + checksum: 2afb05e88e954161f14034dbb0f06b490f348e0ea473fc974dd704ca4704fd6b98fc38e1bd3f712ba24c2878ec376ee46ce203055c14ac37107c7c7654533c1e languageName: node linkType: hard -"@react-native/debugger-frontend@npm:0.81.4": - version: 0.81.4 - resolution: "@react-native/debugger-frontend@npm:0.81.4" - checksum: c25f3eeaef1bfe4e4805f96b526f35dbfb31f3c0d45ba8848baf750e53e3dbde49fca059929d44424aebb26ccdf1a4b824d8fd5cdfcb594ebb501c3a3e4b32cd +"@react-native-community/cli-config@npm:13.6.9": + version: 13.6.9 + resolution: "@react-native-community/cli-config@npm:13.6.9" + dependencies: + "@react-native-community/cli-tools": 13.6.9 + chalk: ^4.1.2 + cosmiconfig: ^5.1.0 + deepmerge: ^4.3.0 + fast-glob: ^3.3.2 + joi: ^17.2.1 + checksum: 6bef773e793d445f44e6bdf02fcb083f390700d0f9aeeed2e3d43522d26a31c38b08c2b7613fdad42bb0de8c03c9123a1d3a0478c0b65ff4d139c231211e8618 languageName: node linkType: hard -"@react-native/debugger-frontend@npm:0.83.1": - version: 0.83.1 - resolution: "@react-native/debugger-frontend@npm:0.83.1" - checksum: 6eb15797a5a136a99443e9d8ee1da14a22cc3fdf629272811018a046d2d5abc0c9f60ccc41d7f95c5e04fbd361b4cdae924f79b81f7a11bdb119e15a072c08f7 +"@react-native-community/cli-debugger-ui@npm:13.6.8": + version: 13.6.8 + resolution: "@react-native-community/cli-debugger-ui@npm:13.6.8" + dependencies: + serve-static: ^1.13.1 + checksum: 412381ee341e76a7c4e36488930deccd68a37ea77d445ec579b3bbfdc9a42bc0f3571a852aa7d5a74e0a4ac4cdce5a98fae91abba0615a1a9a73fbaa7b2d7abf languageName: node linkType: hard -"@react-native/debugger-shell@npm:0.83.1": - version: 0.83.1 - resolution: "@react-native/debugger-shell@npm:0.83.1" +"@react-native-community/cli-debugger-ui@npm:13.6.9": + version: 13.6.9 + resolution: "@react-native-community/cli-debugger-ui@npm:13.6.9" dependencies: - cross-spawn: ^7.0.6 - fb-dotslash: 0.5.8 - checksum: 22f45aeb7f3f9f93c7e9615b66bf158e7f3764d5c31e4aea80b85ffef28369d82a2e6208c7dca80e0ceeadf3fa17616f4c90b8fdbab41826a8c72d4ff194309b + serve-static: ^1.13.1 + checksum: 9c2db8a1d9fe0378418557c37b58a2acd2c5c8ec72e1fd162305d7a05556e9833fd0c0ee4c60d5e811708dbd3932b263f11a15559595e05798fd829e846fd2f2 languageName: node linkType: hard -"@react-native/dev-middleware@npm:0.74.84": - version: 0.74.84 - resolution: "@react-native/dev-middleware@npm:0.74.84" +"@react-native-community/cli-doctor@npm:13.6.9": + version: 13.6.9 + resolution: "@react-native-community/cli-doctor@npm:13.6.9" dependencies: - "@isaacs/ttlcache": ^1.4.1 - "@react-native/debugger-frontend": 0.74.84 - "@rnx-kit/chromium-edge-launcher": ^1.0.0 - chrome-launcher: ^0.15.2 - connect: ^3.6.5 - debug: ^2.2.0 - node-fetch: ^2.2.0 - nullthrows: ^1.1.1 - open: ^7.0.3 - selfsigned: ^2.4.1 - serve-static: ^1.13.1 - temp-dir: ^2.0.0 - ws: ^6.2.2 - checksum: e63a17bb7a734d2334aebc9c819a51ec4e2d9e5af8fd684129369a57d18e6e1cb50857606d093211c47e1d5bac29cd83027318c2942befcfdfde26729f63504f + "@react-native-community/cli-config": 13.6.9 + "@react-native-community/cli-platform-android": 13.6.9 + "@react-native-community/cli-platform-apple": 13.6.9 + "@react-native-community/cli-platform-ios": 13.6.9 + "@react-native-community/cli-tools": 13.6.9 + chalk: ^4.1.2 + command-exists: ^1.2.8 + deepmerge: ^4.3.0 + envinfo: ^7.10.0 + execa: ^5.0.0 + hermes-profile-transformer: ^0.0.6 + node-stream-zip: ^1.9.1 + ora: ^5.4.1 + semver: ^7.5.2 + strip-ansi: ^5.2.0 + wcwidth: ^1.0.1 + yaml: ^2.2.1 + checksum: d34c011f54fb4091ca9ad31f09e54c2da88efad43ae0b8634de14e575f69530c2793fcb49052e25b4abf18532353391d796bd5297c38ac9ca9c157dcfc40f4cc languageName: node linkType: hard -"@react-native/dev-middleware@npm:0.79.6": - version: 0.79.6 - resolution: "@react-native/dev-middleware@npm:0.79.6" +"@react-native-community/cli-hermes@npm:13.6.9": + version: 13.6.9 + resolution: "@react-native-community/cli-hermes@npm:13.6.9" dependencies: - "@isaacs/ttlcache": ^1.4.1 - "@react-native/debugger-frontend": 0.79.6 - chrome-launcher: ^0.15.2 - chromium-edge-launcher: ^0.2.0 - connect: ^3.6.5 - debug: ^2.2.0 - invariant: ^2.2.4 - nullthrows: ^1.1.1 - open: ^7.0.3 - serve-static: ^1.16.2 - ws: ^6.2.3 - checksum: 264eec70a4cf0ad4c462387cf9f5cb7187a70ee86123f2888a7e09b12108eb26b4f1315115f37f5db894d306f033501b71d8662c97a061be96661d78b3491a60 + "@react-native-community/cli-platform-android": 13.6.9 + "@react-native-community/cli-tools": 13.6.9 + chalk: ^4.1.2 + hermes-profile-transformer: ^0.0.6 + checksum: b4b4bbf695c1a880bcdcacfc1ca685a73f90730af03859a68e5f55a6a70f4232ec3b33e4f63e14942a963e0067cb04805ba9902b8765a94b5ccbb807b4dcd4e6 languageName: node linkType: hard -"@react-native/dev-middleware@npm:0.81.4": - version: 0.81.4 - resolution: "@react-native/dev-middleware@npm:0.81.4" +"@react-native-community/cli-platform-android@npm:13.6.9": + version: 13.6.9 + resolution: "@react-native-community/cli-platform-android@npm:13.6.9" dependencies: - "@isaacs/ttlcache": ^1.4.1 - "@react-native/debugger-frontend": 0.81.4 - chrome-launcher: ^0.15.2 - chromium-edge-launcher: ^0.2.0 + "@react-native-community/cli-tools": 13.6.9 + chalk: ^4.1.2 + execa: ^5.0.0 + fast-glob: ^3.3.2 + fast-xml-parser: ^4.2.4 + logkitty: ^0.7.1 + checksum: a743571c99d8a9769ec37086d3a1e04ceddb9ea0e76788a3fc95c458ca1f419b15059bbc18485e25f33d853e1116937ec09464b9fe463109dca5010914c2e72a + languageName: node + linkType: hard + +"@react-native-community/cli-platform-apple@npm:13.6.9": + version: 13.6.9 + resolution: "@react-native-community/cli-platform-apple@npm:13.6.9" + dependencies: + "@react-native-community/cli-tools": 13.6.9 + chalk: ^4.1.2 + execa: ^5.0.0 + fast-glob: ^3.3.2 + fast-xml-parser: ^4.0.12 + ora: ^5.4.1 + checksum: 4ecd78baf03dbf6e916cc59a623c111cdf5b876427fcfbf34151ff5cc60c1e428362f176703078665d3a7438360d29844d7d2bcec9d692a6082342d8f9d7ffff + languageName: node + linkType: hard + +"@react-native-community/cli-platform-ios@npm:13.6.9": + version: 13.6.9 + resolution: "@react-native-community/cli-platform-ios@npm:13.6.9" + dependencies: + "@react-native-community/cli-platform-apple": 13.6.9 + checksum: ba88a11d49d7a41fad8455d78be9956ba0a11257257995e2706e0e451f451c4bde352eb178a5e4743811a976f7c271caaae804e23defac9883b1f03c308edd26 + languageName: node + linkType: hard + +"@react-native-community/cli-server-api@npm:13.6.8": + version: 13.6.8 + resolution: "@react-native-community/cli-server-api@npm:13.6.8" + dependencies: + "@react-native-community/cli-debugger-ui": 13.6.8 + "@react-native-community/cli-tools": 13.6.8 + compression: ^1.7.1 connect: ^3.6.5 - debug: ^4.4.0 + errorhandler: ^1.5.1 + nocache: ^3.0.1 + pretty-format: ^26.6.2 + serve-static: ^1.13.1 + ws: ^6.2.2 + checksum: 686009df5a0e80b39faf4f63f0709620aafef69a15470f1caafa5eca85fec6c3b6a6761e71669267e5e0eed31acf4da2881fec6460abc263c1fc0ea9b6879359 + languageName: node + linkType: hard + +"@react-native-community/cli-server-api@npm:13.6.9": + version: 13.6.9 + resolution: "@react-native-community/cli-server-api@npm:13.6.9" + dependencies: + "@react-native-community/cli-debugger-ui": 13.6.9 + "@react-native-community/cli-tools": 13.6.9 + compression: ^1.7.1 + connect: ^3.6.5 + errorhandler: ^1.5.1 + nocache: ^3.0.1 + pretty-format: ^26.6.2 + serve-static: ^1.13.1 + ws: ^6.2.2 + checksum: 962a3e32cad3609cb181e4578c23ca4225d5aa16daf12902661b7185efd8e6b92e194bf8a44c3525c85ee91a742cc28acc374c5c9af3574496ff7554621f8c64 + languageName: node + linkType: hard + +"@react-native-community/cli-tools@npm:13.6.8": + version: 13.6.8 + resolution: "@react-native-community/cli-tools@npm:13.6.8" + dependencies: + appdirsjs: ^1.2.4 + chalk: ^4.1.2 + execa: ^5.0.0 + find-up: ^5.0.0 + mime: ^2.4.1 + node-fetch: ^2.6.0 + open: ^6.2.0 + ora: ^5.4.1 + semver: ^7.5.2 + shell-quote: ^1.7.3 + sudo-prompt: ^9.0.0 + checksum: 4f59441f98a6719e745addc36fdb14ca10fe17db87e0bf39300c026d0f36fbfbf3472036df1a89cd09d55d672bc87a98e3a61d7e15bf79a39f0947e5dfe66a8b + languageName: node + linkType: hard + +"@react-native-community/cli-tools@npm:13.6.9": + version: 13.6.9 + resolution: "@react-native-community/cli-tools@npm:13.6.9" + dependencies: + appdirsjs: ^1.2.4 + chalk: ^4.1.2 + execa: ^5.0.0 + find-up: ^5.0.0 + mime: ^2.4.1 + node-fetch: ^2.6.0 + open: ^6.2.0 + ora: ^5.4.1 + semver: ^7.5.2 + shell-quote: ^1.7.3 + sudo-prompt: ^9.0.0 + checksum: dc5ee921480a03249b408544146737a0674aa6259d797672a5f369d337a2775ec62fb986fcf62fe554992605305b75a220609db8eea9f6b75d97241a4dd79ad3 + languageName: node + linkType: hard + +"@react-native-community/cli-types@npm:13.6.9": + version: 13.6.9 + resolution: "@react-native-community/cli-types@npm:13.6.9" + dependencies: + joi: ^17.2.1 + checksum: 224c60447fcebb9fd4719685a3d85aebabbd709f79d056a76750c59cc9d215882bd7386f0822103b2c7b6df1815f738f615c27838381f94028169833ae4473f8 + languageName: node + linkType: hard + +"@react-native-community/cli@npm:13.6.9": + version: 13.6.9 + resolution: "@react-native-community/cli@npm:13.6.9" + dependencies: + "@react-native-community/cli-clean": 13.6.9 + "@react-native-community/cli-config": 13.6.9 + "@react-native-community/cli-debugger-ui": 13.6.9 + "@react-native-community/cli-doctor": 13.6.9 + "@react-native-community/cli-hermes": 13.6.9 + "@react-native-community/cli-server-api": 13.6.9 + "@react-native-community/cli-tools": 13.6.9 + "@react-native-community/cli-types": 13.6.9 + chalk: ^4.1.2 + commander: ^9.4.1 + deepmerge: ^4.3.0 + execa: ^5.0.0 + find-up: ^4.1.0 + fs-extra: ^8.1.0 + graceful-fs: ^4.1.3 + prompts: ^2.4.2 + semver: ^7.5.2 + bin: + rnc-cli: build/bin.js + checksum: 5e997b50fd687b4f3fcdde6a1fd36317ffee5536649fb16e87f6e3bb1bd56a279daad57b7d904d0442425106f048a114e3987f9a0fc8dc3fadd0a784dcb83a40 + languageName: node + linkType: hard + +"@react-native-community/eslint-config@npm:^3.2.0": + version: 3.2.0 + resolution: "@react-native-community/eslint-config@npm:3.2.0" + dependencies: + "@babel/core": ^7.14.0 + "@babel/eslint-parser": ^7.18.2 + "@react-native-community/eslint-plugin": ^1.1.0 + "@typescript-eslint/eslint-plugin": ^5.30.5 + "@typescript-eslint/parser": ^5.30.5 + eslint-config-prettier: ^8.5.0 + eslint-plugin-eslint-comments: ^3.2.0 + eslint-plugin-ft-flow: ^2.0.1 + eslint-plugin-jest: ^26.5.3 + eslint-plugin-prettier: ^4.2.1 + eslint-plugin-react: ^7.30.1 + eslint-plugin-react-hooks: ^4.6.0 + eslint-plugin-react-native: ^4.0.0 + peerDependencies: + eslint: ">=8" + prettier: ">=2" + checksum: 0a2dce65dbe43067571d7a382cfcfb1cae041b319aff216116797389ef0e431865caf6f48925e3532f1879363dc9f6b15cf81fdc967879d544d54605fd617119 + languageName: node + linkType: hard + +"@react-native-community/eslint-plugin@npm:^1.1.0": + version: 1.3.0 + resolution: "@react-native-community/eslint-plugin@npm:1.3.0" + checksum: 5e04fa161fca6453299aed691695ea071fed8166c5da36935047eb6c169bc38c9d599e1ce20402b63cbcaf086a9bb63d2e88836be142cecabf61ba36954ccaae + languageName: node + linkType: hard + +"@react-native-macos/virtualized-lists@npm:0.79.1": + version: 0.79.1 + resolution: "@react-native-macos/virtualized-lists@npm:0.79.1" + dependencies: invariant: ^2.2.4 nullthrows: ^1.1.1 - open: ^7.0.3 - serve-static: ^1.16.2 - ws: ^6.2.3 - checksum: 3cad7fcac9be4a8d01605d0b97efda299ae7ce2913a5c5a08bd02576d493d945c3ae00ec1e054445649f7673b2c72b544e19069658c63f257b8bfaba62a765d1 + peerDependencies: + "@types/react": ^19.0.0 + react: "*" + react-native: "*" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 846cad109a2deb30a1cf1b18bcdf4c262c0d9c06ccc9af3b9a22c06f2ef53a9d63920e405a3f828b210ddba10c98b1abf32939d2730603389577d4164ee5da8f + languageName: node + linkType: hard + +"@react-native/assets-registry@npm:0.74.84": + version: 0.74.84 + resolution: "@react-native/assets-registry@npm:0.74.84" + checksum: 8f76f405a14c38695a0602f7351dad737f6feaa4209c96db53ed69564cab10be4ac55c3e35e2b3ec8e07d7168509a08a86c6585a16a1f279493dfd7d8d9dfef1 + languageName: node + linkType: hard + +"@react-native/assets-registry@npm:0.79.6": + version: 0.79.6 + resolution: "@react-native/assets-registry@npm:0.79.6" + checksum: 4f8d870d57294ecc9a1e959596f42db71325346be661a5112e957b55d84b589a0826ef73108cb7b4b6f2040bde4e40e169fdaa9a29cd46b0a4ae70b50f80b441 + languageName: node + linkType: hard + +"@react-native/assets-registry@npm:0.81.4": + version: 0.81.4 + resolution: "@react-native/assets-registry@npm:0.81.4" + checksum: 23ee2fce6a5f74ff801a7b08ede9c1cd5bc53148bf94103185b9c55b2b0e1b98134b9fd3e637e11ec39988a1cee456f358d0a20bc124bf942253bd096efeb7c5 + languageName: node + linkType: hard + +"@react-native/assets-registry@npm:0.83.1": + version: 0.83.1 + resolution: "@react-native/assets-registry@npm:0.83.1" + checksum: ec788b086fb1be0813d47660c34cdd758eb54dada0e9e1a2e8b55d888adab3bd9e6431742d645317f94033522805fc2c7902aa9de567d7c77d37b9619d927cd5 + languageName: node + linkType: hard + +"@react-native/babel-plugin-codegen@npm:0.74.84": + version: 0.74.84 + resolution: "@react-native/babel-plugin-codegen@npm:0.74.84" + dependencies: + "@react-native/codegen": 0.74.84 + checksum: b2ada55a80546162fee02129f4e7610a8a24780531ea67d198dbbb64d5c6ae29044a7af542a3f41d390296ef988d53d0304d5f6d17ab03c493d3f0ab440efa11 + languageName: node + linkType: hard + +"@react-native/babel-plugin-codegen@npm:0.81.0": + version: 0.81.0 + resolution: "@react-native/babel-plugin-codegen@npm:0.81.0" + dependencies: + "@babel/traverse": ^7.25.3 + "@react-native/codegen": 0.81.0 + checksum: 8d209bb2fb4af6168274993b9e0d12bd5bfc43cef6bc5bc89c8c99f0db3f8aac0f63008f1b1f319d875cb09b625bf61f37d91eba636a04742878e56032e88037 + languageName: node + linkType: hard + +"@react-native/babel-preset@npm:0.74.84": + version: 0.74.84 + resolution: "@react-native/babel-preset@npm:0.74.84" + dependencies: + "@babel/core": ^7.20.0 + "@babel/plugin-proposal-async-generator-functions": ^7.0.0 + "@babel/plugin-proposal-class-properties": ^7.18.0 + "@babel/plugin-proposal-export-default-from": ^7.0.0 + "@babel/plugin-proposal-logical-assignment-operators": ^7.18.0 + "@babel/plugin-proposal-nullish-coalescing-operator": ^7.18.0 + "@babel/plugin-proposal-numeric-separator": ^7.0.0 + "@babel/plugin-proposal-object-rest-spread": ^7.20.0 + "@babel/plugin-proposal-optional-catch-binding": ^7.0.0 + "@babel/plugin-proposal-optional-chaining": ^7.20.0 + "@babel/plugin-syntax-dynamic-import": ^7.8.0 + "@babel/plugin-syntax-export-default-from": ^7.0.0 + "@babel/plugin-syntax-flow": ^7.18.0 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.0.0 + "@babel/plugin-syntax-optional-chaining": ^7.0.0 + "@babel/plugin-transform-arrow-functions": ^7.0.0 + "@babel/plugin-transform-async-to-generator": ^7.20.0 + "@babel/plugin-transform-block-scoping": ^7.0.0 + "@babel/plugin-transform-classes": ^7.0.0 + "@babel/plugin-transform-computed-properties": ^7.0.0 + "@babel/plugin-transform-destructuring": ^7.20.0 + "@babel/plugin-transform-flow-strip-types": ^7.20.0 + "@babel/plugin-transform-function-name": ^7.0.0 + "@babel/plugin-transform-literals": ^7.0.0 + "@babel/plugin-transform-modules-commonjs": ^7.0.0 + "@babel/plugin-transform-named-capturing-groups-regex": ^7.0.0 + "@babel/plugin-transform-parameters": ^7.0.0 + "@babel/plugin-transform-private-methods": ^7.22.5 + "@babel/plugin-transform-private-property-in-object": ^7.22.11 + "@babel/plugin-transform-react-display-name": ^7.0.0 + "@babel/plugin-transform-react-jsx": ^7.0.0 + "@babel/plugin-transform-react-jsx-self": ^7.0.0 + "@babel/plugin-transform-react-jsx-source": ^7.0.0 + "@babel/plugin-transform-runtime": ^7.0.0 + "@babel/plugin-transform-shorthand-properties": ^7.0.0 + "@babel/plugin-transform-spread": ^7.0.0 + "@babel/plugin-transform-sticky-regex": ^7.0.0 + "@babel/plugin-transform-typescript": ^7.5.0 + "@babel/plugin-transform-unicode-regex": ^7.0.0 + "@babel/template": ^7.0.0 + "@react-native/babel-plugin-codegen": 0.74.84 + babel-plugin-transform-flow-enums: ^0.0.2 + react-refresh: ^0.14.0 + peerDependencies: + "@babel/core": "*" + checksum: 5cdc7a56b165e1a03c8cc24bf5d8fd32bf987cd889aa958a82aa828e5fdb651d517a033b16be33f4fa26b9b685dfb805df644bdccc8067fb9fca2bfa82a417b6 + languageName: node + linkType: hard + +"@react-native/babel-preset@npm:0.81.0": + version: 0.81.0 + resolution: "@react-native/babel-preset@npm:0.81.0" + dependencies: + "@babel/core": ^7.25.2 + "@babel/plugin-proposal-export-default-from": ^7.24.7 + "@babel/plugin-syntax-dynamic-import": ^7.8.3 + "@babel/plugin-syntax-export-default-from": ^7.24.7 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 + "@babel/plugin-syntax-optional-chaining": ^7.8.3 + "@babel/plugin-transform-arrow-functions": ^7.24.7 + "@babel/plugin-transform-async-generator-functions": ^7.25.4 + "@babel/plugin-transform-async-to-generator": ^7.24.7 + "@babel/plugin-transform-block-scoping": ^7.25.0 + "@babel/plugin-transform-class-properties": ^7.25.4 + "@babel/plugin-transform-classes": ^7.25.4 + "@babel/plugin-transform-computed-properties": ^7.24.7 + "@babel/plugin-transform-destructuring": ^7.24.8 + "@babel/plugin-transform-flow-strip-types": ^7.25.2 + "@babel/plugin-transform-for-of": ^7.24.7 + "@babel/plugin-transform-function-name": ^7.25.1 + "@babel/plugin-transform-literals": ^7.25.2 + "@babel/plugin-transform-logical-assignment-operators": ^7.24.7 + "@babel/plugin-transform-modules-commonjs": ^7.24.8 + "@babel/plugin-transform-named-capturing-groups-regex": ^7.24.7 + "@babel/plugin-transform-nullish-coalescing-operator": ^7.24.7 + "@babel/plugin-transform-numeric-separator": ^7.24.7 + "@babel/plugin-transform-object-rest-spread": ^7.24.7 + "@babel/plugin-transform-optional-catch-binding": ^7.24.7 + "@babel/plugin-transform-optional-chaining": ^7.24.8 + "@babel/plugin-transform-parameters": ^7.24.7 + "@babel/plugin-transform-private-methods": ^7.24.7 + "@babel/plugin-transform-private-property-in-object": ^7.24.7 + "@babel/plugin-transform-react-display-name": ^7.24.7 + "@babel/plugin-transform-react-jsx": ^7.25.2 + "@babel/plugin-transform-react-jsx-self": ^7.24.7 + "@babel/plugin-transform-react-jsx-source": ^7.24.7 + "@babel/plugin-transform-regenerator": ^7.24.7 + "@babel/plugin-transform-runtime": ^7.24.7 + "@babel/plugin-transform-shorthand-properties": ^7.24.7 + "@babel/plugin-transform-spread": ^7.24.7 + "@babel/plugin-transform-sticky-regex": ^7.24.7 + "@babel/plugin-transform-typescript": ^7.25.2 + "@babel/plugin-transform-unicode-regex": ^7.24.7 + "@babel/template": ^7.25.0 + "@react-native/babel-plugin-codegen": 0.81.0 + babel-plugin-syntax-hermes-parser: 0.29.1 + babel-plugin-transform-flow-enums: ^0.0.2 + react-refresh: ^0.14.0 + peerDependencies: + "@babel/core": "*" + checksum: 39f7f9d5e51554716f8445b389e9abbec1d422322054b7a24516fc6679196b5dd4d509df0d3d1c6a48d4e0c6369ebb8fe87bb012b693885f6c2996a3938807bf + languageName: node + linkType: hard + +"@react-native/codegen@npm:0.74.84": + version: 0.74.84 + resolution: "@react-native/codegen@npm:0.74.84" + dependencies: + "@babel/parser": ^7.20.0 + glob: ^7.1.1 + hermes-parser: 0.19.1 + invariant: ^2.2.4 + jscodeshift: ^0.14.0 + mkdirp: ^0.5.1 + nullthrows: ^1.1.1 + peerDependencies: + "@babel/preset-env": ^7.1.6 + checksum: d44d2e2d833dd92012cb947e7d815f47892b7b612eed99a19fbf3a3c0cdebbcc72ef9eef3dd538f7603910275344b0a0bdfcf9864a0a913a5b6401b382d07166 + languageName: node + linkType: hard + +"@react-native/codegen@npm:0.79.6": + version: 0.79.6 + resolution: "@react-native/codegen@npm:0.79.6" + dependencies: + "@babel/core": ^7.25.2 + "@babel/parser": ^7.25.3 + glob: ^7.1.1 + hermes-parser: 0.25.1 + invariant: ^2.2.4 + nullthrows: ^1.1.1 + yargs: ^17.6.2 + peerDependencies: + "@babel/core": "*" + checksum: eeae52acd9b7c82f85ba8dcdee07731e845eef45611e4b296062c8ce12e3a588b8fa6df4771d07257db59dd88490c44675791ccf31a925f1171bb9128895caf8 + languageName: node + linkType: hard + +"@react-native/codegen@npm:0.81.0": + version: 0.81.0 + resolution: "@react-native/codegen@npm:0.81.0" + dependencies: + glob: ^7.1.1 + hermes-parser: 0.29.1 + invariant: ^2.2.4 + nullthrows: ^1.1.1 + yargs: ^17.6.2 + peerDependencies: + "@babel/core": "*" + checksum: 321c76ae3e9a25af29791ec3f1c3b08e784edf1474c98b14943894f25970a03796680b311ff4813c2fc8877153fb1243474e86f7e6dcd07450899d074ad0d210 + languageName: node + linkType: hard + +"@react-native/codegen@npm:0.81.4": + version: 0.81.4 + resolution: "@react-native/codegen@npm:0.81.4" + dependencies: + "@babel/core": ^7.25.2 + "@babel/parser": ^7.25.3 + glob: ^7.1.1 + hermes-parser: 0.29.1 + invariant: ^2.2.4 + nullthrows: ^1.1.1 + yargs: ^17.6.2 + peerDependencies: + "@babel/core": "*" + checksum: f1c4eea61b443847904e81b3890ae0dc401d72a511773b314ea661d63974e156ca57b1c672467c01b7f2d6cfb7d18a913007c56231e7a683a09a2f932eac41f3 + languageName: node + linkType: hard + +"@react-native/codegen@npm:0.83.1": + version: 0.83.1 + resolution: "@react-native/codegen@npm:0.83.1" + dependencies: + "@babel/core": ^7.25.2 + "@babel/parser": ^7.25.3 + glob: ^7.1.1 + hermes-parser: 0.32.0 + invariant: ^2.2.4 + nullthrows: ^1.1.1 + yargs: ^17.6.2 + peerDependencies: + "@babel/core": "*" + checksum: 49c7e79b81d2595df33617b29aea981716ac36d92083301977c896a8299d1e1ce86054a804c85e1411a3732fd4e1b71e6e9edf53830b577ec5a9dd9120ca45a0 + languageName: node + linkType: hard + +"@react-native/community-cli-plugin@npm:0.74.84": + version: 0.74.84 + resolution: "@react-native/community-cli-plugin@npm:0.74.84" + dependencies: + "@react-native-community/cli-server-api": 13.6.8 + "@react-native-community/cli-tools": 13.6.8 + "@react-native/dev-middleware": 0.74.84 + "@react-native/metro-babel-transformer": 0.74.84 + chalk: ^4.0.0 + execa: ^5.1.1 + metro: ^0.80.3 + metro-config: ^0.80.3 + metro-core: ^0.80.3 + node-fetch: ^2.2.0 + querystring: ^0.2.1 + readline: ^1.3.0 + checksum: eaa8a013c3893bffaed5cf33559dd13a0e4809a197655432dda4dd0a62c217ad651f1bbe1f7f0e066e265d1c5d1f5155b55a06fbb0282a748b8e8a76d4ccc5df + languageName: node + linkType: hard + +"@react-native/community-cli-plugin@npm:0.79.6": + version: 0.79.6 + resolution: "@react-native/community-cli-plugin@npm:0.79.6" + dependencies: + "@react-native/dev-middleware": 0.79.6 + chalk: ^4.0.0 + debug: ^2.2.0 + invariant: ^2.2.4 + metro: ^0.82.0 + metro-config: ^0.82.0 + metro-core: ^0.82.0 + semver: ^7.1.3 + peerDependencies: + "@react-native-community/cli": "*" + peerDependenciesMeta: + "@react-native-community/cli": + optional: true + checksum: 4f8fc3e926b6ed20f6f8d05384f99684c6d4ae4582785ee2ab9ae4b2ae1685bb9ab60a86d7e3fef0208c23e346c97f9e73fdf81e654aaf1a93387dfc39ae51de + languageName: node + linkType: hard + +"@react-native/community-cli-plugin@npm:0.81.4": + version: 0.81.4 + resolution: "@react-native/community-cli-plugin@npm:0.81.4" + dependencies: + "@react-native/dev-middleware": 0.81.4 + debug: ^4.4.0 + invariant: ^2.2.4 + metro: ^0.83.1 + metro-config: ^0.83.1 + metro-core: ^0.83.1 + semver: ^7.1.3 + peerDependencies: + "@react-native-community/cli": "*" + "@react-native/metro-config": "*" + peerDependenciesMeta: + "@react-native-community/cli": + optional: true + "@react-native/metro-config": + optional: true + checksum: 7b2997e30fae7da1d0231768214554c266543630758bddd59e648861d1b5fc1a34af7e46144daf625a2f452d33f24d9731f885ae4b2c5b146da2acde95e21382 + languageName: node + linkType: hard + +"@react-native/community-cli-plugin@npm:0.83.1": + version: 0.83.1 + resolution: "@react-native/community-cli-plugin@npm:0.83.1" + dependencies: + "@react-native/dev-middleware": 0.83.1 + debug: ^4.4.0 + invariant: ^2.2.4 + metro: ^0.83.3 + metro-config: ^0.83.3 + metro-core: ^0.83.3 + semver: ^7.1.3 + peerDependencies: + "@react-native-community/cli": "*" + "@react-native/metro-config": "*" + peerDependenciesMeta: + "@react-native-community/cli": + optional: true + "@react-native/metro-config": + optional: true + checksum: 75d2a9e4de37bb4eb59d787e31c12e4e36db363b765d6ceaae68ab1f4c7cad021f9f8358eeef4c795949172d6af94f4d93081f98e4110a39d14868cecfde75bd + languageName: node + linkType: hard + +"@react-native/debugger-frontend@npm:0.74.84": + version: 0.74.84 + resolution: "@react-native/debugger-frontend@npm:0.74.84" + checksum: 3d41b3bed8c3a16ddd6a95e12d0a844eb3634cf85fdfec13592dc78ccb9f54907841a8301b1e586ea47c2c42f9d46d617e9f2c5a904b1b624cedcd4742d1bfef + languageName: node + linkType: hard + +"@react-native/debugger-frontend@npm:0.79.6": + version: 0.79.6 + resolution: "@react-native/debugger-frontend@npm:0.79.6" + checksum: 1d6d02816843f02925fc3752534111503a0892c0a60df52c81861a183ac8f72d1bc9a788826d97b9faf677faa1d700addcbfc4310f881e112f9daf1d46770689 + languageName: node + linkType: hard + +"@react-native/debugger-frontend@npm:0.81.4": + version: 0.81.4 + resolution: "@react-native/debugger-frontend@npm:0.81.4" + checksum: c25f3eeaef1bfe4e4805f96b526f35dbfb31f3c0d45ba8848baf750e53e3dbde49fca059929d44424aebb26ccdf1a4b824d8fd5cdfcb594ebb501c3a3e4b32cd + languageName: node + linkType: hard + +"@react-native/debugger-frontend@npm:0.83.1": + version: 0.83.1 + resolution: "@react-native/debugger-frontend@npm:0.83.1" + checksum: 6eb15797a5a136a99443e9d8ee1da14a22cc3fdf629272811018a046d2d5abc0c9f60ccc41d7f95c5e04fbd361b4cdae924f79b81f7a11bdb119e15a072c08f7 + languageName: node + linkType: hard + +"@react-native/debugger-shell@npm:0.83.1": + version: 0.83.1 + resolution: "@react-native/debugger-shell@npm:0.83.1" + dependencies: + cross-spawn: ^7.0.6 + fb-dotslash: 0.5.8 + checksum: 22f45aeb7f3f9f93c7e9615b66bf158e7f3764d5c31e4aea80b85ffef28369d82a2e6208c7dca80e0ceeadf3fa17616f4c90b8fdbab41826a8c72d4ff194309b + languageName: node + linkType: hard + +"@react-native/dev-middleware@npm:0.74.84": + version: 0.74.84 + resolution: "@react-native/dev-middleware@npm:0.74.84" + dependencies: + "@isaacs/ttlcache": ^1.4.1 + "@react-native/debugger-frontend": 0.74.84 + "@rnx-kit/chromium-edge-launcher": ^1.0.0 + chrome-launcher: ^0.15.2 + connect: ^3.6.5 + debug: ^2.2.0 + node-fetch: ^2.2.0 + nullthrows: ^1.1.1 + open: ^7.0.3 + selfsigned: ^2.4.1 + serve-static: ^1.13.1 + temp-dir: ^2.0.0 + ws: ^6.2.2 + checksum: e63a17bb7a734d2334aebc9c819a51ec4e2d9e5af8fd684129369a57d18e6e1cb50857606d093211c47e1d5bac29cd83027318c2942befcfdfde26729f63504f + languageName: node + linkType: hard + +"@react-native/dev-middleware@npm:0.79.6": + version: 0.79.6 + resolution: "@react-native/dev-middleware@npm:0.79.6" + dependencies: + "@isaacs/ttlcache": ^1.4.1 + "@react-native/debugger-frontend": 0.79.6 + chrome-launcher: ^0.15.2 + chromium-edge-launcher: ^0.2.0 + connect: ^3.6.5 + debug: ^2.2.0 + invariant: ^2.2.4 + nullthrows: ^1.1.1 + open: ^7.0.3 + serve-static: ^1.16.2 + ws: ^6.2.3 + checksum: 264eec70a4cf0ad4c462387cf9f5cb7187a70ee86123f2888a7e09b12108eb26b4f1315115f37f5db894d306f033501b71d8662c97a061be96661d78b3491a60 + languageName: node + linkType: hard + +"@react-native/dev-middleware@npm:0.81.4": + version: 0.81.4 + resolution: "@react-native/dev-middleware@npm:0.81.4" + dependencies: + "@isaacs/ttlcache": ^1.4.1 + "@react-native/debugger-frontend": 0.81.4 + chrome-launcher: ^0.15.2 + chromium-edge-launcher: ^0.2.0 + connect: ^3.6.5 + debug: ^4.4.0 + invariant: ^2.2.4 + nullthrows: ^1.1.1 + open: ^7.0.3 + serve-static: ^1.16.2 + ws: ^6.2.3 + checksum: 3cad7fcac9be4a8d01605d0b97efda299ae7ce2913a5c5a08bd02576d493d945c3ae00ec1e054445649f7673b2c72b544e19069658c63f257b8bfaba62a765d1 + languageName: node + linkType: hard + +"@react-native/dev-middleware@npm:0.83.1": + version: 0.83.1 + resolution: "@react-native/dev-middleware@npm:0.83.1" + dependencies: + "@isaacs/ttlcache": ^1.4.1 + "@react-native/debugger-frontend": 0.83.1 + "@react-native/debugger-shell": 0.83.1 + chrome-launcher: ^0.15.2 + chromium-edge-launcher: ^0.2.0 + connect: ^3.6.5 + debug: ^4.4.0 + invariant: ^2.2.4 + nullthrows: ^1.1.1 + open: ^7.0.3 + serve-static: ^1.16.2 + ws: ^7.5.10 + checksum: d8439119cd99a8db0649b97a1f459222f49bb9425e1248d1466e4f7f4a104915d1e6ccc11403a5a0f3aa810eea3aa836f921ff11f44c4d3a06769d96083beb86 + languageName: node + linkType: hard + +"@react-native/eslint-config@npm:0.81.0": + version: 0.81.0 + resolution: "@react-native/eslint-config@npm:0.81.0" + dependencies: + "@babel/core": ^7.25.2 + "@babel/eslint-parser": ^7.25.1 + "@react-native/eslint-plugin": 0.81.0 + "@typescript-eslint/eslint-plugin": ^7.1.1 + "@typescript-eslint/parser": ^7.1.1 + eslint-config-prettier: ^8.5.0 + eslint-plugin-eslint-comments: ^3.2.0 + eslint-plugin-ft-flow: ^2.0.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-react: ^7.30.1 + eslint-plugin-react-hooks: ^5.2.0 + eslint-plugin-react-native: ^4.0.0 + peerDependencies: + eslint: ">=8" + prettier: ">=2" + checksum: 3bce2c7b8e34378882e0cad76f9a4834a7e8c4e3a5ff6ef3b4ed2eaa9c9f0e0dfc4ec78505b0615fadd8dac1e892e7a692071d60c0e599452dfed58b9020028b + languageName: node + linkType: hard + +"@react-native/eslint-plugin@npm:0.81.0": + version: 0.81.0 + resolution: "@react-native/eslint-plugin@npm:0.81.0" + checksum: 2138d93bc5f675ef853d8a7506788840605e6c773f1b52815ab8787ae20e4921b66958ec870af7e3d37eb82eed1c5d5320164a41161e0b5d077b7ec23eab1473 + languageName: node + linkType: hard + +"@react-native/gradle-plugin@npm:0.74.84": + version: 0.74.84 + resolution: "@react-native/gradle-plugin@npm:0.74.84" + checksum: c87ca92df109d102a7acf2ccfdf459779ccb635a75937ac096a89727d46c25d7d5c1627b8904a979c04ca703d4680bb30ba692682ac63f70f7318e0373750422 + languageName: node + linkType: hard + +"@react-native/gradle-plugin@npm:0.79.6": + version: 0.79.6 + resolution: "@react-native/gradle-plugin@npm:0.79.6" + checksum: 80d1ce8961fb3ab139715c4ad442b49107eb8609f6e313ce8271a11a9d6256882f223beb4288323b6707eed51db1d1f25d4c6ccc33951e0b39279143db6b5c77 + languageName: node + linkType: hard + +"@react-native/gradle-plugin@npm:0.81.4": + version: 0.81.4 + resolution: "@react-native/gradle-plugin@npm:0.81.4" + checksum: 98d71e2257c4c4bd41effe29cb3033beeb42194b7482d83c87458b641cc0c9a183206507dcf9b777d748540cd7bbab9754f5e9b13c712d6a6f6a552746fdb44e + languageName: node + linkType: hard + +"@react-native/gradle-plugin@npm:0.83.1": + version: 0.83.1 + resolution: "@react-native/gradle-plugin@npm:0.83.1" + checksum: dcf126b36fc46d06d2c8e5482a63566aca36273c3b2da79c67e158ea82f25445775456077afc1fbaf0c198d3307aa94bda814d177c31a149fc1ee06ab0614105 + languageName: node + linkType: hard + +"@react-native/js-polyfills@npm:0.74.84": + version: 0.74.84 + resolution: "@react-native/js-polyfills@npm:0.74.84" + checksum: 00faaa28900c63d2ab3f65418ad2b35bef45d9643b6352a8d395db4562090a562c7a1ad55da36917e837032c2861efaee4d75353b48532619cb998d0a4da1807 + languageName: node + linkType: hard + +"@react-native/js-polyfills@npm:0.79.6": + version: 0.79.6 + resolution: "@react-native/js-polyfills@npm:0.79.6" + checksum: 2c157ae65e1397d8236c9cab47b944320a5fdef78af969c6c351b0c76e3f2cafdd8518e7caf242bb8cd37210be38a571e9f8d79b2aebf94e3b23035771e0a8fe + languageName: node + linkType: hard + +"@react-native/js-polyfills@npm:0.81.0": + version: 0.81.0 + resolution: "@react-native/js-polyfills@npm:0.81.0" + checksum: 120154ff3036cee8bfc260ce01a3baa1b7c26ac884aac6bcd90512f13b90edcd9f4a72339cbf82db621ffce31548e2d5d85980885f6de8dcd4f312556559e34f + languageName: node + linkType: hard + +"@react-native/js-polyfills@npm:0.81.4": + version: 0.81.4 + resolution: "@react-native/js-polyfills@npm:0.81.4" + checksum: 5a2d6e2e0c588f39570a826d8632f5ac70607f69939c4961fbe26bd104a71aec83c5503f87a02f160ee8e5174c8e3e309c106e8634bd5f706c53acfd1dea4631 + languageName: node + linkType: hard + +"@react-native/js-polyfills@npm:0.83.1": + version: 0.83.1 + resolution: "@react-native/js-polyfills@npm:0.83.1" + checksum: 1c3fbceac6371252d6e54f9e76b852bfaec7a7472455f9856467dd73a87b8445eda03fb38fc65bc9abd76606e6e52041c754db41f2a23c74dbf5e052e9af129a + languageName: node + linkType: hard + +"@react-native/metro-babel-transformer@npm:0.74.84": + version: 0.74.84 + resolution: "@react-native/metro-babel-transformer@npm:0.74.84" + dependencies: + "@babel/core": ^7.20.0 + "@react-native/babel-preset": 0.74.84 + hermes-parser: 0.19.1 + nullthrows: ^1.1.1 + peerDependencies: + "@babel/core": "*" + checksum: 142c85cc6916aa28fb4fc1c6943397bf4ba4eb4bce86d9fad9afc394b87d99972ce1e47db43615aad6cc99c1c85a32fca7a9873bc0819972c181d221f54b2609 + languageName: node + linkType: hard + +"@react-native/metro-babel-transformer@npm:0.81.0": + version: 0.81.0 + resolution: "@react-native/metro-babel-transformer@npm:0.81.0" + dependencies: + "@babel/core": ^7.25.2 + "@react-native/babel-preset": 0.81.0 + hermes-parser: 0.29.1 + nullthrows: ^1.1.1 + peerDependencies: + "@babel/core": "*" + checksum: 6c498e6cc01da92e9ad372fac13d46b8074bdc1a0ac22a8db0353a057a422daa59d06b829f7b0b4ad70b7f322822ae4e06e0a9f5194ebe474a9044b2c06f5c24 + languageName: node + linkType: hard + +"@react-native/metro-config@npm:0.81.0": + version: 0.81.0 + resolution: "@react-native/metro-config@npm:0.81.0" + dependencies: + "@react-native/js-polyfills": 0.81.0 + "@react-native/metro-babel-transformer": 0.81.0 + metro-config: ^0.83.1 + metro-runtime: ^0.83.1 + checksum: 0354b9a379b970a22ff7c30fb9e51f8504a7f4e1ca0d456e9ce40b1b666c68b7291becffe4839b3aeb84b2aeedfe84948409fccf2e6202555a19de48ea5653d9 + languageName: node + linkType: hard + +"@react-native/normalize-colors@npm:0.74.84": + version: 0.74.84 + resolution: "@react-native/normalize-colors@npm:0.74.84" + checksum: e9a7b3020e6a298ba1c7310d267ef90c39327cb2ed7899bf3778224e52b280802899420dbf36fb8c1a37914f410be0187a9796c1790c1dca86404a40a948235a + languageName: node + linkType: hard + +"@react-native/normalize-colors@npm:0.79.6": + version: 0.79.6 + resolution: "@react-native/normalize-colors@npm:0.79.6" + checksum: 357b3b757f0444e25556642ac1a6a7d169663c8b307d6bb4da9ca06033634d3b3e53d0d2c66bd0ea72470578e4483e6b5572b9a4c51417877782a7ac1273c8a1 + languageName: node + linkType: hard + +"@react-native/normalize-colors@npm:0.81.4": + version: 0.81.4 + resolution: "@react-native/normalize-colors@npm:0.81.4" + checksum: 6fe040efc98127b8a1072d0e5b822097cdfb61e620ac37704b27affa6948c244e1349ac8b8f705f5efa15bd1a04ef7c9620ee5140eb0e13a62bc2dbf0f206178 + languageName: node + linkType: hard + +"@react-native/normalize-colors@npm:0.83.1": + version: 0.83.1 + resolution: "@react-native/normalize-colors@npm:0.83.1" + checksum: dd87c889218522affe58059d424404cee28f168bc3641f015ee2620c55b3e29930d279eed6916f866c166bb53d425cd160ccfaab546a6123b6c74e9931eac5d1 + languageName: node + linkType: hard + +"@react-native/normalize-colors@npm:^0.74.1": + version: 0.74.89 + resolution: "@react-native/normalize-colors@npm:0.74.89" + checksum: df62772f029dd132d3061a8ee7f90b6aaf5c525bb7e33c22908249daffa42995cddd91adc790ec9ce701636c14eeafc1809a9d0d879e3f8c71c9f340145abfce + languageName: node + linkType: hard + +"@react-native/typescript-config@npm:0.81.0": + version: 0.81.0 + resolution: "@react-native/typescript-config@npm:0.81.0" + checksum: 8cddfde7d51f5785fdf5a4fb4d655d1e7abc0bd41a25d2e522cf1c0ff6d46bf21583c2225c2f8485b4ee7843055727ee88d6147c5f64532efee1ec6bc21fca31 + languageName: node + linkType: hard + +"@react-native/virtualized-lists@npm:0.74.84": + version: 0.74.84 + resolution: "@react-native/virtualized-lists@npm:0.74.84" + dependencies: + invariant: ^2.2.4 + nullthrows: ^1.1.1 + peerDependencies: + "@types/react": ^18.2.6 + react: "*" + react-native: "*" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 50db3831efe3d0d4d995e4ac26a88843489197acff4ab6e1684f9059c80ff16e14475bf79b74926b9884198afffd10748c44d208431c17429b23ef573fb1c8c6 + languageName: node + linkType: hard + +"@react-native/virtualized-lists@npm:0.79.6": + version: 0.79.6 + resolution: "@react-native/virtualized-lists@npm:0.79.6" + dependencies: + invariant: ^2.2.4 + nullthrows: ^1.1.1 + peerDependencies: + "@types/react": ^19.0.0 + react: "*" + react-native: "*" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 119b556623832449cc17250cb5424d3670732db6d4e8be56ae3cd4ef6cb0bcfaeb1ea8cac5a5afc284216280171d3d8e48a36b76776d93681bc1c438adf4c795 + languageName: node + linkType: hard + +"@react-native/virtualized-lists@npm:0.81.4": + version: 0.81.4 + resolution: "@react-native/virtualized-lists@npm:0.81.4" + dependencies: + invariant: ^2.2.4 + nullthrows: ^1.1.1 + peerDependencies: + "@types/react": ^19.1.0 + react: "*" + react-native: "*" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 4a398ada7a072dea8f8275c299201ad107da14b189a453b892942adcf60ccabb311be477c979cfa0313df0b0099b7fafb4cba9c10ed939aec80e3a9a76b0535d + languageName: node + linkType: hard + +"@react-native/virtualized-lists@npm:0.83.1": + version: 0.83.1 + resolution: "@react-native/virtualized-lists@npm:0.83.1" + dependencies: + invariant: ^2.2.4 + nullthrows: ^1.1.1 + peerDependencies: + "@types/react": ^19.2.0 + react: "*" + react-native: "*" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 35205e505c53ff95c71434c82d02d11a454c28d603189b84c83207fa121874d3c6e5a0b0605495fbaa6eef797a71aa42df8d1780e2e2c64ee1e6b2548a815e27 + languageName: node + linkType: hard + +"@react-navigation/core@npm:^6.4.17": + version: 6.4.17 + resolution: "@react-navigation/core@npm:6.4.17" + dependencies: + "@react-navigation/routers": ^6.1.9 + escape-string-regexp: ^4.0.0 + nanoid: ^3.1.23 + query-string: ^7.1.3 + react-is: ^16.13.0 + use-latest-callback: ^0.2.1 + peerDependencies: + react: "*" + checksum: 5e7315bb6ebff8e796eaccb0442d00696466750cc387e93f5edb5293d4ad3f409c1525ef76192894488e2d0979b762b236a1b0fbbb7500b2f065bf4745d509c0 + languageName: node + linkType: hard + +"@react-navigation/elements@npm:^1.3.31": + version: 1.3.31 + resolution: "@react-navigation/elements@npm:1.3.31" + peerDependencies: + "@react-navigation/native": ^6.0.0 + react: "*" + react-native: "*" + react-native-safe-area-context: ">= 3.0.0" + checksum: 1e4a65ccd9fab757d01bf41f605aafd6ca8301ae25ad7d3f1769320793418cca9fe2f25ac9337578ce1e0a1560bbbc3a88f18b899867aacd4d31de7a789e417e + languageName: node + linkType: hard + +"@react-navigation/native@npm:^6.1.17": + version: 6.1.18 + resolution: "@react-navigation/native@npm:6.1.18" + dependencies: + "@react-navigation/core": ^6.4.17 + escape-string-regexp: ^4.0.0 + fast-deep-equal: ^3.1.3 + nanoid: ^3.1.23 + peerDependencies: + react: "*" + react-native: "*" + checksum: 82aeea67723f5dc41403e1c260f04942696f6cde95e30629c383521c3837d18d2d5c21bd78f0ade50beb81ac5edca2d7d38980dcd3a79e3acc86f45d0c09a4b8 + languageName: node + linkType: hard + +"@react-navigation/routers@npm:^6.1.9": + version: 6.1.9 + resolution: "@react-navigation/routers@npm:6.1.9" + dependencies: + nanoid: ^3.1.23 + checksum: 3a3392ce095d6a2bd2aad69856f513b35774f943a3dc73d8ffb75127de6773203e3264188d87058bdea4c0c9a7d43ed28d0cbf3a1f1cdc086df3ee255d8e1e27 + languageName: node + linkType: hard + +"@react-navigation/stack@npm:^6.4.0": + version: 6.4.1 + resolution: "@react-navigation/stack@npm:6.4.1" + dependencies: + "@react-navigation/elements": ^1.3.31 + color: ^4.2.3 + warn-once: ^0.1.0 + peerDependencies: + "@react-navigation/native": ^6.0.0 + react: "*" + react-native: "*" + react-native-gesture-handler: ">= 1.0.0" + react-native-safe-area-context: ">= 3.0.0" + react-native-screens: ">= 3.0.0" + checksum: 09bcfb001db0f411df881da9f2551b7015c4d5259a77fcb93196de308838035d016dc4dcb654d16d9cd4cc99f09f5e48add796aa903f9a253678947c35b18199 + languageName: node + linkType: hard + +"@react-three/fiber@npm:9.4.0": + version: 9.4.0 + resolution: "@react-three/fiber@npm:9.4.0" + dependencies: + "@babel/runtime": ^7.17.8 + "@types/react-reconciler": ^0.32.0 + "@types/webxr": "*" + base64-js: ^1.5.1 + buffer: ^6.0.3 + its-fine: ^2.0.0 + react-reconciler: ^0.31.0 + react-use-measure: ^2.1.7 + scheduler: ^0.25.0 + suspend-react: ^0.1.3 + use-sync-external-store: ^1.4.0 + zustand: ^5.0.3 + peerDependencies: + expo: ">=43.0" + expo-asset: ">=8.4" + expo-file-system: ">=11.0" + expo-gl: ">=11.0" + react: ^19.0.0 + react-dom: ^19.0.0 + react-native: ">=0.78" + three: ">=0.156" + peerDependenciesMeta: + expo: + optional: true + expo-asset: + optional: true + expo-file-system: + optional: true + expo-gl: + optional: true + react-dom: + optional: true + react-native: + optional: true + checksum: 594919addbc67c12becbe9272e86be7aa7eba7d72528afcd1bf6724ee60a17d0dc473cfea9cd296b094f7a6d306fa9c8cbe540899486c79edbe681b7f1e9dd0a + languageName: node + linkType: hard + +"@react-three/fiber@patch:@react-three/fiber@npm%3A9.4.0#./.yarn/patches/@react-three-fiber-npm-9.4.0-77fe8ee9bd.patch::locator=react-native-webgpu-monorepo%40workspace%3A.": + version: 9.4.0 + resolution: "@react-three/fiber@patch:@react-three/fiber@npm%3A9.4.0#./.yarn/patches/@react-three-fiber-npm-9.4.0-77fe8ee9bd.patch::version=9.4.0&hash=7de131&locator=react-native-webgpu-monorepo%40workspace%3A." + dependencies: + "@babel/runtime": ^7.17.8 + "@types/react-reconciler": ^0.32.0 + "@types/webxr": "*" + base64-js: ^1.5.1 + buffer: ^6.0.3 + its-fine: ^2.0.0 + react-reconciler: ^0.31.0 + react-use-measure: ^2.1.7 + scheduler: ^0.25.0 + suspend-react: ^0.1.3 + use-sync-external-store: ^1.4.0 + zustand: ^5.0.3 + peerDependencies: + expo: ">=43.0" + expo-asset: ">=8.4" + expo-file-system: ">=11.0" + expo-gl: ">=11.0" + react: ^19.0.0 + react-dom: ^19.0.0 + react-native: ">=0.78" + three: ">=0.156" + peerDependenciesMeta: + expo: + optional: true + expo-asset: + optional: true + expo-file-system: + optional: true + expo-gl: + optional: true + react-dom: + optional: true + react-native: + optional: true + checksum: 62517c19c24754b1beb952671f27d21017e90717321265cf80343939b8d5c86d97719734fd9c52b89f5ee66256074a65d11ac99a056f5bcdd9688d41b216ab8c + languageName: node + linkType: hard + +"@rnx-kit/chromium-edge-launcher@npm:^1.0.0": + version: 1.0.0 + resolution: "@rnx-kit/chromium-edge-launcher@npm:1.0.0" + dependencies: + "@types/node": ^18.0.0 + escape-string-regexp: ^4.0.0 + is-wsl: ^2.2.0 + lighthouse-logger: ^1.0.0 + mkdirp: ^1.0.4 + rimraf: ^3.0.2 + checksum: c72113e32c222af94482a60e7cea8d296360abbc503afa64394af65ca106c7a36d975a68fed63e8cf5668ffebc33fa636665ceaf55c75d4cf949fb40302fc409 + languageName: node + linkType: hard + +"@rnx-kit/metro-config@npm:^2.0.0": + version: 2.2.2 + resolution: "@rnx-kit/metro-config@npm:2.2.2" + dependencies: + "@rnx-kit/tools-node": ^3.0.0 + "@rnx-kit/tools-react-native": ^2.3.1 + "@rnx-kit/tools-workspaces": ^0.2.0 + peerDependencies: + "@react-native/metro-config": "*" + react: "*" + react-native: "*" + peerDependenciesMeta: + "@react-native/metro-config": + optional: true + checksum: 20ebb7aaff667c9dbb2b2ba77d43bdfe0209628702c912648f12ce2d9b28f5c85698b5474d60ab65f2032a5523e66bf7c39c2a0ab7512ab427461d53b1992df1 + languageName: node + linkType: hard + +"@rnx-kit/react-native-host@npm:^0.5.11": + version: 0.5.15 + resolution: "@rnx-kit/react-native-host@npm:0.5.15" + peerDependencies: + react-native: ">=0.66" + checksum: 772ef4d7155fbedcd01de96dd70abb6b0c25d8a8f00e8e26e09deb5ffa0251fd0c3f9eaabdd802ac4710aae01730e5940925088cf1df1e4edf52fe3823d990d6 + languageName: node + linkType: hard + +"@rnx-kit/tools-node@npm:^3.0.0, @rnx-kit/tools-node@npm:^3.0.3": + version: 3.0.3 + resolution: "@rnx-kit/tools-node@npm:3.0.3" + checksum: 658b17db3c52417dfe9fb41f5483f9b74d2d7ab130427b104a740b9cc41aedf727a48e191e5f8c3c5b61b7d662f71fc7571f9f106b3c3adcd8b7ff8df03da881 + languageName: node + linkType: hard + +"@rnx-kit/tools-react-native@npm:^2.1.0, @rnx-kit/tools-react-native@npm:^2.3.1": + version: 2.3.2 + resolution: "@rnx-kit/tools-react-native@npm:2.3.2" + dependencies: + "@rnx-kit/tools-node": ^3.0.3 + checksum: 530caf9f27dc0d948cc62b5b1a3a99935ade9c503aa77864272e2f6450a1645e3fca15801120d0b3f964d781a66872aff7678ca4dda09ae0eaef5cbeb8129bf9 + languageName: node + linkType: hard + +"@rnx-kit/tools-workspaces@npm:^0.2.0": + version: 0.2.3 + resolution: "@rnx-kit/tools-workspaces@npm:0.2.3" + dependencies: + fast-glob: ^3.2.7 + find-up: ^5.0.0 + micromatch: ^4.0.0 + read-yaml-file: ^2.1.0 + strip-json-comments: ^3.1.1 + checksum: d93367822178ed97da29aba1da8efb376d9cfad3f026cfbb869232c2fde09dc9e2e873ba5b50fbb06cc4d8675fa3e5d0d146fbe5065287f4fdfc2c836fdd4b8d + languageName: node + linkType: hard + +"@rtsao/scc@npm:^1.1.0": + version: 1.1.0 + resolution: "@rtsao/scc@npm:1.1.0" + checksum: 17d04adf404e04c1e61391ed97bca5117d4c2767a76ae3e879390d6dec7b317fcae68afbf9e98badee075d0b64fa60f287729c4942021b4d19cd01db77385c01 + languageName: node + linkType: hard + +"@shikijs/core@npm:4.2.0": + version: 4.2.0 + resolution: "@shikijs/core@npm:4.2.0" + dependencies: + "@shikijs/primitive": 4.2.0 + "@shikijs/types": 4.2.0 + "@shikijs/vscode-textmate": ^10.0.2 + "@types/hast": ^3.0.4 + hast-util-to-html: ^9.0.5 + checksum: 3841ddc675835858fada528b4008e50c21bcb291edb6e5aa2b3c3d95b9447b2b6bed418e4f3b761ac66983a2435fc1839ea508cdc94acca8963710e8f4d867c5 languageName: node linkType: hard -"@react-native/dev-middleware@npm:0.83.1": - version: 0.83.1 - resolution: "@react-native/dev-middleware@npm:0.83.1" +"@shikijs/engine-javascript@npm:4.2.0": + version: 4.2.0 + resolution: "@shikijs/engine-javascript@npm:4.2.0" dependencies: - "@isaacs/ttlcache": ^1.4.1 - "@react-native/debugger-frontend": 0.83.1 - "@react-native/debugger-shell": 0.83.1 - chrome-launcher: ^0.15.2 - chromium-edge-launcher: ^0.2.0 - connect: ^3.6.5 - debug: ^4.4.0 - invariant: ^2.2.4 - nullthrows: ^1.1.1 - open: ^7.0.3 - serve-static: ^1.16.2 - ws: ^7.5.10 - checksum: d8439119cd99a8db0649b97a1f459222f49bb9425e1248d1466e4f7f4a104915d1e6ccc11403a5a0f3aa810eea3aa836f921ff11f44c4d3a06769d96083beb86 + "@shikijs/types": 4.2.0 + "@shikijs/vscode-textmate": ^10.0.2 + oniguruma-to-es: ^4.3.6 + checksum: eecfd3bb0c7b46e9634e359558d1b47f75852da219d6dec382626eb9fbdf55bd5df518971563b4e47535204625c6c8b3152328c078f702dfa1cc819524352d68 languageName: node linkType: hard -"@react-native/eslint-config@npm:0.81.0": - version: 0.81.0 - resolution: "@react-native/eslint-config@npm:0.81.0" +"@shikijs/engine-oniguruma@npm:4.2.0": + version: 4.2.0 + resolution: "@shikijs/engine-oniguruma@npm:4.2.0" dependencies: - "@babel/core": ^7.25.2 - "@babel/eslint-parser": ^7.25.1 - "@react-native/eslint-plugin": 0.81.0 - "@typescript-eslint/eslint-plugin": ^7.1.1 - "@typescript-eslint/parser": ^7.1.1 - eslint-config-prettier: ^8.5.0 - eslint-plugin-eslint-comments: ^3.2.0 - eslint-plugin-ft-flow: ^2.0.1 - eslint-plugin-jest: ^27.9.0 - eslint-plugin-react: ^7.30.1 - eslint-plugin-react-hooks: ^5.2.0 - eslint-plugin-react-native: ^4.0.0 - peerDependencies: - eslint: ">=8" - prettier: ">=2" - checksum: 3bce2c7b8e34378882e0cad76f9a4834a7e8c4e3a5ff6ef3b4ed2eaa9c9f0e0dfc4ec78505b0615fadd8dac1e892e7a692071d60c0e599452dfed58b9020028b + "@shikijs/types": 4.2.0 + "@shikijs/vscode-textmate": ^10.0.2 + checksum: 94071c6f86600a213319e8696d5566931cbda98c189d716221bacceee305a233aa9f207fbc20741cc40feb1ccc4fdf6a65be2d0bf60d67643162182e5e3d7cfd languageName: node linkType: hard -"@react-native/eslint-plugin@npm:0.81.0": - version: 0.81.0 - resolution: "@react-native/eslint-plugin@npm:0.81.0" - checksum: 2138d93bc5f675ef853d8a7506788840605e6c773f1b52815ab8787ae20e4921b66958ec870af7e3d37eb82eed1c5d5320164a41161e0b5d077b7ec23eab1473 +"@shikijs/langs@npm:4.2.0": + version: 4.2.0 + resolution: "@shikijs/langs@npm:4.2.0" + dependencies: + "@shikijs/types": 4.2.0 + checksum: 2ab68d9d0178d94e1521887f65e5555b89341459f1b39cab1c6f40f0b2f0bca19a6affade3f3dbd4ce2226da0e8cba65db3f9551072ee6d88588a28a1af30df6 languageName: node linkType: hard -"@react-native/gradle-plugin@npm:0.74.84": - version: 0.74.84 - resolution: "@react-native/gradle-plugin@npm:0.74.84" - checksum: c87ca92df109d102a7acf2ccfdf459779ccb635a75937ac096a89727d46c25d7d5c1627b8904a979c04ca703d4680bb30ba692682ac63f70f7318e0373750422 +"@shikijs/primitive@npm:4.2.0": + version: 4.2.0 + resolution: "@shikijs/primitive@npm:4.2.0" + dependencies: + "@shikijs/types": 4.2.0 + "@shikijs/vscode-textmate": ^10.0.2 + "@types/hast": ^3.0.4 + checksum: 1dc1e54739fb8b4efb8f06ce8acb3abbdb2d6c3db826d07ba0e4c5a3b4bc1dd4d01ad10fb05f063d0d14ee7f132e322a4da4e1e28f3030893c853e46d4147ef6 languageName: node linkType: hard -"@react-native/gradle-plugin@npm:0.79.6": - version: 0.79.6 - resolution: "@react-native/gradle-plugin@npm:0.79.6" - checksum: 80d1ce8961fb3ab139715c4ad442b49107eb8609f6e313ce8271a11a9d6256882f223beb4288323b6707eed51db1d1f25d4c6ccc33951e0b39279143db6b5c77 +"@shikijs/themes@npm:4.2.0": + version: 4.2.0 + resolution: "@shikijs/themes@npm:4.2.0" + dependencies: + "@shikijs/types": 4.2.0 + checksum: 05c4bc125a598c3bed0aa1836f3a2f9f3cac0ba22b474bbbed0db2db09a9896d80e25340cc5345b5df3edcc591be7e0d63a0d56be2e775b7a97b3b9489a3910c languageName: node linkType: hard -"@react-native/gradle-plugin@npm:0.81.4": - version: 0.81.4 - resolution: "@react-native/gradle-plugin@npm:0.81.4" - checksum: 98d71e2257c4c4bd41effe29cb3033beeb42194b7482d83c87458b641cc0c9a183206507dcf9b777d748540cd7bbab9754f5e9b13c712d6a6f6a552746fdb44e +"@shikijs/types@npm:4.2.0": + version: 4.2.0 + resolution: "@shikijs/types@npm:4.2.0" + dependencies: + "@shikijs/vscode-textmate": ^10.0.2 + "@types/hast": ^3.0.4 + checksum: 95fbcf9e341d810725d5e69d1cce0ce8b7c6be72a89373ffd0c8bb75237de42b6740627d291f3e0947fb23cba49d840948d08714201a0fb8fd164fe02f15d9a7 languageName: node linkType: hard -"@react-native/gradle-plugin@npm:0.83.1": - version: 0.83.1 - resolution: "@react-native/gradle-plugin@npm:0.83.1" - checksum: dcf126b36fc46d06d2c8e5482a63566aca36273c3b2da79c67e158ea82f25445775456077afc1fbaf0c198d3307aa94bda814d177c31a149fc1ee06ab0614105 +"@shikijs/vscode-textmate@npm:^10.0.2": + version: 10.0.2 + resolution: "@shikijs/vscode-textmate@npm:10.0.2" + checksum: e68f27a3dc1584d7414b8acafb9c177a2181eb0b06ef178d8609142f49d28d85fd10ab129affde40a45a7d9238997e457ce47931b3a3815980e2b98b2d26724c languageName: node linkType: hard -"@react-native/js-polyfills@npm:0.74.84": - version: 0.74.84 - resolution: "@react-native/js-polyfills@npm:0.74.84" - checksum: 00faaa28900c63d2ab3f65418ad2b35bef45d9643b6352a8d395db4562090a562c7a1ad55da36917e837032c2861efaee4d75353b48532619cb998d0a4da1807 +"@shopify/react-native-skia@npm:2.6.2": + version: 2.6.2 + resolution: "@shopify/react-native-skia@npm:2.6.2" + dependencies: + canvaskit-wasm: 0.41.0 + react-native-skia-android: 147.1.0 + react-native-skia-apple-ios: 147.1.0 + react-native-skia-apple-macos: 147.1.0 + react-native-skia-apple-tvos: 147.1.0 + react-reconciler: 0.31.0 + peerDependencies: + react: ">=19.0" + react-native: ">=0.78" + react-native-reanimated: ">=3.19.1" + peerDependenciesMeta: + react-native: + optional: true + react-native-reanimated: + optional: true + bin: + install-skia: scripts/install-libs.js + setup-skia-web: scripts/setup-canvaskit.js + checksum: 12fcd7eaf706fcd222498fa22ba73af2eda214931b7fdc7b16cf5e9713de04ca55639df7be5bb57f91c5a4808a0f3946e7ab56453840cb6436def00e8e125523 languageName: node linkType: hard -"@react-native/js-polyfills@npm:0.79.6": - version: 0.79.6 - resolution: "@react-native/js-polyfills@npm:0.79.6" - checksum: 2c157ae65e1397d8236c9cab47b944320a5fdef78af969c6c351b0c76e3f2cafdd8518e7caf242bb8cd37210be38a571e9f8d79b2aebf94e3b23035771e0a8fe +"@sideway/address@npm:^4.1.5": + version: 4.1.5 + resolution: "@sideway/address@npm:4.1.5" + dependencies: + "@hapi/hoek": ^9.0.0 + checksum: 3e3ea0f00b4765d86509282290368a4a5fd39a7995fdc6de42116ca19a96120858e56c2c995081def06e1c53e1f8bccc7d013f6326602bec9d56b72ee2772b9d languageName: node linkType: hard -"@react-native/js-polyfills@npm:0.81.0": - version: 0.81.0 - resolution: "@react-native/js-polyfills@npm:0.81.0" - checksum: 120154ff3036cee8bfc260ce01a3baa1b7c26ac884aac6bcd90512f13b90edcd9f4a72339cbf82db621ffce31548e2d5d85980885f6de8dcd4f312556559e34f +"@sideway/formula@npm:^3.0.1": + version: 3.0.1 + resolution: "@sideway/formula@npm:3.0.1" + checksum: e4beeebc9dbe2ff4ef0def15cec0165e00d1612e3d7cea0bc9ce5175c3263fc2c818b679bd558957f49400ee7be9d4e5ac90487e1625b4932e15c4aa7919c57a languageName: node linkType: hard -"@react-native/js-polyfills@npm:0.81.4": - version: 0.81.4 - resolution: "@react-native/js-polyfills@npm:0.81.4" - checksum: 5a2d6e2e0c588f39570a826d8632f5ac70607f69939c4961fbe26bd104a71aec83c5503f87a02f160ee8e5174c8e3e309c106e8634bd5f706c53acfd1dea4631 +"@sideway/pinpoint@npm:^2.0.0": + version: 2.0.0 + resolution: "@sideway/pinpoint@npm:2.0.0" + checksum: 0f4491e5897fcf5bf02c46f5c359c56a314e90ba243f42f0c100437935daa2488f20482f0f77186bd6bf43345095a95d8143ecf8b1f4d876a7bc0806aba9c3d2 languageName: node linkType: hard -"@react-native/js-polyfills@npm:0.83.1": - version: 0.83.1 - resolution: "@react-native/js-polyfills@npm:0.83.1" - checksum: 1c3fbceac6371252d6e54f9e76b852bfaec7a7472455f9856467dd73a87b8445eda03fb38fc65bc9abd76606e6e52041c754db41f2a23c74dbf5e052e9af129a +"@sinclair/typebox@npm:^0.27.8": + version: 0.27.8 + resolution: "@sinclair/typebox@npm:0.27.8" + checksum: 00bd7362a3439021aa1ea51b0e0d0a0e8ca1351a3d54c606b115fdcc49b51b16db6e5f43b4fe7a28c38688523e22a94d49dd31168868b655f0d4d50f032d07a1 languageName: node linkType: hard -"@react-native/metro-babel-transformer@npm:0.74.84": - version: 0.74.84 - resolution: "@react-native/metro-babel-transformer@npm:0.74.84" +"@sinonjs/commons@npm:^3.0.0": + version: 3.0.1 + resolution: "@sinonjs/commons@npm:3.0.1" dependencies: - "@babel/core": ^7.20.0 - "@react-native/babel-preset": 0.74.84 - hermes-parser: 0.19.1 - nullthrows: ^1.1.1 - peerDependencies: - "@babel/core": "*" - checksum: 142c85cc6916aa28fb4fc1c6943397bf4ba4eb4bce86d9fad9afc394b87d99972ce1e47db43615aad6cc99c1c85a32fca7a9873bc0819972c181d221f54b2609 + type-detect: 4.0.8 + checksum: a7c3e7cc612352f4004873747d9d8b2d4d90b13a6d483f685598c945a70e734e255f1ca5dc49702515533c403b32725defff148177453b3f3915bcb60e9d4601 languageName: node linkType: hard -"@react-native/metro-babel-transformer@npm:0.81.0": - version: 0.81.0 - resolution: "@react-native/metro-babel-transformer@npm:0.81.0" +"@sinonjs/fake-timers@npm:^10.0.2": + version: 10.3.0 + resolution: "@sinonjs/fake-timers@npm:10.3.0" dependencies: - "@babel/core": ^7.25.2 - "@react-native/babel-preset": 0.81.0 - hermes-parser: 0.29.1 - nullthrows: ^1.1.1 - peerDependencies: - "@babel/core": "*" - checksum: 6c498e6cc01da92e9ad372fac13d46b8074bdc1a0ac22a8db0353a057a422daa59d06b829f7b0b4ad70b7f322822ae4e06e0a9f5194ebe474a9044b2c06f5c24 + "@sinonjs/commons": ^3.0.0 + checksum: 614d30cb4d5201550c940945d44c9e0b6d64a888ff2cd5b357f95ad6721070d6b8839cd10e15b76bf5e14af0bcc1d8f9ec00d49a46318f1f669a4bec1d7f3148 languageName: node linkType: hard -"@react-native/metro-config@npm:0.81.0": - version: 0.81.0 - resolution: "@react-native/metro-config@npm:0.81.0" +"@standard-schema/spec@npm:^1.1.0": + version: 1.1.0 + resolution: "@standard-schema/spec@npm:1.1.0" + checksum: 6245ebef5e698bb04752a22e996a7cc40406a404d9f68a9d4e1a7a10f2422da287247508e7b495a2f32bb38f3d57b4daf2c9ab4bf22d9bca13e20a3dc5ec575e + languageName: node + linkType: hard + +"@swc/helpers@npm:0.5.15": + version: 0.5.15 + resolution: "@swc/helpers@npm:0.5.15" dependencies: - "@react-native/js-polyfills": 0.81.0 - "@react-native/metro-babel-transformer": 0.81.0 - metro-config: ^0.83.1 - metro-runtime: ^0.83.1 - checksum: 0354b9a379b970a22ff7c30fb9e51f8504a7f4e1ca0d456e9ce40b1b666c68b7291becffe4839b3aeb84b2aeedfe84948409fccf2e6202555a19de48ea5653d9 + tslib: ^2.8.0 + checksum: 1a9e0dbb792b2d1e0c914d69c201dbc96af3a0e6e6e8cf5a7f7d6a5d7b0e8b762915cd4447acb6b040e2ecc1ed49822875a7239f99a2d63c96c3c3407fb6fccf languageName: node linkType: hard -"@react-native/normalize-colors@npm:0.74.84": - version: 0.74.84 - resolution: "@react-native/normalize-colors@npm:0.74.84" - checksum: e9a7b3020e6a298ba1c7310d267ef90c39327cb2ed7899bf3778224e52b280802899420dbf36fb8c1a37914f410be0187a9796c1790c1dca86404a40a948235a +"@tailwindcss/node@npm:4.3.0": + version: 4.3.0 + resolution: "@tailwindcss/node@npm:4.3.0" + dependencies: + "@jridgewell/remapping": ^2.3.5 + enhanced-resolve: ^5.21.0 + jiti: ^2.6.1 + lightningcss: 1.32.0 + magic-string: ^0.30.21 + source-map-js: ^1.2.1 + tailwindcss: 4.3.0 + checksum: 9141fb0f45814c7d9b0c71653971201e2af2358df1294877e292198eb4c2f55de304bd9573706348eceba5d079b9618f1c1b36d8e39bbca53e88c12aeff74a33 languageName: node linkType: hard -"@react-native/normalize-colors@npm:0.79.6": - version: 0.79.6 - resolution: "@react-native/normalize-colors@npm:0.79.6" - checksum: 357b3b757f0444e25556642ac1a6a7d169663c8b307d6bb4da9ca06033634d3b3e53d0d2c66bd0ea72470578e4483e6b5572b9a4c51417877782a7ac1273c8a1 +"@tailwindcss/oxide-android-arm64@npm:4.3.0": + version: 4.3.0 + resolution: "@tailwindcss/oxide-android-arm64@npm:4.3.0" + conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@react-native/normalize-colors@npm:0.81.4": - version: 0.81.4 - resolution: "@react-native/normalize-colors@npm:0.81.4" - checksum: 6fe040efc98127b8a1072d0e5b822097cdfb61e620ac37704b27affa6948c244e1349ac8b8f705f5efa15bd1a04ef7c9620ee5140eb0e13a62bc2dbf0f206178 +"@tailwindcss/oxide-darwin-arm64@npm:4.3.0": + version: 4.3.0 + resolution: "@tailwindcss/oxide-darwin-arm64@npm:4.3.0" + conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@react-native/normalize-colors@npm:0.83.1": - version: 0.83.1 - resolution: "@react-native/normalize-colors@npm:0.83.1" - checksum: dd87c889218522affe58059d424404cee28f168bc3641f015ee2620c55b3e29930d279eed6916f866c166bb53d425cd160ccfaab546a6123b6c74e9931eac5d1 +"@tailwindcss/oxide-darwin-x64@npm:4.3.0": + version: 4.3.0 + resolution: "@tailwindcss/oxide-darwin-x64@npm:4.3.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@tailwindcss/oxide-freebsd-x64@npm:4.3.0": + version: 4.3.0 + resolution: "@tailwindcss/oxide-freebsd-x64@npm:4.3.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@tailwindcss/oxide-linux-arm-gnueabihf@npm:4.3.0": + version: 4.3.0 + resolution: "@tailwindcss/oxide-linux-arm-gnueabihf@npm:4.3.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@tailwindcss/oxide-linux-arm64-gnu@npm:4.3.0": + version: 4.3.0 + resolution: "@tailwindcss/oxide-linux-arm64-gnu@npm:4.3.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@tailwindcss/oxide-linux-arm64-musl@npm:4.3.0": + version: 4.3.0 + resolution: "@tailwindcss/oxide-linux-arm64-musl@npm:4.3.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@tailwindcss/oxide-linux-x64-gnu@npm:4.3.0": + version: 4.3.0 + resolution: "@tailwindcss/oxide-linux-x64-gnu@npm:4.3.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@tailwindcss/oxide-linux-x64-musl@npm:4.3.0": + version: 4.3.0 + resolution: "@tailwindcss/oxide-linux-x64-musl@npm:4.3.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@tailwindcss/oxide-wasm32-wasi@npm:4.3.0": + version: 4.3.0 + resolution: "@tailwindcss/oxide-wasm32-wasi@npm:4.3.0" + dependencies: + "@emnapi/core": ^1.10.0 + "@emnapi/runtime": ^1.10.0 + "@emnapi/wasi-threads": ^1.2.1 + "@napi-rs/wasm-runtime": ^1.1.4 + "@tybys/wasm-util": ^0.10.1 + tslib: ^2.8.1 + conditions: cpu=wasm32 + languageName: node + linkType: hard + +"@tailwindcss/oxide-win32-arm64-msvc@npm:4.3.0": + version: 4.3.0 + resolution: "@tailwindcss/oxide-win32-arm64-msvc@npm:4.3.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@tailwindcss/oxide-win32-x64-msvc@npm:4.3.0": + version: 4.3.0 + resolution: "@tailwindcss/oxide-win32-x64-msvc@npm:4.3.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@tailwindcss/oxide@npm:4.3.0": + version: 4.3.0 + resolution: "@tailwindcss/oxide@npm:4.3.0" + dependencies: + "@tailwindcss/oxide-android-arm64": 4.3.0 + "@tailwindcss/oxide-darwin-arm64": 4.3.0 + "@tailwindcss/oxide-darwin-x64": 4.3.0 + "@tailwindcss/oxide-freebsd-x64": 4.3.0 + "@tailwindcss/oxide-linux-arm-gnueabihf": 4.3.0 + "@tailwindcss/oxide-linux-arm64-gnu": 4.3.0 + "@tailwindcss/oxide-linux-arm64-musl": 4.3.0 + "@tailwindcss/oxide-linux-x64-gnu": 4.3.0 + "@tailwindcss/oxide-linux-x64-musl": 4.3.0 + "@tailwindcss/oxide-wasm32-wasi": 4.3.0 + "@tailwindcss/oxide-win32-arm64-msvc": 4.3.0 + "@tailwindcss/oxide-win32-x64-msvc": 4.3.0 + dependenciesMeta: + "@tailwindcss/oxide-android-arm64": + optional: true + "@tailwindcss/oxide-darwin-arm64": + optional: true + "@tailwindcss/oxide-darwin-x64": + optional: true + "@tailwindcss/oxide-freebsd-x64": + optional: true + "@tailwindcss/oxide-linux-arm-gnueabihf": + optional: true + "@tailwindcss/oxide-linux-arm64-gnu": + optional: true + "@tailwindcss/oxide-linux-arm64-musl": + optional: true + "@tailwindcss/oxide-linux-x64-gnu": + optional: true + "@tailwindcss/oxide-linux-x64-musl": + optional: true + "@tailwindcss/oxide-wasm32-wasi": + optional: true + "@tailwindcss/oxide-win32-arm64-msvc": + optional: true + "@tailwindcss/oxide-win32-x64-msvc": + optional: true + checksum: 8ef5a044100d5a73415d494beb79a9388093f632f96f251de48afd16ed9bfa208e1693df9a739feec6df4814af1ac7a151544d52db563dbde4b5c9ede4c5ea33 languageName: node linkType: hard -"@react-native/normalize-colors@npm:^0.74.1": - version: 0.74.89 - resolution: "@react-native/normalize-colors@npm:0.74.89" - checksum: df62772f029dd132d3061a8ee7f90b6aaf5c525bb7e33c22908249daffa42995cddd91adc790ec9ce701636c14eeafc1809a9d0d879e3f8c71c9f340145abfce +"@tailwindcss/postcss@npm:^4.1.8": + version: 4.3.0 + resolution: "@tailwindcss/postcss@npm:4.3.0" + dependencies: + "@alloc/quick-lru": ^5.2.0 + "@tailwindcss/node": 4.3.0 + "@tailwindcss/oxide": 4.3.0 + postcss: ^8.5.10 + tailwindcss: 4.3.0 + checksum: 5f5061f384d46aadae38211b541306e2dffbc963ddcbd0b0c80806f34e438ee6272c4c9166b11191d2afd09f37df1d7fe3bed5b69af24c398671f4d5cf674b15 languageName: node linkType: hard -"@react-native/typescript-config@npm:0.81.0": - version: 0.81.0 - resolution: "@react-native/typescript-config@npm:0.81.0" - checksum: 8cddfde7d51f5785fdf5a4fb4d655d1e7abc0bd41a25d2e522cf1c0ff6d46bf21583c2225c2f8485b4ee7843055727ee88d6147c5f64532efee1ec6bc21fca31 +"@tensorflow/tfjs-backend-cpu@npm:4.22.0": + version: 4.22.0 + resolution: "@tensorflow/tfjs-backend-cpu@npm:4.22.0" + dependencies: + "@types/seedrandom": ^2.4.28 + seedrandom: ^3.0.5 + peerDependencies: + "@tensorflow/tfjs-core": 4.22.0 + checksum: afa375b7d752e145fee025270f2c848504987cf8e54f787736bfde968853428c0c8e4539205beee4c59443459c0a4cd150021aa613b48f40547987a94c7d7e04 languageName: node linkType: hard -"@react-native/virtualized-lists@npm:0.74.84": - version: 0.74.84 - resolution: "@react-native/virtualized-lists@npm:0.74.84" +"@tensorflow/tfjs-backend-webgl@npm:4.22.0": + version: 4.22.0 + resolution: "@tensorflow/tfjs-backend-webgl@npm:4.22.0" dependencies: - invariant: ^2.2.4 - nullthrows: ^1.1.1 + "@tensorflow/tfjs-backend-cpu": 4.22.0 + "@types/offscreencanvas": ~2019.3.0 + "@types/seedrandom": ^2.4.28 + seedrandom: ^3.0.5 peerDependencies: - "@types/react": ^18.2.6 - react: "*" - react-native: "*" - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 50db3831efe3d0d4d995e4ac26a88843489197acff4ab6e1684f9059c80ff16e14475bf79b74926b9884198afffd10748c44d208431c17429b23ef573fb1c8c6 + "@tensorflow/tfjs-core": 4.22.0 + checksum: 16da253bc53e3ac97f6da40257794f24e7831ee7e362be397c8c004084ab2db25f7803bfee0d9b57d60961ce1146f2dc9c94b26570c5f8cfd7eab2fc89e93f59 languageName: node linkType: hard -"@react-native/virtualized-lists@npm:0.79.6": - version: 0.79.6 - resolution: "@react-native/virtualized-lists@npm:0.79.6" +"@tensorflow/tfjs-backend-webgpu@npm:^4.22.0": + version: 4.22.0 + resolution: "@tensorflow/tfjs-backend-webgpu@npm:4.22.0" dependencies: - invariant: ^2.2.4 - nullthrows: ^1.1.1 + "@tensorflow/tfjs-backend-cpu": 4.22.0 peerDependencies: - "@types/react": ^19.0.0 - react: "*" - react-native: "*" - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 119b556623832449cc17250cb5424d3670732db6d4e8be56ae3cd4ef6cb0bcfaeb1ea8cac5a5afc284216280171d3d8e48a36b76776d93681bc1c438adf4c795 + "@tensorflow/tfjs-core": 4.22.0 + checksum: da9f3c3db9a78d5e6c3c332cd33716bc6b7dbc6fdc0237bf899587936c07a1f483da9ffc43ffad86ee9f7af8619cab7c421c2de9bd2f9c128a185e462b6ae9da languageName: node linkType: hard -"@react-native/virtualized-lists@npm:0.81.4": - version: 0.81.4 - resolution: "@react-native/virtualized-lists@npm:0.81.4" - dependencies: - invariant: ^2.2.4 - nullthrows: ^1.1.1 +"@tensorflow/tfjs-converter@npm:4.22.0": + version: 4.22.0 + resolution: "@tensorflow/tfjs-converter@npm:4.22.0" peerDependencies: - "@types/react": ^19.1.0 - react: "*" - react-native: "*" - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 4a398ada7a072dea8f8275c299201ad107da14b189a453b892942adcf60ccabb311be477c979cfa0313df0b0099b7fafb4cba9c10ed939aec80e3a9a76b0535d + "@tensorflow/tfjs-core": 4.22.0 + checksum: 918d3e11eed19cda41f785a3964619bfeeb40da6c3ad24a5028ac71c2abeaab7e201778bdbed94545e4b08931a08ff194bfecfde1131cf5c4837a0818e2cd508 languageName: node linkType: hard -"@react-native/virtualized-lists@npm:0.83.1": - version: 0.83.1 - resolution: "@react-native/virtualized-lists@npm:0.83.1" +"@tensorflow/tfjs-core@npm:4.22.0": + version: 4.22.0 + resolution: "@tensorflow/tfjs-core@npm:4.22.0" dependencies: - invariant: ^2.2.4 - nullthrows: ^1.1.1 - peerDependencies: - "@types/react": ^19.2.0 - react: "*" - react-native: "*" - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 35205e505c53ff95c71434c82d02d11a454c28d603189b84c83207fa121874d3c6e5a0b0605495fbaa6eef797a71aa42df8d1780e2e2c64ee1e6b2548a815e27 + "@types/long": ^4.0.1 + "@types/offscreencanvas": ~2019.7.0 + "@types/seedrandom": ^2.4.28 + "@webgpu/types": 0.1.38 + long: 4.0.0 + node-fetch: ~2.6.1 + seedrandom: ^3.0.5 + checksum: 3efe6fc6020911ea06e387bc7228e73bb4bb33e2440c7a970369be8952ba3ac3f4ef5a3cd78a2e382702de0a3b8f097869e4e3a3e7dd65fa93e3f78d15d6b334 languageName: node linkType: hard -"@react-navigation/core@npm:^6.4.17": - version: 6.4.17 - resolution: "@react-navigation/core@npm:6.4.17" +"@tensorflow/tfjs-data@npm:4.22.0": + version: 4.22.0 + resolution: "@tensorflow/tfjs-data@npm:4.22.0" dependencies: - "@react-navigation/routers": ^6.1.9 - escape-string-regexp: ^4.0.0 - nanoid: ^3.1.23 - query-string: ^7.1.3 - react-is: ^16.13.0 - use-latest-callback: ^0.2.1 + "@types/node-fetch": ^2.1.2 + node-fetch: ~2.6.1 + string_decoder: ^1.3.0 peerDependencies: - react: "*" - checksum: 5e7315bb6ebff8e796eaccb0442d00696466750cc387e93f5edb5293d4ad3f409c1525ef76192894488e2d0979b762b236a1b0fbbb7500b2f065bf4745d509c0 + "@tensorflow/tfjs-core": 4.22.0 + seedrandom: ^3.0.5 + checksum: b20770a79222688f7a1349c0c19fc913424ea095c6d1d329625a4cd4c80a1ff3d988e3a845ab2f2823c72a7990f6b070cbce4e638a42fe4d2385b420477aa36b languageName: node linkType: hard -"@react-navigation/elements@npm:^1.3.31": - version: 1.3.31 - resolution: "@react-navigation/elements@npm:1.3.31" +"@tensorflow/tfjs-layers@npm:4.22.0": + version: 4.22.0 + resolution: "@tensorflow/tfjs-layers@npm:4.22.0" peerDependencies: - "@react-navigation/native": ^6.0.0 - react: "*" - react-native: "*" - react-native-safe-area-context: ">= 3.0.0" - checksum: 1e4a65ccd9fab757d01bf41f605aafd6ca8301ae25ad7d3f1769320793418cca9fe2f25ac9337578ce1e0a1560bbbc3a88f18b899867aacd4d31de7a789e417e + "@tensorflow/tfjs-core": 4.22.0 + checksum: 88253be2b91dadb9264303d2260fe6160e753fabf4642c290d26c451385363ce8d0ad150d5a3070e52645d4ba061c2e63b6dda67d3bf3257a36e65ab8fd3d69a languageName: node linkType: hard -"@react-navigation/native@npm:^6.1.17": - version: 6.1.18 - resolution: "@react-navigation/native@npm:6.1.18" +"@tensorflow/tfjs-vis@npm:^1.5.1": + version: 1.5.1 + resolution: "@tensorflow/tfjs-vis@npm:1.5.1" dependencies: - "@react-navigation/core": ^6.4.17 - escape-string-regexp: ^4.0.0 - fast-deep-equal: ^3.1.3 - nanoid: ^3.1.23 + d3-format: ~1.3.0 + d3-selection: ~1.3.0 + glamor: ~2.20.40 + preact: ~8.2.9 + vega: 5.20.0 + vega-embed: 6.17.0 + vega-lite: 4.13.1 peerDependencies: - react: "*" - react-native: "*" - checksum: 82aeea67723f5dc41403e1c260f04942696f6cde95e30629c383521c3837d18d2d5c21bd78f0ade50beb81ac5edca2d7d38980dcd3a79e3acc86f45d0c09a4b8 + "@tensorflow/tfjs-core": ">= 1.0.0" + checksum: cc50525ac7510143dc7e633b88b1af29ab816b83ff92a32dd365a787bb4d90f536ec8a0184e2a77464458a9bb93b7cb3e833c2e51454927b51708670774daaa6 languageName: node linkType: hard -"@react-navigation/routers@npm:^6.1.9": - version: 6.1.9 - resolution: "@react-navigation/routers@npm:6.1.9" +"@tensorflow/tfjs@npm:^4.22.0": + version: 4.22.0 + resolution: "@tensorflow/tfjs@npm:4.22.0" dependencies: - nanoid: ^3.1.23 - checksum: 3a3392ce095d6a2bd2aad69856f513b35774f943a3dc73d8ffb75127de6773203e3264188d87058bdea4c0c9a7d43ed28d0cbf3a1f1cdc086df3ee255d8e1e27 + "@tensorflow/tfjs-backend-cpu": 4.22.0 + "@tensorflow/tfjs-backend-webgl": 4.22.0 + "@tensorflow/tfjs-converter": 4.22.0 + "@tensorflow/tfjs-core": 4.22.0 + "@tensorflow/tfjs-data": 4.22.0 + "@tensorflow/tfjs-layers": 4.22.0 + argparse: ^1.0.10 + chalk: ^4.1.0 + core-js: 3.29.1 + regenerator-runtime: ^0.13.5 + yargs: ^16.0.3 + bin: + tfjs-custom-module: dist/tools/custom_module/cli.js + checksum: 725afe0b4099ac3aef0d508019b195f4f2bcd3ed6a0384b39ced6113d65698d4f251b7d417ac751a5e5db2b275efccfbd53b495fff04a82459fa548f5085dfac languageName: node linkType: hard -"@react-navigation/stack@npm:^6.4.0": - version: 6.4.1 - resolution: "@react-navigation/stack@npm:6.4.1" +"@tootallnate/quickjs-emscripten@npm:^0.23.0": + version: 0.23.0 + resolution: "@tootallnate/quickjs-emscripten@npm:0.23.0" + checksum: c350a2947ffb80b22e14ff35099fd582d1340d65723384a0fd0515e905e2534459ad2f301a43279a37308a27c99273c932e64649abd57d0bb3ca8c557150eccc + languageName: node + linkType: hard + +"@ts-morph/common@npm:~0.23.0": + version: 0.23.0 + resolution: "@ts-morph/common@npm:0.23.0" dependencies: - "@react-navigation/elements": ^1.3.31 - color: ^4.2.3 - warn-once: ^0.1.0 - peerDependencies: - "@react-navigation/native": ^6.0.0 - react: "*" - react-native: "*" - react-native-gesture-handler: ">= 1.0.0" - react-native-safe-area-context: ">= 3.0.0" - react-native-screens: ">= 3.0.0" - checksum: 09bcfb001db0f411df881da9f2551b7015c4d5259a77fcb93196de308838035d016dc4dcb654d16d9cd4cc99f09f5e48add796aa903f9a253678947c35b18199 + fast-glob: ^3.3.2 + minimatch: ^9.0.3 + mkdirp: ^3.0.1 + path-browserify: ^1.0.1 + checksum: 96463742ec1114900901ded8aecc2c9664b20119454a56c896042e6a5e5b153af1d986467362d737ed0130506aeac9655731922dc8c4e851a16f9c1a8a8099b4 languageName: node linkType: hard -"@react-three/fiber@npm:9.4.0": - version: 9.4.0 - resolution: "@react-three/fiber@npm:9.4.0" +"@ts-morph/common@npm:~0.28.1": + version: 0.28.1 + resolution: "@ts-morph/common@npm:0.28.1" dependencies: - "@babel/runtime": ^7.17.8 - "@types/react-reconciler": ^0.32.0 - "@types/webxr": "*" - base64-js: ^1.5.1 - buffer: ^6.0.3 - its-fine: ^2.0.0 - react-reconciler: ^0.31.0 - react-use-measure: ^2.1.7 - scheduler: ^0.25.0 - suspend-react: ^0.1.3 - use-sync-external-store: ^1.4.0 - zustand: ^5.0.3 - peerDependencies: - expo: ">=43.0" - expo-asset: ">=8.4" - expo-file-system: ">=11.0" - expo-gl: ">=11.0" - react: ^19.0.0 - react-dom: ^19.0.0 - react-native: ">=0.78" - three: ">=0.156" - peerDependenciesMeta: - expo: - optional: true - expo-asset: - optional: true - expo-file-system: - optional: true - expo-gl: - optional: true - react-dom: - optional: true - react-native: - optional: true - checksum: 594919addbc67c12becbe9272e86be7aa7eba7d72528afcd1bf6724ee60a17d0dc473cfea9cd296b094f7a6d306fa9c8cbe540899486c79edbe681b7f1e9dd0a + minimatch: ^10.0.1 + path-browserify: ^1.0.1 + tinyglobby: ^0.2.14 + checksum: bc3e879ff55fe8fe460d49124d10f74aba4ec92c261b7f65d48153a107e1b733676bb89e1c55fa4e5c045fe055c6c5247f7d340aaf1db1a44ffaf32ca2a00ec5 + languageName: node + linkType: hard + +"@tweenjs/tween.js@npm:~23.1.3": + version: 23.1.3 + resolution: "@tweenjs/tween.js@npm:23.1.3" + checksum: 2f8a908b275bb6729bde4b863c277bf7411d2e0302ceb0455369479077b89eaf8380cd9206b91ff574416418a95c6f06db4e1ddea732a286d0db0ba8e7c093d3 languageName: node linkType: hard -"@react-three/fiber@patch:@react-three/fiber@npm%3A9.4.0#./.yarn/patches/@react-three-fiber-npm-9.4.0-77fe8ee9bd.patch::locator=react-native-webgpu-monorepo%40workspace%3A.": - version: 9.4.0 - resolution: "@react-three/fiber@patch:@react-three/fiber@npm%3A9.4.0#./.yarn/patches/@react-three-fiber-npm-9.4.0-77fe8ee9bd.patch::version=9.4.0&hash=7de131&locator=react-native-webgpu-monorepo%40workspace%3A." +"@tybys/wasm-util@npm:^0.10.0": + version: 0.10.1 + resolution: "@tybys/wasm-util@npm:0.10.1" dependencies: - "@babel/runtime": ^7.17.8 - "@types/react-reconciler": ^0.32.0 - "@types/webxr": "*" - base64-js: ^1.5.1 - buffer: ^6.0.3 - its-fine: ^2.0.0 - react-reconciler: ^0.31.0 - react-use-measure: ^2.1.7 - scheduler: ^0.25.0 - suspend-react: ^0.1.3 - use-sync-external-store: ^1.4.0 - zustand: ^5.0.3 - peerDependencies: - expo: ">=43.0" - expo-asset: ">=8.4" - expo-file-system: ">=11.0" - expo-gl: ">=11.0" - react: ^19.0.0 - react-dom: ^19.0.0 - react-native: ">=0.78" - three: ">=0.156" - peerDependenciesMeta: - expo: - optional: true - expo-asset: - optional: true - expo-file-system: - optional: true - expo-gl: - optional: true - react-dom: - optional: true - react-native: - optional: true - checksum: 62517c19c24754b1beb952671f27d21017e90717321265cf80343939b8d5c86d97719734fd9c52b89f5ee66256074a65d11ac99a056f5bcdd9688d41b216ab8c + tslib: ^2.4.0 + checksum: b8b281ffa9cd01cb6d45a4dddca2e28fd0cb6ad67cf091ba4a73ac87c0d6bd6ce188c332c489e87c20b0750b0b6fe3b99e30e1cd2227ec16da692f51c778944e languageName: node linkType: hard -"@rnx-kit/chromium-edge-launcher@npm:^1.0.0": - version: 1.0.0 - resolution: "@rnx-kit/chromium-edge-launcher@npm:1.0.0" +"@tybys/wasm-util@npm:^0.10.1": + version: 0.10.2 + resolution: "@tybys/wasm-util@npm:0.10.2" dependencies: - "@types/node": ^18.0.0 - escape-string-regexp: ^4.0.0 - is-wsl: ^2.2.0 - lighthouse-logger: ^1.0.0 - mkdirp: ^1.0.4 - rimraf: ^3.0.2 - checksum: c72113e32c222af94482a60e7cea8d296360abbc503afa64394af65ca106c7a36d975a68fed63e8cf5668ffebc33fa636665ceaf55c75d4cf949fb40302fc409 + tslib: ^2.4.0 + checksum: acff4b9d831efcb4292e4c1562accc3921d004e3edba3b2d05f7ab9313f42294d49ff46eacafd93df6f32e0736466d52e435ed0210073d77e826210ea2d31be3 languageName: node linkType: hard -"@rnx-kit/metro-config@npm:^2.0.0": - version: 2.2.2 - resolution: "@rnx-kit/metro-config@npm:2.2.2" - dependencies: - "@rnx-kit/tools-node": ^3.0.0 - "@rnx-kit/tools-react-native": ^2.3.1 - "@rnx-kit/tools-workspaces": ^0.2.0 +"@typegpu/react@npm:^0.11.0": + version: 0.11.0 + resolution: "@typegpu/react@npm:0.11.0" peerDependencies: - "@react-native/metro-config": "*" - react: "*" + react: ^19.0.0 react-native: "*" + react-native-wgpu: "*" + typegpu: ^0.11.3 peerDependenciesMeta: - "@react-native/metro-config": + react-native: optional: true - checksum: 20ebb7aaff667c9dbb2b2ba77d43bdfe0209628702c912648f12ce2d9b28f5c85698b5474d60ab65f2032a5523e66bf7c39c2a0ab7512ab427461d53b1992df1 + react-native-wgpu: + optional: true + checksum: b30080da12409be8a9ba4cb01afd5da436747d12abd136c44aaae8482ab425ba3f6c9c6091b6adcb8b108ab3fbbe3aeb40ad00e125e24dbff6170fce09fead80 languageName: node linkType: hard -"@rnx-kit/react-native-host@npm:^0.5.11": - version: 0.5.15 - resolution: "@rnx-kit/react-native-host@npm:0.5.15" - peerDependencies: - react-native: ">=0.66" - checksum: 772ef4d7155fbedcd01de96dd70abb6b0c25d8a8f00e8e26e09deb5ffa0251fd0c3f9eaabdd802ac4710aae01730e5940925088cf1df1e4edf52fe3823d990d6 +"@types/babel__core@npm:^7.1.14": + version: 7.20.5 + resolution: "@types/babel__core@npm:7.20.5" + dependencies: + "@babel/parser": ^7.20.7 + "@babel/types": ^7.20.7 + "@types/babel__generator": "*" + "@types/babel__template": "*" + "@types/babel__traverse": "*" + checksum: a3226f7930b635ee7a5e72c8d51a357e799d19cbf9d445710fa39ab13804f79ab1a54b72ea7d8e504659c7dfc50675db974b526142c754398d7413aa4bc30845 languageName: node linkType: hard -"@rnx-kit/tools-node@npm:^3.0.0, @rnx-kit/tools-node@npm:^3.0.3": - version: 3.0.3 - resolution: "@rnx-kit/tools-node@npm:3.0.3" - checksum: 658b17db3c52417dfe9fb41f5483f9b74d2d7ab130427b104a740b9cc41aedf727a48e191e5f8c3c5b61b7d662f71fc7571f9f106b3c3adcd8b7ff8df03da881 +"@types/babel__generator@npm:*": + version: 7.27.0 + resolution: "@types/babel__generator@npm:7.27.0" + dependencies: + "@babel/types": ^7.0.0 + checksum: e6739cacfa276c1ad38e1d8a6b4b1f816c2c11564e27f558b68151728489aaf0f4366992107ee4ed7615dfa303f6976dedcdce93df2b247116d1bcd1607ee260 languageName: node linkType: hard -"@rnx-kit/tools-react-native@npm:^2.1.0, @rnx-kit/tools-react-native@npm:^2.3.1": - version: 2.3.2 - resolution: "@rnx-kit/tools-react-native@npm:2.3.2" +"@types/babel__template@npm:*": + version: 7.4.4 + resolution: "@types/babel__template@npm:7.4.4" dependencies: - "@rnx-kit/tools-node": ^3.0.3 - checksum: 530caf9f27dc0d948cc62b5b1a3a99935ade9c503aa77864272e2f6450a1645e3fca15801120d0b3f964d781a66872aff7678ca4dda09ae0eaef5cbeb8129bf9 + "@babel/parser": ^7.1.0 + "@babel/types": ^7.0.0 + checksum: d7a02d2a9b67e822694d8e6a7ddb8f2b71a1d6962dfd266554d2513eefbb205b33ca71a0d163b1caea3981ccf849211f9964d8bd0727124d18ace45aa6c9ae29 languageName: node linkType: hard -"@rnx-kit/tools-workspaces@npm:^0.2.0": - version: 0.2.3 - resolution: "@rnx-kit/tools-workspaces@npm:0.2.3" +"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6": + version: 7.28.0 + resolution: "@types/babel__traverse@npm:7.28.0" dependencies: - fast-glob: ^3.2.7 - find-up: ^5.0.0 - micromatch: ^4.0.0 - read-yaml-file: ^2.1.0 - strip-json-comments: ^3.1.1 - checksum: d93367822178ed97da29aba1da8efb376d9cfad3f026cfbb869232c2fde09dc9e2e873ba5b50fbb06cc4d8675fa3e5d0d146fbe5065287f4fdfc2c836fdd4b8d + "@babel/types": ^7.28.2 + checksum: e3124e6575b2f70de338eab8a9c704d315a86c46a8e395b6ec78a0157ab7b5fd877289556a57dcf28e4ff3543714e359cc1182d4afc4bcb4f3575a0bbafa0dad languageName: node linkType: hard -"@rtsao/scc@npm:^1.1.0": - version: 1.1.0 - resolution: "@rtsao/scc@npm:1.1.0" - checksum: 17d04adf404e04c1e61391ed97bca5117d4c2767a76ae3e879390d6dec7b317fcae68afbf9e98badee075d0b64fa60f287729c4942021b4d19cd01db77385c01 +"@types/clone@npm:~0.1.30": + version: 0.1.30 + resolution: "@types/clone@npm:0.1.30" + checksum: 5e036c4a2b380ca0af5c471cdf20487ab0b407e2fadad785ce328e156d11b42873169fa1192801fba91a4d15e1508999aa3f16030dce40fe08cc99701ac83875 languageName: node linkType: hard -"@shopify/react-native-skia@npm:2.6.2": - version: 2.6.2 - resolution: "@shopify/react-native-skia@npm:2.6.2" - dependencies: - canvaskit-wasm: 0.41.0 - react-native-skia-android: 147.1.0 - react-native-skia-apple-ios: 147.1.0 - react-native-skia-apple-macos: 147.1.0 - react-native-skia-apple-tvos: 147.1.0 - react-reconciler: 0.31.0 - peerDependencies: - react: ">=19.0" - react-native: ">=0.78" - react-native-reanimated: ">=3.19.1" - peerDependenciesMeta: - react-native: - optional: true - react-native-reanimated: - optional: true - bin: - install-skia: scripts/install-libs.js - setup-skia-web: scripts/setup-canvaskit.js - checksum: 12fcd7eaf706fcd222498fa22ba73af2eda214931b7fdc7b16cf5e9713de04ca55639df7be5bb57f91c5a4808a0f3946e7ab56453840cb6436def00e8e125523 +"@types/d3-array@npm:*": + version: 3.2.2 + resolution: "@types/d3-array@npm:3.2.2" + checksum: 72e8e2abe0911cb431d6f3fe0a1f71b915356b679d4d9c826f52941bb30210c0fe8299dde066b08d9986754c620f031b13b13ab6dfc60d404eceab66a075dd5d languageName: node linkType: hard -"@sideway/address@npm:^4.1.5": - version: 4.1.5 - resolution: "@sideway/address@npm:4.1.5" +"@types/d3-axis@npm:*": + version: 3.0.6 + resolution: "@types/d3-axis@npm:3.0.6" dependencies: - "@hapi/hoek": ^9.0.0 - checksum: 3e3ea0f00b4765d86509282290368a4a5fd39a7995fdc6de42116ca19a96120858e56c2c995081def06e1c53e1f8bccc7d013f6326602bec9d56b72ee2772b9d + "@types/d3-selection": "*" + checksum: ea1065d9e6d134c04427763603cbe9d549b8b5785b8ae0d002b5b14a362619d5b8f5ee3c2fda8b36b7e5a413cbcd387e1a2d89898b919a9f0cc91ad4e67b5ab5 languageName: node linkType: hard -"@sideway/formula@npm:^3.0.1": - version: 3.0.1 - resolution: "@sideway/formula@npm:3.0.1" - checksum: e4beeebc9dbe2ff4ef0def15cec0165e00d1612e3d7cea0bc9ce5175c3263fc2c818b679bd558957f49400ee7be9d4e5ac90487e1625b4932e15c4aa7919c57a +"@types/d3-brush@npm:*": + version: 3.0.6 + resolution: "@types/d3-brush@npm:3.0.6" + dependencies: + "@types/d3-selection": "*" + checksum: e5166bc53e5c914b1fed0a6ce55ca14d76ae11c5afd16b724b8ae47989e977c4af02bb07496d1ccd0a77f4ccd9a2ca7345e1d289bcfce16490fe4b39a9e0d170 languageName: node linkType: hard -"@sideway/pinpoint@npm:^2.0.0": - version: 2.0.0 - resolution: "@sideway/pinpoint@npm:2.0.0" - checksum: 0f4491e5897fcf5bf02c46f5c359c56a314e90ba243f42f0c100437935daa2488f20482f0f77186bd6bf43345095a95d8143ecf8b1f4d876a7bc0806aba9c3d2 +"@types/d3-chord@npm:*": + version: 3.0.6 + resolution: "@types/d3-chord@npm:3.0.6" + checksum: b511cf372ed8a0086d37a715c0d4aca811b614454e1f7c1561fbcd46863beaccdb115d274a7a992a30a8218393fbc3e1fdd7ca6e9d572e729a4570002c327083 languageName: node linkType: hard -"@sinclair/typebox@npm:^0.27.8": - version: 0.27.8 - resolution: "@sinclair/typebox@npm:0.27.8" - checksum: 00bd7362a3439021aa1ea51b0e0d0a0e8ca1351a3d54c606b115fdcc49b51b16db6e5f43b4fe7a28c38688523e22a94d49dd31168868b655f0d4d50f032d07a1 +"@types/d3-color@npm:*": + version: 3.1.3 + resolution: "@types/d3-color@npm:3.1.3" + checksum: 8a0e79a709929502ec4effcee2c786465b9aec51b653ba0b5d05dbfec3e84f418270dd603002d94021885061ff592f614979193bd7a02ad76317f5608560e357 languageName: node linkType: hard -"@sinonjs/commons@npm:^3.0.0": - version: 3.0.1 - resolution: "@sinonjs/commons@npm:3.0.1" +"@types/d3-contour@npm:*": + version: 3.0.6 + resolution: "@types/d3-contour@npm:3.0.6" dependencies: - type-detect: 4.0.8 - checksum: a7c3e7cc612352f4004873747d9d8b2d4d90b13a6d483f685598c945a70e734e255f1ca5dc49702515533c403b32725defff148177453b3f3915bcb60e9d4601 + "@types/d3-array": "*" + "@types/geojson": "*" + checksum: 83c13eb0567e95d6675d6d81cbeab38d0899c5af70a7c69354e23e0860ddb2f3e911d2cacd33a8baa60ce7846b38785a337b2d7c8d2763a1340bfb999b4bd2ab languageName: node linkType: hard -"@sinonjs/fake-timers@npm:^10.0.2": - version: 10.3.0 - resolution: "@sinonjs/fake-timers@npm:10.3.0" - dependencies: - "@sinonjs/commons": ^3.0.0 - checksum: 614d30cb4d5201550c940945d44c9e0b6d64a888ff2cd5b357f95ad6721070d6b8839cd10e15b76bf5e14af0bcc1d8f9ec00d49a46318f1f669a4bec1d7f3148 +"@types/d3-delaunay@npm:*": + version: 6.0.4 + resolution: "@types/d3-delaunay@npm:6.0.4" + checksum: 502fe0eb91f7d05b0f57904d68028c24348a54b1e5458009caf662de995d0e59bd82cd701b4af0087d614ee9e456d415fe32d63c25272ca753bf12b3f27b2d77 languageName: node linkType: hard -"@tensorflow/tfjs-backend-cpu@npm:4.22.0": - version: 4.22.0 - resolution: "@tensorflow/tfjs-backend-cpu@npm:4.22.0" - dependencies: - "@types/seedrandom": ^2.4.28 - seedrandom: ^3.0.5 - peerDependencies: - "@tensorflow/tfjs-core": 4.22.0 - checksum: afa375b7d752e145fee025270f2c848504987cf8e54f787736bfde968853428c0c8e4539205beee4c59443459c0a4cd150021aa613b48f40547987a94c7d7e04 +"@types/d3-dispatch@npm:*": + version: 3.0.7 + resolution: "@types/d3-dispatch@npm:3.0.7" + checksum: ce7ab5a7d5c64aacf563797c0c61f3862b9ff687cb35470fe462219f09e402185646f51707339beede616586d92ded6974c3958dbeb15e35a85b1ecfafdf13a8 languageName: node linkType: hard -"@tensorflow/tfjs-backend-webgl@npm:4.22.0": - version: 4.22.0 - resolution: "@tensorflow/tfjs-backend-webgl@npm:4.22.0" +"@types/d3-drag@npm:*": + version: 3.0.7 + resolution: "@types/d3-drag@npm:3.0.7" dependencies: - "@tensorflow/tfjs-backend-cpu": 4.22.0 - "@types/offscreencanvas": ~2019.3.0 - "@types/seedrandom": ^2.4.28 - seedrandom: ^3.0.5 - peerDependencies: - "@tensorflow/tfjs-core": 4.22.0 - checksum: 16da253bc53e3ac97f6da40257794f24e7831ee7e362be397c8c004084ab2db25f7803bfee0d9b57d60961ce1146f2dc9c94b26570c5f8cfd7eab2fc89e93f59 + "@types/d3-selection": "*" + checksum: 1107cb1667ead79073741c06ea4a9e8e4551698f6c9c60821e327a6aa30ca2ba0b31a6fe767af85a2e38a22d2305f6c45b714df15c2bba68adf58978223a5fc5 languageName: node linkType: hard -"@tensorflow/tfjs-backend-webgpu@npm:^4.22.0": - version: 4.22.0 - resolution: "@tensorflow/tfjs-backend-webgpu@npm:4.22.0" +"@types/d3-dsv@npm:*": + version: 3.0.7 + resolution: "@types/d3-dsv@npm:3.0.7" + checksum: 5025e01459827d09d14e0d00281995a04042ce9e3e76444c5a65466c1d29649d82cbfaa9251e33837bf576f5c587525d8d8ff5aacc6bd3b831824d54449261b9 + languageName: node + linkType: hard + +"@types/d3-ease@npm:*": + version: 3.0.2 + resolution: "@types/d3-ease@npm:3.0.2" + checksum: 0885219966294bfc99548f37297e1c75e75da812a5f3ec941977ebb57dcab0a25acec5b2bbd82d09a49d387daafca08521ca269b7e4c27ddca7768189e987b54 + languageName: node + linkType: hard + +"@types/d3-fetch@npm:*": + version: 3.0.7 + resolution: "@types/d3-fetch@npm:3.0.7" dependencies: - "@tensorflow/tfjs-backend-cpu": 4.22.0 - peerDependencies: - "@tensorflow/tfjs-core": 4.22.0 - checksum: da9f3c3db9a78d5e6c3c332cd33716bc6b7dbc6fdc0237bf899587936c07a1f483da9ffc43ffad86ee9f7af8619cab7c421c2de9bd2f9c128a185e462b6ae9da + "@types/d3-dsv": "*" + checksum: e60cf60b25cbc49b2066ac2a3638f610c7379000562b0f499dd90fd57a8cb9740c24667a70496c2a66456d42867afeffb1722a75b26d95e7d7ee8667d96b0b36 languageName: node linkType: hard -"@tensorflow/tfjs-converter@npm:4.22.0": - version: 4.22.0 - resolution: "@tensorflow/tfjs-converter@npm:4.22.0" - peerDependencies: - "@tensorflow/tfjs-core": 4.22.0 - checksum: 918d3e11eed19cda41f785a3964619bfeeb40da6c3ad24a5028ac71c2abeaab7e201778bdbed94545e4b08931a08ff194bfecfde1131cf5c4837a0818e2cd508 +"@types/d3-force@npm:*": + version: 3.0.10 + resolution: "@types/d3-force@npm:3.0.10" + checksum: 0faf1321ddd85f7bf25769ee97513b380a897791ad1cd6c4282f09e0108e566132fad80f4c73cdb592a352139b22388d3c77458298a00f92ef72e27019fb33c7 languageName: node linkType: hard -"@tensorflow/tfjs-core@npm:4.22.0": - version: 4.22.0 - resolution: "@tensorflow/tfjs-core@npm:4.22.0" +"@types/d3-format@npm:*": + version: 3.0.4 + resolution: "@types/d3-format@npm:3.0.4" + checksum: e69421cd93861a0c080084b0b23d4a5d6a427497559e46898189002fb756dae2c7c858b465308f6bcede7272b90e39ce8adab810bded2309035a5d9556c59134 + languageName: node + linkType: hard + +"@types/d3-geo@npm:*": + version: 3.1.0 + resolution: "@types/d3-geo@npm:3.1.0" dependencies: - "@types/long": ^4.0.1 - "@types/offscreencanvas": ~2019.7.0 - "@types/seedrandom": ^2.4.28 - "@webgpu/types": 0.1.38 - long: 4.0.0 - node-fetch: ~2.6.1 - seedrandom: ^3.0.5 - checksum: 3efe6fc6020911ea06e387bc7228e73bb4bb33e2440c7a970369be8952ba3ac3f4ef5a3cd78a2e382702de0a3b8f097869e4e3a3e7dd65fa93e3f78d15d6b334 + "@types/geojson": "*" + checksum: a4b2daa8a64012912ce7186891e8554af123925dca344c111b771e168a37477e02d504c6c94ee698440380e8c4f3f373d6755be97935da30eae0904f6745ce40 + languageName: node + linkType: hard + +"@types/d3-hierarchy@npm:*": + version: 3.1.7 + resolution: "@types/d3-hierarchy@npm:3.1.7" + checksum: 69746b3a65e0fe0ceb3ffcb1a8840a61e271eadb32eccb5034f0fce036d24801aef924ee45b99246580c9f7c81839ab0555f776a11773d82e860d522a2ff1c0e + languageName: node + linkType: hard + +"@types/d3-interpolate@npm:*": + version: 3.0.4 + resolution: "@types/d3-interpolate@npm:3.0.4" + dependencies: + "@types/d3-color": "*" + checksum: efd2770e174e84fc7316fdafe03cf3688451f767dde1fa6211610137f495be7f3923db7e1723a6961a0e0e9ae0ed969f4f47c038189fa0beb1d556b447922622 languageName: node linkType: hard -"@tensorflow/tfjs-data@npm:4.22.0": - version: 4.22.0 - resolution: "@tensorflow/tfjs-data@npm:4.22.0" - dependencies: - "@types/node-fetch": ^2.1.2 - node-fetch: ~2.6.1 - string_decoder: ^1.3.0 - peerDependencies: - "@tensorflow/tfjs-core": 4.22.0 - seedrandom: ^3.0.5 - checksum: b20770a79222688f7a1349c0c19fc913424ea095c6d1d329625a4cd4c80a1ff3d988e3a845ab2f2823c72a7990f6b070cbce4e638a42fe4d2385b420477aa36b +"@types/d3-path@npm:*": + version: 3.1.1 + resolution: "@types/d3-path@npm:3.1.1" + checksum: fee8f6b0d3b28a3611c7d7fda3bf2f79392ded266f54b03a220f205c42117644bdcd33dcbf4853da3cca02229f1c669d2a60d5d297a24ce459ba8271ccb26c03 languageName: node linkType: hard -"@tensorflow/tfjs-layers@npm:4.22.0": - version: 4.22.0 - resolution: "@tensorflow/tfjs-layers@npm:4.22.0" - peerDependencies: - "@tensorflow/tfjs-core": 4.22.0 - checksum: 88253be2b91dadb9264303d2260fe6160e753fabf4642c290d26c451385363ce8d0ad150d5a3070e52645d4ba061c2e63b6dda67d3bf3257a36e65ab8fd3d69a +"@types/d3-polygon@npm:*": + version: 3.0.2 + resolution: "@types/d3-polygon@npm:3.0.2" + checksum: 7cf1eadb54f02dd3617512b558f4c0f3811f8a6a8c887d9886981c3cc251db28b68329b2b0707d9f517231a72060adbb08855227f89bef6ef30caedc0a67cab2 languageName: node linkType: hard -"@tensorflow/tfjs-vis@npm:^1.5.1": - version: 1.5.1 - resolution: "@tensorflow/tfjs-vis@npm:1.5.1" - dependencies: - d3-format: ~1.3.0 - d3-selection: ~1.3.0 - glamor: ~2.20.40 - preact: ~8.2.9 - vega: 5.20.0 - vega-embed: 6.17.0 - vega-lite: 4.13.1 - peerDependencies: - "@tensorflow/tfjs-core": ">= 1.0.0" - checksum: cc50525ac7510143dc7e633b88b1af29ab816b83ff92a32dd365a787bb4d90f536ec8a0184e2a77464458a9bb93b7cb3e833c2e51454927b51708670774daaa6 +"@types/d3-quadtree@npm:*": + version: 3.0.6 + resolution: "@types/d3-quadtree@npm:3.0.6" + checksum: 631fb1a50dbe4fb0c97574891b180ec3d6a0f524bbd8aee8dfd44eda405e7ed1ca2b03d5568a35f697d09e5e4b598117e149236874b0c8764979a3d6242bb0bc languageName: node linkType: hard -"@tensorflow/tfjs@npm:^4.22.0": - version: 4.22.0 - resolution: "@tensorflow/tfjs@npm:4.22.0" - dependencies: - "@tensorflow/tfjs-backend-cpu": 4.22.0 - "@tensorflow/tfjs-backend-webgl": 4.22.0 - "@tensorflow/tfjs-converter": 4.22.0 - "@tensorflow/tfjs-core": 4.22.0 - "@tensorflow/tfjs-data": 4.22.0 - "@tensorflow/tfjs-layers": 4.22.0 - argparse: ^1.0.10 - chalk: ^4.1.0 - core-js: 3.29.1 - regenerator-runtime: ^0.13.5 - yargs: ^16.0.3 - bin: - tfjs-custom-module: dist/tools/custom_module/cli.js - checksum: 725afe0b4099ac3aef0d508019b195f4f2bcd3ed6a0384b39ced6113d65698d4f251b7d417ac751a5e5db2b275efccfbd53b495fff04a82459fa548f5085dfac +"@types/d3-random@npm:*": + version: 3.0.3 + resolution: "@types/d3-random@npm:3.0.3" + checksum: 33285b57768a724d2466ac1deec002432805c9df3e475ffb7f7fec66681cfe3e18d2f68b7f8ba45f400b274907bbebfe8adff14c9a97ef1987e476135e784925 languageName: node linkType: hard -"@tootallnate/quickjs-emscripten@npm:^0.23.0": - version: 0.23.0 - resolution: "@tootallnate/quickjs-emscripten@npm:0.23.0" - checksum: c350a2947ffb80b22e14ff35099fd582d1340d65723384a0fd0515e905e2534459ad2f301a43279a37308a27c99273c932e64649abd57d0bb3ca8c557150eccc +"@types/d3-scale-chromatic@npm:*": + version: 3.1.0 + resolution: "@types/d3-scale-chromatic@npm:3.1.0" + checksum: cb7b86deac077c7c217a52a3f658cdfb812cff8708404fbfe54918c03ead545e1df87df377e9c4eab21c9d6c1aeee6471320e02a5b6b27e2e3f786a12a82ab02 languageName: node linkType: hard -"@ts-morph/common@npm:~0.23.0": - version: 0.23.0 - resolution: "@ts-morph/common@npm:0.23.0" +"@types/d3-scale@npm:*": + version: 4.0.9 + resolution: "@types/d3-scale@npm:4.0.9" dependencies: - fast-glob: ^3.3.2 - minimatch: ^9.0.3 - mkdirp: ^3.0.1 - path-browserify: ^1.0.1 - checksum: 96463742ec1114900901ded8aecc2c9664b20119454a56c896042e6a5e5b153af1d986467362d737ed0130506aeac9655731922dc8c4e851a16f9c1a8a8099b4 + "@types/d3-time": "*" + checksum: c44265a38e538983686b1b8d159abfb4e81c09b33316f3a68f0f372d38400fa950ad531644d25230cc7b48ea5adb50270fc54823f088979ade62dcd0225f7aa3 languageName: node linkType: hard -"@tweenjs/tween.js@npm:~23.1.3": - version: 23.1.3 - resolution: "@tweenjs/tween.js@npm:23.1.3" - checksum: 2f8a908b275bb6729bde4b863c277bf7411d2e0302ceb0455369479077b89eaf8380cd9206b91ff574416418a95c6f06db4e1ddea732a286d0db0ba8e7c093d3 +"@types/d3-selection@npm:*": + version: 3.0.11 + resolution: "@types/d3-selection@npm:3.0.11" + checksum: 4b76630f76dffdafc73cdc786d73e7b4c96f40546483074b3da0e7fe83fd7f5ed9bc6c50f79bcef83595f943dcc9ed6986953350f39371047af644cc39c41b43 languageName: node linkType: hard -"@tybys/wasm-util@npm:^0.10.0": - version: 0.10.1 - resolution: "@tybys/wasm-util@npm:0.10.1" +"@types/d3-shape@npm:*": + version: 3.1.8 + resolution: "@types/d3-shape@npm:3.1.8" dependencies: - tslib: ^2.4.0 - checksum: b8b281ffa9cd01cb6d45a4dddca2e28fd0cb6ad67cf091ba4a73ac87c0d6bd6ce188c332c489e87c20b0750b0b6fe3b99e30e1cd2227ec16da692f51c778944e + "@types/d3-path": "*" + checksum: 659d51882dccc85d24817bdbcd50589212d12e24eb2aad19bae073665ed25443026e120966faa8523f0412f8a30f7c16002499cea3eb87d25b3011e0ee42e6a2 languageName: node linkType: hard -"@typegpu/react@npm:^0.11.0": - version: 0.11.0 - resolution: "@typegpu/react@npm:0.11.0" - peerDependencies: - react: ^19.0.0 - react-native: "*" - react-native-wgpu: "*" - typegpu: ^0.11.3 - peerDependenciesMeta: - react-native: - optional: true - react-native-wgpu: - optional: true - checksum: b30080da12409be8a9ba4cb01afd5da436747d12abd136c44aaae8482ab425ba3f6c9c6091b6adcb8b108ab3fbbe3aeb40ad00e125e24dbff6170fce09fead80 +"@types/d3-time-format@npm:*": + version: 4.0.3 + resolution: "@types/d3-time-format@npm:4.0.3" + checksum: e981fc9780697a9d8c5d1ddf1167d9c6bc28e4e610afddff1384fe55e6eb52cb65309b2a0a1d4cf817413b0a80b9f1a652fe0b2cb8054ace4eafff80a6093aa5 languageName: node linkType: hard -"@types/babel__core@npm:^7.1.14": - version: 7.20.5 - resolution: "@types/babel__core@npm:7.20.5" - dependencies: - "@babel/parser": ^7.20.7 - "@babel/types": ^7.20.7 - "@types/babel__generator": "*" - "@types/babel__template": "*" - "@types/babel__traverse": "*" - checksum: a3226f7930b635ee7a5e72c8d51a357e799d19cbf9d445710fa39ab13804f79ab1a54b72ea7d8e504659c7dfc50675db974b526142c754398d7413aa4bc30845 +"@types/d3-time@npm:*": + version: 3.0.4 + resolution: "@types/d3-time@npm:3.0.4" + checksum: 0c296884571ce70c4bbd4ea9cd1c93c0c8aee602c6c806b056187dd4ee49daf70c2f41da94b25ba0d796edf8ca83cbb87fe6d1cdda7ca669ab800170ece1c12b languageName: node linkType: hard -"@types/babel__generator@npm:*": - version: 7.27.0 - resolution: "@types/babel__generator@npm:7.27.0" +"@types/d3-timer@npm:*": + version: 3.0.2 + resolution: "@types/d3-timer@npm:3.0.2" + checksum: 1643eebfa5f4ae3eb00b556bbc509444d88078208ec2589ddd8e4a24f230dd4cf2301e9365947e70b1bee33f63aaefab84cd907822aae812b9bc4871b98ab0e1 + languageName: node + linkType: hard + +"@types/d3-transition@npm:*": + version: 3.0.9 + resolution: "@types/d3-transition@npm:3.0.9" dependencies: - "@babel/types": ^7.0.0 - checksum: e6739cacfa276c1ad38e1d8a6b4b1f816c2c11564e27f558b68151728489aaf0f4366992107ee4ed7615dfa303f6976dedcdce93df2b247116d1bcd1607ee260 + "@types/d3-selection": "*" + checksum: c8608b1ac7cf09acfe387f3d41074631adcdfd7f2c8ca2efb378309adf0e9fc8469dbcf0d7a8c40fd1f03f2d2bf05fcda0cde7aa356ae8533a141dcab4dff221 languageName: node linkType: hard -"@types/babel__template@npm:*": - version: 7.4.4 - resolution: "@types/babel__template@npm:7.4.4" +"@types/d3-zoom@npm:*": + version: 3.0.8 + resolution: "@types/d3-zoom@npm:3.0.8" dependencies: - "@babel/parser": ^7.1.0 - "@babel/types": ^7.0.0 - checksum: d7a02d2a9b67e822694d8e6a7ddb8f2b71a1d6962dfd266554d2513eefbb205b33ca71a0d163b1caea3981ccf849211f9964d8bd0727124d18ace45aa6c9ae29 + "@types/d3-interpolate": "*" + "@types/d3-selection": "*" + checksum: a1685728949ed39faf8ce162cc13338639c57bc2fd4d55fc7902b2632cad2bc2a808941263e57ce6685647e8a6a0a556e173386a52d6bb74c9ed6195b68be3de languageName: node linkType: hard -"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6": - version: 7.28.0 - resolution: "@types/babel__traverse@npm:7.28.0" +"@types/d3@npm:^7.4.3": + version: 7.4.3 + resolution: "@types/d3@npm:7.4.3" + dependencies: + "@types/d3-array": "*" + "@types/d3-axis": "*" + "@types/d3-brush": "*" + "@types/d3-chord": "*" + "@types/d3-color": "*" + "@types/d3-contour": "*" + "@types/d3-delaunay": "*" + "@types/d3-dispatch": "*" + "@types/d3-drag": "*" + "@types/d3-dsv": "*" + "@types/d3-ease": "*" + "@types/d3-fetch": "*" + "@types/d3-force": "*" + "@types/d3-format": "*" + "@types/d3-geo": "*" + "@types/d3-hierarchy": "*" + "@types/d3-interpolate": "*" + "@types/d3-path": "*" + "@types/d3-polygon": "*" + "@types/d3-quadtree": "*" + "@types/d3-random": "*" + "@types/d3-scale": "*" + "@types/d3-scale-chromatic": "*" + "@types/d3-selection": "*" + "@types/d3-shape": "*" + "@types/d3-time": "*" + "@types/d3-time-format": "*" + "@types/d3-timer": "*" + "@types/d3-transition": "*" + "@types/d3-zoom": "*" + checksum: 12234aa093c8661546168becdd8956e892b276f525d96f65a7b32fed886fc6a569fe5a1171bff26fef2a5663960635f460c9504a6f2d242ba281a2b6c8c6465c + languageName: node + linkType: hard + +"@types/debug@npm:^4.0.0": + version: 4.1.13 + resolution: "@types/debug@npm:4.1.13" + dependencies: + "@types/ms": "*" + checksum: 5091d4ebda85236e6f4a6ecea552860e521e11d1d388d3f6255b40726f5a4a7cf1baa0d09f60853838e4cac6c12a13b14114d5f422ccecaee4d1d07dab349900 + languageName: node + linkType: hard + +"@types/estree-jsx@npm:^1.0.0": + version: 1.0.5 + resolution: "@types/estree-jsx@npm:1.0.5" dependencies: - "@babel/types": ^7.28.2 - checksum: e3124e6575b2f70de338eab8a9c704d315a86c46a8e395b6ec78a0157ab7b5fd877289556a57dcf28e4ff3543714e359cc1182d4afc4bcb4f3575a0bbafa0dad + "@types/estree": "*" + checksum: a028ab0cd7b2950168a05c6a86026eb3a36a54a4adfae57f13911d7b49dffe573d9c2b28421b2d029b49b3d02fcd686611be2622dc3dad6d9791166c083f6008 languageName: node linkType: hard -"@types/clone@npm:~0.1.30": - version: 0.1.30 - resolution: "@types/clone@npm:0.1.30" - checksum: 5e036c4a2b380ca0af5c471cdf20487ab0b407e2fadad785ce328e156d11b42873169fa1192801fba91a4d15e1508999aa3f16030dce40fe08cc99701ac83875 +"@types/estree@npm:*": + version: 1.0.9 + resolution: "@types/estree@npm:1.0.9" + checksum: 752c0afee3ec82b8e24484bf6a27dfa093bbf3de4ef1c20ed0364fb6ad2c0c7971e7504ed9a7aaff103a47e2d945ce7a17f74951743dd944782a0735f53170de languageName: node linkType: hard @@ -4407,6 +6285,13 @@ __metadata: languageName: node linkType: hard +"@types/geojson@npm:*": + version: 7946.0.16 + resolution: "@types/geojson@npm:7946.0.16" + checksum: d66e5e023f43b3e7121448117af1930af7d06410a32a585a8bc9c6bb5d97e0d656cd93d99e31fa432976c32e98d4b780f82bf1fd1acd20ccf952eb6b8e39edf2 + languageName: node + linkType: hard + "@types/graceful-fs@npm:^4.1.3": version: 4.1.9 resolution: "@types/graceful-fs@npm:4.1.9" @@ -4423,6 +6308,15 @@ __metadata: languageName: node linkType: hard +"@types/hast@npm:^3.0.0, @types/hast@npm:^3.0.4": + version: 3.0.4 + resolution: "@types/hast@npm:3.0.4" + dependencies: + "@types/unist": "*" + checksum: 7a973e8d16fcdf3936090fa2280f408fb2b6a4f13b42edeb5fbd614efe042b82eac68e298e556d50f6b4ad585a3a93c353e9c826feccdc77af59de8dd400d044 + languageName: node + linkType: hard + "@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": version: 2.0.6 resolution: "@types/istanbul-lib-coverage@npm:2.0.6" @@ -4486,6 +6380,22 @@ __metadata: languageName: node linkType: hard +"@types/mdast@npm:^4.0.0": + version: 4.0.4 + resolution: "@types/mdast@npm:4.0.4" + dependencies: + "@types/unist": "*" + checksum: 20c4e9574cc409db662a35cba52b068b91eb696b3049e94321219d47d34c8ccc99a142be5c76c80a538b612457b03586bc2f6b727a3e9e7530f4c8568f6282ee + languageName: node + linkType: hard + +"@types/mdx@npm:^2.0.0, @types/mdx@npm:^2.0.13": + version: 2.0.14 + resolution: "@types/mdx@npm:2.0.14" + checksum: 320bfa4d59bb43143147dbea9023d53789d64e7b322b178cf1beaba88ef5fcaf0b158f3b7d7d3ce2237cea106388aee6234cb3a5f6a746b9120d82b19681b0ab + languageName: node + linkType: hard + "@types/minimist@npm:^1.2.2": version: 1.2.5 resolution: "@types/minimist@npm:1.2.5" @@ -4493,6 +6403,13 @@ __metadata: languageName: node linkType: hard +"@types/ms@npm:*": + version: 2.1.0 + resolution: "@types/ms@npm:2.1.0" + checksum: 532d2ebb91937ccc4a89389715e5b47d4c66e708d15942fe6cc25add6dc37b2be058230a327dd50f43f89b8b6d5d52b74685a9e8f70516edfc9bdd6be910eff4 + languageName: node + linkType: hard + "@types/node-fetch@npm:^2.1.2": version: 2.6.13 resolution: "@types/node-fetch@npm:2.6.13" @@ -4601,6 +6518,15 @@ __metadata: languageName: node linkType: hard +"@types/react-dom@npm:^19.1.0": + version: 19.2.3 + resolution: "@types/react-dom@npm:19.2.3" + peerDependencies: + "@types/react": ^19.2.0 + checksum: b9c548f7378979cd8384444ae6c96f7a933b98e341c271c33e74231f27bf3082f04ad7c2927f1b1e6d8af35ccf83e549fce4978ebe0a02ded5a8803aa5f80e06 + languageName: node + linkType: hard + "@types/react-native-web@npm:^0.19.2": version: 0.19.2 resolution: "@types/react-native-web@npm:0.19.2" @@ -4697,6 +6623,27 @@ __metadata: languageName: node linkType: hard +"@types/trusted-types@npm:^2.0.7": + version: 2.0.7 + resolution: "@types/trusted-types@npm:2.0.7" + checksum: 8e4202766a65877efcf5d5a41b7dd458480b36195e580a3b1085ad21e948bc417d55d6f8af1fd2a7ad008015d4117d5fdfe432731157da3c68678487174e4ba3 + languageName: node + linkType: hard + +"@types/unist@npm:*, @types/unist@npm:^3.0.0": + version: 3.0.3 + resolution: "@types/unist@npm:3.0.3" + checksum: 96e6453da9e075aaef1dc22482463898198acdc1eeb99b465e65e34303e2ec1e3b1ed4469a9118275ec284dc98019f63c3f5d49422f0e4ac707e5ab90fb3b71a + languageName: node + linkType: hard + +"@types/unist@npm:^2.0.0": + version: 2.0.11 + resolution: "@types/unist@npm:2.0.11" + checksum: 6d436e832bc35c6dde9f056ac515ebf2b3384a1d7f63679d12358766f9b313368077402e9c1126a14d827f10370a5485e628bf61aa91117cf4fc882423191a4e + languageName: node + linkType: hard + "@types/webxr@npm:*, @types/webxr@npm:>=0.5.17": version: 0.5.24 resolution: "@types/webxr@npm:0.5.24" @@ -5121,6 +7068,13 @@ __metadata: languageName: node linkType: hard +"@ungap/structured-clone@npm:^1.0.0": + version: 1.3.1 + resolution: "@ungap/structured-clone@npm:1.3.1" + checksum: b8affbf8c95ecb8449a703fff6df1daa0acc6163785c7ef5867b35c3e5ae12fbba05ead6cda541b72756a63ab67c3769c403e9ae8b054439f4088b5eb1d8b8ba + languageName: node + linkType: hard + "@unrs/resolver-binding-android-arm-eabi@npm:1.11.1": version: 1.11.1 resolution: "@unrs/resolver-binding-android-arm-eabi@npm:1.11.1" @@ -5256,6 +7210,21 @@ __metadata: languageName: node linkType: hard +"@upsetjs/venn.js@npm:^2.0.0": + version: 2.0.0 + resolution: "@upsetjs/venn.js@npm:2.0.0" + dependencies: + d3-selection: ^3.0.0 + d3-transition: ^3.0.1 + dependenciesMeta: + d3-selection: + optional: true + d3-transition: + optional: true + checksum: 345f6adcdb0761289e41dd3d1aa3f3edf1780a0c55d20ccc4d4461a04b8e34e09b96fd07ab7fb323086bbd4e53505ed660c0a7d139167415c66ff7921b033643 + languageName: node + linkType: hard + "@webgpu/types@npm:^0.1.42": version: 0.1.69 resolution: "@webgpu/types@npm:0.1.69" @@ -5350,7 +7319,7 @@ __metadata: languageName: node linkType: hard -"acorn-jsx@npm:^5.3.2": +"acorn-jsx@npm:^5.0.0, acorn-jsx@npm:^5.3.2": version: 5.3.2 resolution: "acorn-jsx@npm:5.3.2" peerDependencies: @@ -5359,6 +7328,15 @@ __metadata: languageName: node linkType: hard +"acorn@npm:^8.0.0": + version: 8.16.0 + resolution: "acorn@npm:8.16.0" + bin: + acorn: bin/acorn + checksum: bbfa466cd0dbd18b4460a85e9d0fc2f35db999380892403c573261beda91f23836db2aa71fd3ae65e94424ad14ff8e2b7bd37c7a2624278fd89137cd6e448c41 + languageName: node + linkType: hard + "acorn@npm:^8.15.0": version: 8.15.0 resolution: "acorn@npm:8.15.0" @@ -5532,6 +7510,15 @@ __metadata: languageName: node linkType: hard +"aria-hidden@npm:^1.2.4": + version: 1.2.6 + resolution: "aria-hidden@npm:1.2.6" + dependencies: + tslib: ^2.0.0 + checksum: 56409c55c43ad917607f3f3aa67748dcf30a27e8bb5cb3c5d86b43e38babadd63cd77731a27bc8a8c4332c2291741ed92333bf7ca45f8b99ebc87b94a8070a6e + languageName: node + linkType: hard + "array-buffer-byte-length@npm:^1.0.1, array-buffer-byte-length@npm:^1.0.2": version: 1.0.2 resolution: "array-buffer-byte-length@npm:1.0.2" @@ -5702,6 +7689,15 @@ __metadata: languageName: node linkType: hard +"astring@npm:^1.8.0": + version: 1.9.0 + resolution: "astring@npm:1.9.0" + bin: + astring: bin/astring + checksum: 69ffde3643f5280c6846231a995af878a94d3eab41d1a19a86b8c15f456453f63a7982cf5dd72d270b9f50dd26763a3e1e48377c961b7df16f550132b6dba805 + languageName: node + linkType: hard + "async-function@npm:^1.0.0": version: 1.0.0 resolution: "async-function@npm:1.0.0" @@ -5934,6 +7930,13 @@ __metadata: languageName: node linkType: hard +"bail@npm:^2.0.0": + version: 2.0.2 + resolution: "bail@npm:2.0.2" + checksum: aab4e8ccdc8d762bf3fdfce8e706601695620c0c2eda256dd85088dc0be3cfd7ff126f6e99c2bee1f24f5d418414aacf09d7f9702f16d6963df2fa488cda8824 + languageName: node + linkType: hard + "balanced-match@npm:^1.0.0": version: 1.0.2 resolution: "balanced-match@npm:1.0.2" @@ -5941,6 +7944,13 @@ __metadata: languageName: node linkType: hard +"balanced-match@npm:^4.0.2": + version: 4.0.4 + resolution: "balanced-match@npm:4.0.4" + checksum: fb07bb66a0959c2843fc055838047e2a95ccebb837c519614afb067ebfdf2fa967ca8d712c35ced07f2cd26fc6f07964230b094891315ad74f11eba3d53178a0 + languageName: node + linkType: hard + "bare-events@npm:^2.5.4, bare-events@npm:^2.7.0": version: 2.8.2 resolution: "bare-events@npm:2.8.2" @@ -6029,6 +8039,15 @@ __metadata: languageName: node linkType: hard +"baseline-browser-mapping@npm:^2.9.19": + version: 2.10.34 + resolution: "baseline-browser-mapping@npm:2.10.34" + bin: + baseline-browser-mapping: dist/cli.cjs + checksum: 4e1bc2a9a52a3b3b11fb5baf1865a24fcda7cdf736be6fd2a04ea1b784701f6b70f195c734f0440ed28b206064da71042d3d905e16e19ec0aa8dc6f1dac0c341 + languageName: node + linkType: hard + "basic-ftp@npm:^5.0.2": version: 5.1.0 resolution: "basic-ftp@npm:5.1.0" @@ -6073,6 +8092,15 @@ __metadata: languageName: node linkType: hard +"brace-expansion@npm:^5.0.5": + version: 5.0.6 + resolution: "brace-expansion@npm:5.0.6" + dependencies: + balanced-match: ^4.0.2 + checksum: b5a0e54a5d5f66d0acb88f297e1f3e74732f9c8a35ab6c87b96bd60f6e390697f099b747dd053b9017bd1a38225ff3f60632de09a723a99f2144740b7fbda66b + languageName: node + linkType: hard + "braces@npm:^3.0.3": version: 3.0.3 resolution: "braces@npm:3.0.3" @@ -6256,6 +8284,13 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001579": + version: 1.0.30001797 + resolution: "caniuse-lite@npm:1.0.30001797" + checksum: 038ebafc784ddf5fa5db120f6995034974df232fc0fb4e42bc48dbcb7a86c6c1472522af4c073dc5d7f6f713c5b8d8397c56d36db71c9dc340042cefe5f1dbae + languageName: node + linkType: hard + "caniuse-lite@npm:^1.0.30001759": version: 1.0.30001764 resolution: "caniuse-lite@npm:1.0.30001764" @@ -6272,6 +8307,13 @@ __metadata: languageName: node linkType: hard +"ccount@npm:^2.0.0": + version: 2.0.1 + resolution: "ccount@npm:2.0.1" + checksum: 48193dada54c9e260e0acf57fc16171a225305548f9ad20d5471e0f7a8c026aedd8747091dccb0d900cde7df4e4ddbd235df0d8de4a64c71b12f0d3303eeafd4 + languageName: node + linkType: hard + "chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.2": version: 4.1.2 resolution: "chalk@npm:4.1.2" @@ -6289,6 +8331,43 @@ __metadata: languageName: node linkType: hard +"character-entities-html4@npm:^2.0.0": + version: 2.1.0 + resolution: "character-entities-html4@npm:2.1.0" + checksum: 7034aa7c7fa90309667f6dd50499c8a760c3d3a6fb159adb4e0bada0107d194551cdbad0714302f62d06ce4ed68565c8c2e15fdef2e8f8764eb63fa92b34b11d + languageName: node + linkType: hard + +"character-entities-legacy@npm:^3.0.0": + version: 3.0.0 + resolution: "character-entities-legacy@npm:3.0.0" + checksum: 7582af055cb488b626d364b7d7a4e46b06abd526fb63c0e4eb35bcb9c9799cc4f76b39f34fdccef2d1174ac95e53e9ab355aae83227c1a2505877893fce77731 + languageName: node + linkType: hard + +"character-entities@npm:^2.0.0": + version: 2.0.2 + resolution: "character-entities@npm:2.0.2" + checksum: cf1643814023697f725e47328fcec17923b8f1799102a8a79c1514e894815651794a2bffd84bb1b3a4b124b050154e4529ed6e81f7c8068a734aecf07a6d3def + languageName: node + linkType: hard + +"character-reference-invalid@npm:^2.0.0": + version: 2.0.1 + resolution: "character-reference-invalid@npm:2.0.1" + checksum: 98d3b1a52ae510b7329e6ee7f6210df14f1e318c5415975d4c9e7ee0ef4c07875d47c6e74230c64551f12f556b4a8ccc24d9f3691a2aa197019e72a95e9297ee + languageName: node + linkType: hard + +"chokidar@npm:^5.0.0": + version: 5.0.0 + resolution: "chokidar@npm:5.0.0" + dependencies: + readdirp: ^5.0.0 + checksum: 48c0d510d84c228acae24dcf4418d55193ae0fd6cf2d114a3cf893ea68cca95f1876e1b02353a275b0b0b5f933f7c5b5bf126063211c0c8c30b213dd03328897 + languageName: node + linkType: hard + "chownr@npm:^3.0.0": version: 3.0.0 resolution: "chownr@npm:3.0.0" @@ -6372,6 +8451,15 @@ __metadata: languageName: node linkType: hard +"class-variance-authority@npm:^0.7.1": + version: 0.7.1 + resolution: "class-variance-authority@npm:0.7.1" + dependencies: + clsx: ^2.1.1 + checksum: e05ba26ef9ec38f7c675047ce366b067d60af6c954dba08f7802af19a9460a534ae752d8fe1294fff99d0fa94a669b16ccebd87e8a20f637c0736cf2751dd2c5 + languageName: node + linkType: hard + "clean-stack@npm:^2.0.0": version: 2.2.0 resolution: "clean-stack@npm:2.2.0" @@ -6404,6 +8492,13 @@ __metadata: languageName: node linkType: hard +"client-only@npm:0.0.1": + version: 0.0.1 + resolution: "client-only@npm:0.0.1" + checksum: 0c16bf660dadb90610553c1d8946a7fdfb81d624adea073b8440b7d795d5b5b08beb3c950c6a2cf16279365a3265158a236876d92bce16423c485c322d7dfaf8 + languageName: node + linkType: hard + "cliui@npm:^6.0.0": version: 6.0.0 resolution: "cliui@npm:6.0.0" @@ -6462,6 +8557,13 @@ __metadata: languageName: node linkType: hard +"clsx@npm:^2.1.1": + version: 2.1.1 + resolution: "clsx@npm:2.1.1" + checksum: acd3e1ab9d8a433ecb3cc2f6a05ab95fe50b4a3cfc5ba47abb6cbf3754585fcb87b84e90c822a1f256c4198e3b41c7f6c391577ffc8678ad587fc0976b24fd57 + languageName: node + linkType: hard + "co@npm:^4.6.0": version: 4.6.0 resolution: "co@npm:4.6.0" @@ -6469,13 +8571,20 @@ __metadata: languageName: node linkType: hard -"code-block-writer@npm:^13.0.1": +"code-block-writer@npm:^13.0.1, code-block-writer@npm:^13.0.3": version: 13.0.3 resolution: "code-block-writer@npm:13.0.3" checksum: 8e234f0ec2db9625d5efb9f05bdae79da6559bb4d9df94a6aa79a89a7b5ae25093b70d309fc5122840c9c07995cb14b4dd3f98a30f8878e3a3372e177df79454 languageName: node linkType: hard +"collapse-white-space@npm:^2.0.0": + version: 2.1.0 + resolution: "collapse-white-space@npm:2.1.0" + checksum: c8978b1f4e7d68bf846cfdba6c6689ce8910511df7d331eb6e6757e51ceffb52768d59a28db26186c91dcf9594955b59be9f8ccd473c485790f5d8b90dc6726f + languageName: node + linkType: hard + "collect-v8-coverage@npm:^1.0.0": version: 1.0.3 resolution: "collect-v8-coverage@npm:1.0.3" @@ -6551,6 +8660,13 @@ __metadata: languageName: node linkType: hard +"comma-separated-tokens@npm:^2.0.0": + version: 2.0.3 + resolution: "comma-separated-tokens@npm:2.0.3" + checksum: e3bf9e0332a5c45f49b90e79bcdb4a7a85f28d6a6f0876a94f1bb9b2bfbdbbb9292aac50e1e742d8c0db1e62a0229a106f57917e2d067fca951d81737651700d + languageName: node + linkType: hard + "command-exists@npm:^1.2.8": version: 1.2.9 resolution: "command-exists@npm:1.2.9" @@ -6579,6 +8695,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:^8.3.0": + version: 8.3.0 + resolution: "commander@npm:8.3.0" + checksum: 0f82321821fc27b83bd409510bb9deeebcfa799ff0bf5d102128b500b7af22872c0c92cb6a0ebc5a4cf19c6b550fba9cedfa7329d18c6442a625f851377bacf0 + languageName: node + linkType: hard + "commander@npm:^9.4.1": version: 9.5.0 resolution: "commander@npm:9.5.0" @@ -6617,6 +8740,13 @@ __metadata: languageName: node linkType: hard +"compute-scroll-into-view@npm:^3.0.2": + version: 3.1.1 + resolution: "compute-scroll-into-view@npm:3.1.1" + checksum: c56345199e746f93a515b3190d1bf0940944d5b7e1b06e33f16b430a93c9ada1c6b9fe89674d3f3a6078642523c49edcddc1cd639bbe78797fffd072b0231930 + languageName: node + linkType: hard + "concat-map@npm:0.0.1": version: 0.0.1 resolution: "concat-map@npm:0.0.1" @@ -6673,6 +8803,24 @@ __metadata: languageName: node linkType: hard +"cose-base@npm:^1.0.0": + version: 1.0.3 + resolution: "cose-base@npm:1.0.3" + dependencies: + layout-base: ^1.0.0 + checksum: 3f3d592316df74adb215ca91e430f1c22b6e890bc0025b32ae1f6464c73fdb9614816cb40a8d38b40c6a3e9e7b8c64eda90d53fb9a4a6948abec17dad496f30b + languageName: node + linkType: hard + +"cose-base@npm:^2.2.0": + version: 2.2.0 + resolution: "cose-base@npm:2.2.0" + dependencies: + layout-base: ^2.0.0 + checksum: 2e694f340bf216c71fc126d237578a4168e138720011d0b48c88bf9bfc7fd45f912eff2c603ef3d1307d6e3ce6f465ed382285a764a3a6620db590c5457d2557 + languageName: node + linkType: hard + "cosmiconfig@npm:^5.0.5, cosmiconfig@npm:^5.1.0": version: 5.2.1 resolution: "cosmiconfig@npm:5.2.1" @@ -6778,6 +8926,35 @@ __metadata: languageName: node linkType: hard +"cytoscape-cose-bilkent@npm:^4.1.0": + version: 4.1.0 + resolution: "cytoscape-cose-bilkent@npm:4.1.0" + dependencies: + cose-base: ^1.0.0 + peerDependencies: + cytoscape: ^3.2.0 + checksum: bea6aa139e21bf4135b01b99f8778eed061e074d1a1689771597e8164a999d66f4075d46be584b0a88a5447f9321f38c90c8821df6a9322faaf5afebf4848d97 + languageName: node + linkType: hard + +"cytoscape-fcose@npm:^2.2.0": + version: 2.2.0 + resolution: "cytoscape-fcose@npm:2.2.0" + dependencies: + cose-base: ^2.2.0 + peerDependencies: + cytoscape: ^3.2.0 + checksum: 94ffe6f131f9c08c2a0a7a6ce1c6c5e523a395bf8d84eba6d4a5f85e23f33788ea3ff807540861a5f78a6914a27729e06a7e6f66784f4f28ea1c030acf500121 + languageName: node + linkType: hard + +"cytoscape@npm:^3.33.1": + version: 3.34.0 + resolution: "cytoscape@npm:3.34.0" + checksum: f678687fc4e34cc234eb6aef83c9f8c5fbf7ef5fb931cef8263c3688d38e0dbf1f21682b9e7ad5c4e021e6bf48535d215418ab45bb84d48fb32e661885543f40 + languageName: node + linkType: hard + "d3-array@npm:1 - 2, d3-array@npm:2, d3-array@npm:^2.3.0, d3-array@npm:^2.5.0, d3-array@npm:^2.7.1": version: 2.12.1 resolution: "d3-array@npm:2.12.1" @@ -6787,7 +8964,7 @@ __metadata: languageName: node linkType: hard -"d3-array@npm:1 - 3, d3-array@npm:2 - 3, d3-array@npm:2.10.0 - 3, d3-array@npm:2.5.0 - 3, d3-array@npm:3.2.4, d3-array@npm:^3.2.2": +"d3-array@npm:1 - 3, d3-array@npm:2 - 3, d3-array@npm:2.10.0 - 3, d3-array@npm:2.5.0 - 3, d3-array@npm:3, d3-array@npm:3.2.4, d3-array@npm:^3.2.0, d3-array@npm:^3.2.2": version: 3.2.4 resolution: "d3-array@npm:3.2.4" dependencies: @@ -6796,6 +8973,35 @@ __metadata: languageName: node linkType: hard +"d3-axis@npm:3": + version: 3.0.0 + resolution: "d3-axis@npm:3.0.0" + checksum: 227ddaa6d4bad083539c1ec245e2228b4620cca941997a8a650cb0af239375dc20271993127eedac66f0543f331027aca09385e1e16eed023f93eac937cddf0b + languageName: node + linkType: hard + +"d3-brush@npm:3": + version: 3.0.0 + resolution: "d3-brush@npm:3.0.0" + dependencies: + d3-dispatch: 1 - 3 + d3-drag: 2 - 3 + d3-interpolate: 1 - 3 + d3-selection: 3 + d3-transition: 3 + checksum: 1d042167769a02ac76271c71e90376d7184206e489552b7022a8ec2860209fe269db55e0a3430f3dcbe13b6fec2ff65b1adeaccba3218991b38e022390df72e3 + languageName: node + linkType: hard + +"d3-chord@npm:3": + version: 3.0.1 + resolution: "d3-chord@npm:3.0.1" + dependencies: + d3-path: 1 - 3 + checksum: ddf35d41675e0f8738600a8a2f05bf0858def413438c12cba357c5802ecc1014c80a658acbbee63cbad2a8c747912efb2358455d93e59906fe37469f1dc6b78b + languageName: node + linkType: hard + "d3-color@npm:1 - 2, d3-color@npm:^2.0.0": version: 2.0.0 resolution: "d3-color@npm:2.0.0" @@ -6803,13 +9009,31 @@ __metadata: languageName: node linkType: hard -"d3-color@npm:1 - 3, d3-color@npm:^3.1.0": +"d3-color@npm:1 - 3, d3-color@npm:3, d3-color@npm:^3.1.0": version: 3.1.0 resolution: "d3-color@npm:3.1.0" checksum: 4931fbfda5d7c4b5cfa283a13c91a954f86e3b69d75ce588d06cde6c3628cebfc3af2069ccf225e982e8987c612aa7948b3932163ce15eb3c11cd7c003f3ee3b languageName: node linkType: hard +"d3-contour@npm:4": + version: 4.0.2 + resolution: "d3-contour@npm:4.0.2" + dependencies: + d3-array: ^3.2.0 + checksum: 56aa082c1acf62a45b61c8d29fdd307041785aa17d9a07de7d1d848633769887a33fb6823888afa383f31c460d0f21d24756593e84e334ddb92d774214d32f1b + languageName: node + linkType: hard + +"d3-delaunay@npm:6": + version: 6.0.4 + resolution: "d3-delaunay@npm:6.0.4" + dependencies: + delaunator: 5 + checksum: ce6d267d5ef21a8aeadfe4606329fc80a22ab6e7748d47bc220bcc396ee8be84b77a5473033954c5ac4aa522d265ddc45d4165d30fe4787dd60a15ea66b9bbb4 + languageName: node + linkType: hard + "d3-delaunay@npm:^5.3.0": version: 5.3.0 resolution: "d3-delaunay@npm:5.3.0" @@ -6826,6 +9050,44 @@ __metadata: languageName: node linkType: hard +"d3-dispatch@npm:1 - 3, d3-dispatch@npm:3": + version: 3.0.1 + resolution: "d3-dispatch@npm:3.0.1" + checksum: fdfd4a230f46463e28e5b22a45dd76d03be9345b605e1b5dc7d18bd7ebf504e6c00ae123fd6d03e23d9e2711e01f0e14ea89cd0632545b9f0c00b924ba4be223 + languageName: node + linkType: hard + +"d3-drag@npm:2 - 3, d3-drag@npm:3": + version: 3.0.0 + resolution: "d3-drag@npm:3.0.0" + dependencies: + d3-dispatch: 1 - 3 + d3-selection: 3 + checksum: d297231e60ecd633b0d076a63b4052b436ddeb48b5a3a11ff68c7e41a6774565473a6b064c5e9256e88eca6439a917ab9cea76032c52d944ddbf4fd289e31111 + languageName: node + linkType: hard + +"d3-dsv@npm:1 - 3, d3-dsv@npm:3, d3-dsv@npm:^3.0.1": + version: 3.0.1 + resolution: "d3-dsv@npm:3.0.1" + dependencies: + commander: 7 + iconv-lite: 0.6 + rw: 1 + bin: + csv2json: bin/dsv2json.js + csv2tsv: bin/dsv2dsv.js + dsv2dsv: bin/dsv2dsv.js + dsv2json: bin/dsv2json.js + json2csv: bin/json2dsv.js + json2dsv: bin/json2dsv.js + json2tsv: bin/json2dsv.js + tsv2csv: bin/dsv2dsv.js + tsv2json: bin/dsv2json.js + checksum: 5fc0723647269d5dccd181d74f2265920ab368a2868b0b4f55ffa2fecdfb7814390ea28622cd61ee5d9594ab262879509059544e9f815c54fe76fbfb4ffa4c8a + languageName: node + linkType: hard + "d3-dsv@npm:^2.0.0": version: 2.0.0 resolution: "d3-dsv@npm:2.0.0" @@ -6847,24 +9109,30 @@ __metadata: languageName: node linkType: hard -"d3-dsv@npm:^3.0.1": +"d3-ease@npm:1 - 3, d3-ease@npm:3": version: 3.0.1 - resolution: "d3-dsv@npm:3.0.1" + resolution: "d3-ease@npm:3.0.1" + checksum: 06e2ee5326d1e3545eab4e2c0f84046a123dcd3b612e68858219aa034da1160333d9ce3da20a1d3486d98cb5c2a06f7d233eee1bc19ce42d1533458bd85dedcd + languageName: node + linkType: hard + +"d3-fetch@npm:3": + version: 3.0.1 + resolution: "d3-fetch@npm:3.0.1" dependencies: - commander: 7 - iconv-lite: 0.6 - rw: 1 - bin: - csv2json: bin/dsv2json.js - csv2tsv: bin/dsv2dsv.js - dsv2dsv: bin/dsv2dsv.js - dsv2json: bin/dsv2json.js - json2csv: bin/json2dsv.js - json2dsv: bin/json2dsv.js - json2tsv: bin/json2dsv.js - tsv2csv: bin/dsv2dsv.js - tsv2json: bin/dsv2json.js - checksum: 5fc0723647269d5dccd181d74f2265920ab368a2868b0b4f55ffa2fecdfb7814390ea28622cd61ee5d9594ab262879509059544e9f815c54fe76fbfb4ffa4c8a + d3-dsv: 1 - 3 + checksum: 382dcea06549ef82c8d0b719e5dc1d96286352579e3b51b20f71437f5800323315b09cf7dcfd4e1f60a41e1204deb01758470cea257d2285a7abd9dcec806984 + languageName: node + linkType: hard + +"d3-force@npm:3": + version: 3.0.0 + resolution: "d3-force@npm:3.0.0" + dependencies: + d3-dispatch: 1 - 3 + d3-quadtree: 1 - 3 + d3-timer: 1 - 3 + checksum: 6c7e96438cab62fa32aeadb0ade3297b62b51f81b1b38b0a60a5ec9fd627d74090c1189654d92df2250775f31b06812342f089f1d5947de9960a635ee3581def languageName: node linkType: hard @@ -6886,7 +9154,7 @@ __metadata: languageName: node linkType: hard -"d3-format@npm:1 - 3, d3-format@npm:^3.1.0": +"d3-format@npm:1 - 3, d3-format@npm:3, d3-format@npm:^3.1.0": version: 3.1.2 resolution: "d3-format@npm:3.1.2" checksum: 2ce13417b3186311df3fd924028cd516ec3e96d7c3eb6df9c83f6c2ed43de1717e6c5119a385b7744ef84e2b8a4c678ad95a2b2998391803ceb0d809e235cff4 @@ -6944,7 +9212,7 @@ __metadata: languageName: node linkType: hard -"d3-geo@npm:1.12.0 - 3, d3-geo@npm:^3.1.0": +"d3-geo@npm:1.12.0 - 3, d3-geo@npm:3, d3-geo@npm:^3.1.0": version: 3.1.1 resolution: "d3-geo@npm:3.1.1" dependencies: @@ -6953,6 +9221,13 @@ __metadata: languageName: node linkType: hard +"d3-hierarchy@npm:3": + version: 3.1.2 + resolution: "d3-hierarchy@npm:3.1.2" + checksum: 0fd946a8c5fd4686d43d3e11bbfc2037a145fda29d2261ccd0e36f70b66af6d7638e2c0c7112124d63fc3d3127197a00a6aecf676bd5bd392a94d7235a214263 + languageName: node + linkType: hard + "d3-hierarchy@npm:^2.0.0": version: 2.0.0 resolution: "d3-hierarchy@npm:2.0.0" @@ -6960,7 +9235,7 @@ __metadata: languageName: node linkType: hard -"d3-interpolate@npm:1 - 3, d3-interpolate@npm:1.2.0 - 3, d3-interpolate@npm:^3.0.1": +"d3-interpolate@npm:1 - 3, d3-interpolate@npm:1.2.0 - 3, d3-interpolate@npm:3, d3-interpolate@npm:^3.0.1": version: 3.0.1 resolution: "d3-interpolate@npm:3.0.1" dependencies: @@ -6978,6 +9253,13 @@ __metadata: languageName: node linkType: hard +"d3-path@npm:1": + version: 1.0.9 + resolution: "d3-path@npm:1.0.9" + checksum: d4382573baf9509a143f40944baeff9fead136926aed6872f7ead5b3555d68925f8a37935841dd51f1d70b65a294fe35c065b0906fb6e42109295f6598fc16d0 + languageName: node + linkType: hard + "d3-path@npm:1 - 2, d3-path@npm:^2.0.0": version: 2.0.0 resolution: "d3-path@npm:2.0.0" @@ -6985,13 +9267,20 @@ __metadata: languageName: node linkType: hard -"d3-path@npm:^3.1.0": +"d3-path@npm:1 - 3, d3-path@npm:3, d3-path@npm:^3.1.0": version: 3.1.0 resolution: "d3-path@npm:3.1.0" checksum: 2306f1bd9191e1eac895ec13e3064f732a85f243d6e627d242a313f9777756838a2215ea11562f0c7630c7c3b16a19ec1fe0948b1c82f3317fac55882f6ee5d8 languageName: node linkType: hard +"d3-polygon@npm:3": + version: 3.0.1 + resolution: "d3-polygon@npm:3.0.1" + checksum: 0b85c532517895544683849768a2c377cee3801ef8ccf3fa9693c8871dd21a0c1a2a0fc75ff54192f0ba2c562b0da2bc27f5bf959dfafc7fa23573b574865d2c + languageName: node + linkType: hard + "d3-quadtree@npm:1 - 2": version: 2.0.0 resolution: "d3-quadtree@npm:2.0.0" @@ -6999,7 +9288,31 @@ __metadata: languageName: node linkType: hard -"d3-scale-chromatic@npm:^3.1.0": +"d3-quadtree@npm:1 - 3, d3-quadtree@npm:3": + version: 3.0.1 + resolution: "d3-quadtree@npm:3.0.1" + checksum: 5469d462763811475f34a7294d984f3eb100515b0585ca5b249656f6b1a6e99b20056a2d2e463cc9944b888896d2b1d07859c50f9c0cf23438df9cd2e3146066 + languageName: node + linkType: hard + +"d3-random@npm:3": + version: 3.0.1 + resolution: "d3-random@npm:3.0.1" + checksum: a70ad8d1cabe399ebeb2e482703121ac8946a3b336830b518da6848b9fdd48a111990fc041dc716f16885a72176ffa2898f2a250ca3d363ecdba5ef92b18e131 + languageName: node + linkType: hard + +"d3-sankey@npm:^0.12.3": + version: 0.12.3 + resolution: "d3-sankey@npm:0.12.3" + dependencies: + d3-array: 1 - 2 + d3-shape: ^1.2.0 + checksum: df1cb9c9d02dd8fd14040e89f112f0da58c03bd7529fa001572a6925a51496d1d82ff25d9fedb6c429a91645fbd2476c19891e535ac90c8bc28337c33ee21c87 + languageName: node + linkType: hard + +"d3-scale-chromatic@npm:3, d3-scale-chromatic@npm:^3.1.0": version: 3.1.0 resolution: "d3-scale-chromatic@npm:3.1.0" dependencies: @@ -7009,6 +9322,19 @@ __metadata: languageName: node linkType: hard +"d3-scale@npm:4, d3-scale@npm:^4.0.2": + version: 4.0.2 + resolution: "d3-scale@npm:4.0.2" + dependencies: + d3-array: 2.10.0 - 3 + d3-format: 1 - 3 + d3-interpolate: 1.2.0 - 3 + d3-time: 2.1.1 - 3 + d3-time-format: 2 - 4 + checksum: a9c770d283162c3bd11477c3d9d485d07f8db2071665f1a4ad23eec3e515e2cefbd369059ec677c9ac849877d1a765494e90e92051d4f21111aa56791c98729e + languageName: node + linkType: hard + "d3-scale@npm:^3.2.2": version: 3.3.0 resolution: "d3-scale@npm:3.3.0" @@ -7022,16 +9348,10 @@ __metadata: languageName: node linkType: hard -"d3-scale@npm:^4.0.2": - version: 4.0.2 - resolution: "d3-scale@npm:4.0.2" - dependencies: - d3-array: 2.10.0 - 3 - d3-format: 1 - 3 - d3-interpolate: 1.2.0 - 3 - d3-time: 2.1.1 - 3 - d3-time-format: 2 - 4 - checksum: a9c770d283162c3bd11477c3d9d485d07f8db2071665f1a4ad23eec3e515e2cefbd369059ec677c9ac849877d1a765494e90e92051d4f21111aa56791c98729e +"d3-selection@npm:2 - 3, d3-selection@npm:3, d3-selection@npm:^3.0.0": + version: 3.0.0 + resolution: "d3-selection@npm:3.0.0" + checksum: f4e60e133309115b99f5b36a79ae0a19d71ee6e2d5e3c7216ef3e75ebd2cb1e778c2ed2fa4c01bef35e0dcbd96c5428f5bd6ca2184fe2957ed582fde6841cbc5 languageName: node linkType: hard @@ -7042,6 +9362,24 @@ __metadata: languageName: node linkType: hard +"d3-shape@npm:3, d3-shape@npm:^3.2.0": + version: 3.2.0 + resolution: "d3-shape@npm:3.2.0" + dependencies: + d3-path: ^3.1.0 + checksum: de2af5fc9a93036a7b68581ca0bfc4aca2d5a328aa7ba7064c11aedd44d24f310c20c40157cb654359d4c15c3ef369f95ee53d71221017276e34172c7b719cfa + languageName: node + linkType: hard + +"d3-shape@npm:^1.2.0": + version: 1.3.7 + resolution: "d3-shape@npm:1.3.7" + dependencies: + d3-path: 1 + checksum: 46566a3ab64a25023653bf59d64e81e9e6c987e95be985d81c5cedabae5838bd55f4a201a6b69069ca862eb63594cd263cac9034afc2b0e5664dfe286c866129 + languageName: node + linkType: hard + "d3-shape@npm:^2.0.0": version: 2.1.0 resolution: "d3-shape@npm:2.1.0" @@ -7051,15 +9389,6 @@ __metadata: languageName: node linkType: hard -"d3-shape@npm:^3.2.0": - version: 3.2.0 - resolution: "d3-shape@npm:3.2.0" - dependencies: - d3-path: ^3.1.0 - checksum: de2af5fc9a93036a7b68581ca0bfc4aca2d5a328aa7ba7064c11aedd44d24f310c20c40157cb654359d4c15c3ef369f95ee53d71221017276e34172c7b719cfa - languageName: node - linkType: hard - "d3-time-format@npm:2 - 3, d3-time-format@npm:^3.0.0": version: 3.0.0 resolution: "d3-time-format@npm:3.0.0" @@ -7069,7 +9398,7 @@ __metadata: languageName: node linkType: hard -"d3-time-format@npm:2 - 4, d3-time-format@npm:^4.1.0": +"d3-time-format@npm:2 - 4, d3-time-format@npm:4, d3-time-format@npm:^4.1.0": version: 4.1.0 resolution: "d3-time-format@npm:4.1.0" dependencies: @@ -7087,7 +9416,7 @@ __metadata: languageName: node linkType: hard -"d3-time@npm:1 - 3, d3-time@npm:2.1.1 - 3, d3-time@npm:^3.1.0": +"d3-time@npm:1 - 3, d3-time@npm:2.1.1 - 3, d3-time@npm:3, d3-time@npm:^3.1.0": version: 3.1.0 resolution: "d3-time@npm:3.1.0" dependencies: @@ -7103,6 +9432,89 @@ __metadata: languageName: node linkType: hard +"d3-timer@npm:1 - 3, d3-timer@npm:3": + version: 3.0.1 + resolution: "d3-timer@npm:3.0.1" + checksum: 1cfddf86d7bca22f73f2c427f52dfa35c49f50d64e187eb788dcad6e927625c636aa18ae4edd44d084eb9d1f81d8ca4ec305dae7f733c15846a824575b789d73 + languageName: node + linkType: hard + +"d3-transition@npm:2 - 3, d3-transition@npm:3, d3-transition@npm:^3.0.1": + version: 3.0.1 + resolution: "d3-transition@npm:3.0.1" + dependencies: + d3-color: 1 - 3 + d3-dispatch: 1 - 3 + d3-ease: 1 - 3 + d3-interpolate: 1 - 3 + d3-timer: 1 - 3 + peerDependencies: + d3-selection: 2 - 3 + checksum: cb1e6e018c3abf0502fe9ff7b631ad058efb197b5e14b973a410d3935aead6e3c07c67d726cfab258e4936ef2667c2c3d1cd2037feb0765f0b4e1d3b8788c0ea + languageName: node + linkType: hard + +"d3-zoom@npm:3": + version: 3.0.0 + resolution: "d3-zoom@npm:3.0.0" + dependencies: + d3-dispatch: 1 - 3 + d3-drag: 2 - 3 + d3-interpolate: 1 - 3 + d3-selection: 2 - 3 + d3-transition: 2 - 3 + checksum: 8056e3527281cfd1ccbcbc458408f86973b0583e9dac00e51204026d1d36803ca437f970b5736f02fafed9f2b78f145f72a5dbc66397e02d4d95d4c594b8ff54 + languageName: node + linkType: hard + +"d3@npm:^7.9.0": + version: 7.9.0 + resolution: "d3@npm:7.9.0" + dependencies: + d3-array: 3 + d3-axis: 3 + d3-brush: 3 + d3-chord: 3 + d3-color: 3 + d3-contour: 4 + d3-delaunay: 6 + d3-dispatch: 3 + d3-drag: 3 + d3-dsv: 3 + d3-ease: 3 + d3-fetch: 3 + d3-force: 3 + d3-format: 3 + d3-geo: 3 + d3-hierarchy: 3 + d3-interpolate: 3 + d3-path: 3 + d3-polygon: 3 + d3-quadtree: 3 + d3-random: 3 + d3-scale: 4 + d3-scale-chromatic: 3 + d3-selection: 3 + d3-shape: 3 + d3-time: 3 + d3-time-format: 4 + d3-timer: 3 + d3-transition: 3 + d3-zoom: 3 + checksum: 1c0e9135f1fb78aa32b187fafc8b56ae6346102bd0e4e5e5a5339611a51e6038adbaa293fae373994228100eddd87320e930b1be922baeadc07c9fd43d26d99b + languageName: node + linkType: hard + +"dagre-d3-es@npm:7.0.14": + version: 7.0.14 + resolution: "dagre-d3-es@npm:7.0.14" + dependencies: + d3: ^7.9.0 + lodash-es: ^4.17.21 + checksum: 02487b979711f4902f5413b6c3e477547e64e670da08e1176ecbcdfb680f42d4fc4e38977b6dcb99ed2682f82713d8cc1b1b2c8e5a5282980d8ca4242d4554b7 + languageName: node + linkType: hard + "data-uri-to-buffer@npm:^6.0.2": version: 6.0.2 resolution: "data-uri-to-buffer@npm:6.0.2" @@ -7143,6 +9555,13 @@ __metadata: languageName: node linkType: hard +"dayjs@npm:^1.11.19": + version: 1.11.21 + resolution: "dayjs@npm:1.11.21" + checksum: f168e00e88c5bf5a1153090f2fb279e0f7b5f0ee332062abfd5c6e2e8e0f1ba27c3f278183d73668cdfeefdd50b1d13346fdc2ace441962fc9ca6363f902ad05 + languageName: node + linkType: hard + "dayjs@npm:^1.8.15": version: 1.11.19 resolution: "dayjs@npm:1.11.19" @@ -7159,7 +9578,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.4.0, debug@npm:^4.4.1, debug@npm:^4.4.3": +"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.4.0, debug@npm:^4.4.1, debug@npm:^4.4.3": version: 4.4.3 resolution: "debug@npm:4.4.3" dependencies: @@ -7204,6 +9623,15 @@ __metadata: languageName: node linkType: hard +"decode-named-character-reference@npm:^1.0.0": + version: 1.3.0 + resolution: "decode-named-character-reference@npm:1.3.0" + dependencies: + character-entities: ^2.0.0 + checksum: 82eb1208abf59d1f1e368285b6880201a3c3f147a4d7ce74e44cd41374ef00c9a376e8595e38002031db63291f91f7f3ff56b9724f715befff8f5566593d6de0 + languageName: node + linkType: hard + "decode-uri-component@npm:^0.2.2": version: 0.2.2 resolution: "decode-uri-component@npm:0.2.2" @@ -7345,6 +9773,15 @@ __metadata: languageName: node linkType: hard +"delaunator@npm:5": + version: 5.1.0 + resolution: "delaunator@npm:5.1.0" + dependencies: + robust-predicates: ^3.0.2 + checksum: ecefe0a6ad356466a1793fa7396e170e873b9b519ab28a0e2e025df1ce506d76df113f210d02f7131f906be3cf6493f07b2fd972bf972d726ac7cdd96c4de4cd + languageName: node + linkType: hard + "delayed-stream@npm:~1.0.0": version: 1.0.0 resolution: "delayed-stream@npm:1.0.0" @@ -7366,6 +9803,13 @@ __metadata: languageName: node linkType: hard +"dequal@npm:^2.0.0": + version: 2.0.3 + resolution: "dequal@npm:2.0.3" + checksum: 8679b850e1a3d0ebbc46ee780d5df7b478c23f335887464023a631d1b9af051ad4a6595a44220f9ff8ff95a8ddccf019b5ad778a976fd7bbf77383d36f412f90 + languageName: node + linkType: hard + "destroy@npm:1.2.0": version: 1.2.0 resolution: "destroy@npm:1.2.0" @@ -7373,6 +9817,13 @@ __metadata: languageName: node linkType: hard +"detect-libc@npm:^2.0.3, detect-libc@npm:^2.1.2": + version: 2.1.2 + resolution: "detect-libc@npm:2.1.2" + checksum: 471740d52365084c4b2ae359e507b863f2b1d79b08a92835ebdf701918e08fc9cfba175b3db28483ca33b155e1311a91d69dc42c6d192b476f41a9e1f094ce6a + languageName: node + linkType: hard + "detect-newline@npm:^3.0.0": version: 3.1.0 resolution: "detect-newline@npm:3.1.0" @@ -7380,6 +9831,22 @@ __metadata: languageName: node linkType: hard +"detect-node-es@npm:^1.1.0": + version: 1.1.0 + resolution: "detect-node-es@npm:1.1.0" + checksum: e46307d7264644975b71c104b9f028ed1d3d34b83a15b8a22373640ce5ea630e5640b1078b8ea15f202b54641da71e4aa7597093bd4b91f113db520a26a37449 + languageName: node + linkType: hard + +"devlop@npm:^1.0.0, devlop@npm:^1.1.0": + version: 1.1.0 + resolution: "devlop@npm:1.1.0" + dependencies: + dequal: ^2.0.0 + checksum: d2ff650bac0bb6ef08c48f3ba98640bb5fec5cce81e9957eb620408d1bab1204d382a45b785c6b3314dc867bb0684936b84c6867820da6db97cbb5d3c15dd185 + languageName: node + linkType: hard + "devtools-protocol@npm:0.0.1508733": version: 0.0.1508733 resolution: "devtools-protocol@npm:0.0.1508733" @@ -7403,6 +9870,38 @@ __metadata: languageName: node linkType: hard +"docs@workspace:apps/docs": + version: 0.0.0-use.local + resolution: "docs@workspace:apps/docs" + dependencies: + "@tailwindcss/postcss": ^4.1.8 + "@tensorflow/tfjs": ^4.22.0 + "@tensorflow/tfjs-backend-webgpu": ^4.22.0 + "@types/mdx": ^2.0.13 + "@types/node": ^20.14.7 + "@types/react": ^18.2.44 + "@types/react-dom": ^19.1.0 + "@webgpu/types": 0.1.65 + eslint: 9.35.0 + flexsearch: ^0.8.205 + fumadocs-core: ^16.9.3 + fumadocs-mdx: ^15.0.11 + fumadocs-typescript: ^4.0.4 + fumadocs-ui: ^16.9.3 + lucide-react: ^0.511.0 + mermaid: ^11.15.0 + next: ^16.2.7 + react: 19.1.0 + react-dom: 19.1.0 + react-native-web: ^0.21.2 + react-native-webgpu: "workspace:*" + tailwindcss: ^4.1.8 + three: 0.184.0 + typescript: ^5.2.2 + wgpu-matrix: ^3.0.2 + languageName: unknown + linkType: soft + "doctrine@npm:^2.1.0": version: 2.1.0 resolution: "doctrine@npm:2.1.0" @@ -7412,6 +9911,18 @@ __metadata: languageName: node linkType: hard +"dompurify@npm:^3.3.1": + version: 3.4.8 + resolution: "dompurify@npm:3.4.8" + dependencies: + "@types/trusted-types": ^2.0.7 + dependenciesMeta: + "@types/trusted-types": + optional: true + checksum: 77775a7a22a40d6b169ee9dc53c15e48882c88b1c26b634bd10cb804f76328277893791f08a6339105c67e23c205c12fd931d8d986d2b8c15332bf2edcd3c948 + languageName: node + linkType: hard + "dunder-proto@npm:^1.0.0, dunder-proto@npm:^1.0.1": version: 1.0.1 resolution: "dunder-proto@npm:1.0.1" @@ -7497,6 +10008,23 @@ __metadata: languageName: node linkType: hard +"enhanced-resolve@npm:^5.21.0": + version: 5.23.0 + resolution: "enhanced-resolve@npm:5.23.0" + dependencies: + graceful-fs: ^4.2.4 + tapable: ^2.3.3 + checksum: ae594afb28f15a44bbbd8f3eede43e97b8c7bae9e89b7040a209fb8f50c1d2f27f0bfe63b3c31ab226b1b8eefabf2277ed83fba0177b55d76239a8efba3b148c + languageName: node + linkType: hard + +"entities@npm:^6.0.0": + version: 6.0.1 + resolution: "entities@npm:6.0.1" + checksum: 937b952e81aca641660a6a07f70001c6821973dea3ae7f6a5013eadce94620f3ed2e9c745832d503c8811ce6e97704d8a0396159580c0e567d815234de7fdecf + languageName: node + linkType: hard + "env-paths@npm:^2.2.0, env-paths@npm:^2.2.1": version: 2.2.1 resolution: "env-paths@npm:2.2.1" @@ -7689,6 +10217,133 @@ __metadata: languageName: node linkType: hard +"es-toolkit@npm:^1.45.1": + version: 1.47.0 + resolution: "es-toolkit@npm:1.47.0" + dependenciesMeta: + "@trivago/prettier-plugin-sort-imports@4.3.0": + unplugged: true + prettier-plugin-sort-re-exports@0.0.1: + unplugged: true + vitepress-plugin-sandpack@1.1.4: + unplugged: true + checksum: 8836ce20f028ae65c1962428e37d5597ef82a7ca7cf7d408675b13390084549dd554fabeb5886823ed540d45912bff3228f6dfb7b1c71c5f4cca5a845b5570f1 + languageName: node + linkType: hard + +"esast-util-from-estree@npm:^2.0.0": + version: 2.0.0 + resolution: "esast-util-from-estree@npm:2.0.0" + dependencies: + "@types/estree-jsx": ^1.0.0 + devlop: ^1.0.0 + estree-util-visit: ^2.0.0 + unist-util-position-from-estree: ^2.0.0 + checksum: b9ea5b6db25decbe7c3be23a00251542641c9538499905d740d76fd5c9fea9f727ad1d0cce4f2071b6d9bb2f405f4f11acbdec9b8ea6485649cf60d886b99f28 + languageName: node + linkType: hard + +"esast-util-from-js@npm:^2.0.0": + version: 2.0.1 + resolution: "esast-util-from-js@npm:2.0.1" + dependencies: + "@types/estree-jsx": ^1.0.0 + acorn: ^8.0.0 + esast-util-from-estree: ^2.0.0 + vfile-message: ^4.0.0 + checksum: a262b94d973d8cc80227e083a7f1367028c4acf524e8f8507177626302bac567f260f75ea52321c8a9650e34c47e70bcc4f7696f710002f64b21aaa630e73e43 + languageName: node + linkType: hard + +"esbuild@npm:^0.28.0": + version: 0.28.0 + resolution: "esbuild@npm:0.28.0" + dependencies: + "@esbuild/aix-ppc64": 0.28.0 + "@esbuild/android-arm": 0.28.0 + "@esbuild/android-arm64": 0.28.0 + "@esbuild/android-x64": 0.28.0 + "@esbuild/darwin-arm64": 0.28.0 + "@esbuild/darwin-x64": 0.28.0 + "@esbuild/freebsd-arm64": 0.28.0 + "@esbuild/freebsd-x64": 0.28.0 + "@esbuild/linux-arm": 0.28.0 + "@esbuild/linux-arm64": 0.28.0 + "@esbuild/linux-ia32": 0.28.0 + "@esbuild/linux-loong64": 0.28.0 + "@esbuild/linux-mips64el": 0.28.0 + "@esbuild/linux-ppc64": 0.28.0 + "@esbuild/linux-riscv64": 0.28.0 + "@esbuild/linux-s390x": 0.28.0 + "@esbuild/linux-x64": 0.28.0 + "@esbuild/netbsd-arm64": 0.28.0 + "@esbuild/netbsd-x64": 0.28.0 + "@esbuild/openbsd-arm64": 0.28.0 + "@esbuild/openbsd-x64": 0.28.0 + "@esbuild/openharmony-arm64": 0.28.0 + "@esbuild/sunos-x64": 0.28.0 + "@esbuild/win32-arm64": 0.28.0 + "@esbuild/win32-ia32": 0.28.0 + "@esbuild/win32-x64": 0.28.0 + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-arm64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-arm64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/openharmony-arm64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: eeedcd8631138525908c185a6f987ca502ab2a523054f0305f458814caeb5ead8f51481e23b995b56326d8f232f09a7663182e0041a13f65d7f589d8a4ee76a4 + languageName: node + linkType: hard + "esbuild@npm:~0.27.0": version: 0.27.2 resolution: "esbuild@npm:0.27.2" @@ -7792,7 +10447,7 @@ __metadata: languageName: node linkType: hard -"escape-string-regexp@npm:5.0.0": +"escape-string-regexp@npm:5.0.0, escape-string-regexp@npm:^5.0.0": version: 5.0.0 resolution: "escape-string-regexp@npm:5.0.0" checksum: 20daabe197f3cb198ec28546deebcf24b3dbb1a5a269184381b3116d12f0532e06007f4bc8da25669d6a7f8efb68db0758df4cd981f57bc5b57f521a3e12c59e @@ -8278,6 +10933,83 @@ __metadata: languageName: node linkType: hard +"estree-util-attach-comments@npm:^3.0.0": + version: 3.0.0 + resolution: "estree-util-attach-comments@npm:3.0.0" + dependencies: + "@types/estree": ^1.0.0 + checksum: 56254eaef39659e6351919ebc2ae53a37a09290a14571c19e373e9d5fad343a3403d9ad0c23ae465d6e7d08c3e572fd56fb8c793efe6434a261bf1489932dbd5 + languageName: node + linkType: hard + +"estree-util-build-jsx@npm:^3.0.0": + version: 3.0.1 + resolution: "estree-util-build-jsx@npm:3.0.1" + dependencies: + "@types/estree-jsx": ^1.0.0 + devlop: ^1.0.0 + estree-util-is-identifier-name: ^3.0.0 + estree-walker: ^3.0.0 + checksum: 185eff060eda2ba32cecd15904db4f5ba0681159fbdf54f0f6586cd9411e77e733861a833d0aee3415e1d1fd4b17edf08bc9e9872cee98e6ec7b0800e1a85064 + languageName: node + linkType: hard + +"estree-util-is-identifier-name@npm:^3.0.0": + version: 3.0.0 + resolution: "estree-util-is-identifier-name@npm:3.0.0" + checksum: ea3909f0188ea164af0aadeca87c087e3e5da78d76da5ae9c7954ff1340ea3e4679c4653bbf4299ffb70caa9b322218cc1128db2541f3d2976eb9704f9857787 + languageName: node + linkType: hard + +"estree-util-scope@npm:^1.0.0": + version: 1.0.0 + resolution: "estree-util-scope@npm:1.0.0" + dependencies: + "@types/estree": ^1.0.0 + devlop: ^1.0.0 + checksum: df2ed1b4c078002d50f7e330980e7b6f2630a1f551102203ee5000b61ed8ce5720fe7b9bc1a238a5fded5cf0f157dbe516ad6807323f037b3bb594bd1a0d61bb + languageName: node + linkType: hard + +"estree-util-to-js@npm:^2.0.0": + version: 2.0.0 + resolution: "estree-util-to-js@npm:2.0.0" + dependencies: + "@types/estree-jsx": ^1.0.0 + astring: ^1.8.0 + source-map: ^0.7.0 + checksum: 833edc94ab9978e0918f90261e0a3361bf4564fec4901f326d2237a9235d3f5fc6482da3be5acc545e702c8c7cb8bc5de5c7c71ba3b080eb1975bcfdf3923d79 + languageName: node + linkType: hard + +"estree-util-value-to-estree@npm:^3.5.0": + version: 3.5.0 + resolution: "estree-util-value-to-estree@npm:3.5.0" + dependencies: + "@types/estree": ^1.0.0 + checksum: 2966167c5aec7aa615f9046f9abd14996e0696be41316fe50ff5a5dba65d9fa3228664e721615469d2f0bdfab6db93674624054c172b18b57fc510bcfaf5cb60 + languageName: node + linkType: hard + +"estree-util-visit@npm:^2.0.0": + version: 2.0.0 + resolution: "estree-util-visit@npm:2.0.0" + dependencies: + "@types/estree-jsx": ^1.0.0 + "@types/unist": ^3.0.0 + checksum: 6444b38f224322945a6d19ea81a8828a0eec64aefb2bf1ea791fe20df496f7b7c543408d637df899e6a8e318b638f66226f16378a33c4c2b192ba5c3f891121f + languageName: node + linkType: hard + +"estree-walker@npm:^3.0.0": + version: 3.0.3 + resolution: "estree-walker@npm:3.0.3" + dependencies: + "@types/estree": ^1.0.0 + checksum: a65728d5727b71de172c5df323385755a16c0fdab8234dc756c3854cfee343261ddfbb72a809a5660fac8c75d960bb3e21aa898c2d7e9b19bb298482ca58a3af + languageName: node + linkType: hard + "esutils@npm:^2.0.2": version: 2.0.3 resolution: "esutils@npm:2.0.3" @@ -8369,6 +11101,13 @@ __metadata: languageName: node linkType: hard +"extend@npm:^3.0.0": + version: 3.0.2 + resolution: "extend@npm:3.0.2" + checksum: a50a8309ca65ea5d426382ff09f33586527882cf532931cb08ca786ea3146c0553310bda688710ff61d7668eba9f96b923fe1420cdf56a2c3eaf30fcab87b515 + languageName: node + linkType: hard + "extract-zip@npm:^2.0.1": version: 2.0.1 resolution: "extract-zip@npm:2.0.1" @@ -8655,6 +11394,13 @@ __metadata: languageName: node linkType: hard +"flexsearch@npm:^0.8.205": + version: 0.8.212 + resolution: "flexsearch@npm:0.8.212" + checksum: 33b406fa89842ccacbebbd4a382b76d6a2bc3e6a47a99d789f538c5e7b4b782d5c4250dc4021dec543952b127792e872002aa3f82b52eba91b68d71a687ecb65 + languageName: node + linkType: hard + "flow-enums-runtime@npm:^0.0.6": version: 0.0.6 resolution: "flow-enums-runtime@npm:0.0.6" @@ -8701,6 +11447,28 @@ __metadata: languageName: node linkType: hard +"framer-motion@npm:^12.40.0": + version: 12.40.0 + resolution: "framer-motion@npm:12.40.0" + dependencies: + motion-dom: ^12.40.0 + motion-utils: ^12.39.0 + tslib: ^2.4.0 + peerDependencies: + "@emotion/is-prop-valid": "*" + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@emotion/is-prop-valid": + optional: true + react: + optional: true + react-dom: + optional: true + checksum: 5d32013ddfe42d71aed7d341b3345f90b8b7c37f99f595c0f56ea278a3f32e388dda5c2fad09608706c942293dc329258e0c50c6bad2c95ddb2e25be42eb7a83 + languageName: node + linkType: hard + "fresh@npm:~0.5.2": version: 0.5.2 resolution: "fresh@npm:0.5.2" @@ -8765,6 +11533,212 @@ __metadata: languageName: node linkType: hard +"fumadocs-core@npm:^16.9.3": + version: 16.9.3 + resolution: "fumadocs-core@npm:16.9.3" + dependencies: + "@orama/orama": ^3.1.18 + estree-util-value-to-estree: ^3.5.0 + github-slugger: ^2.0.0 + hast-util-to-estree: ^3.1.3 + hast-util-to-jsx-runtime: ^2.3.6 + js-yaml: ^4.1.1 + mdast-util-mdx: ^3.0.0 + mdast-util-to-markdown: ^2.1.2 + remark: ^15.0.1 + remark-gfm: ^4.0.1 + remark-rehype: ^11.1.2 + scroll-into-view-if-needed: ^3.1.0 + shiki: ^4.1.0 + tinyglobby: ^0.2.16 + unified: ^11.0.5 + unist-util-visit: ^5.1.0 + vfile: ^6.0.3 + peerDependencies: + "@mdx-js/mdx": "*" + "@mixedbread/sdk": 0.x.x + "@orama/core": 1.x.x + "@oramacloud/client": 2.x.x + "@tanstack/react-router": 1.x.x + "@types/estree-jsx": "*" + "@types/hast": "*" + "@types/mdast": "*" + "@types/react": "*" + algoliasearch: 5.x.x + flexsearch: "*" + lucide-react: "*" + next: 16.x.x + react: ^19.2.0 + react-dom: ^19.2.0 + react-router: 7.x.x + waku: "*" + zod: 4.x.x + peerDependenciesMeta: + "@mdx-js/mdx": + optional: true + "@mixedbread/sdk": + optional: true + "@orama/core": + optional: true + "@oramacloud/client": + optional: true + "@tanstack/react-router": + optional: true + "@types/estree-jsx": + optional: true + "@types/hast": + optional: true + "@types/mdast": + optional: true + "@types/react": + optional: true + algoliasearch: + optional: true + flexsearch: + optional: true + lucide-react: + optional: true + next: + optional: true + react: + optional: true + react-dom: + optional: true + react-router: + optional: true + waku: + optional: true + zod: + optional: true + checksum: c9751278698c0e6453be09a854939bb23803d66c483005ca891b8247ece45fd347c932cd9d84f3e7d073947f4ceebf75530ca2388749864c90c4557804bfa116 + languageName: node + linkType: hard + +"fumadocs-mdx@npm:^15.0.11": + version: 15.0.11 + resolution: "fumadocs-mdx@npm:15.0.11" + dependencies: + "@mdx-js/mdx": ^3.1.1 + "@standard-schema/spec": ^1.1.0 + chokidar: ^5.0.0 + esbuild: ^0.28.0 + estree-util-value-to-estree: ^3.5.0 + js-yaml: ^4.2.0 + mdast-util-mdx: ^3.0.0 + picocolors: ^1.1.1 + picomatch: ^4.0.4 + tinyexec: ^1.2.4 + tinyglobby: ^0.2.17 + unified: ^11.0.5 + unist-util-remove-position: ^5.0.0 + unist-util-visit: ^5.1.0 + vfile: ^6.0.3 + zod: ^4.4.3 + peerDependencies: + "@types/mdast": "*" + "@types/mdx": "*" + "@types/react": "*" + fumadocs-core: ^16.7.0 + mdast-util-directive: "*" + next: ^15.3.0 || ^16.0.0 + react: ^19.2.0 + rolldown: "*" + vite: 7.x.x || 8.x.x + peerDependenciesMeta: + "@types/mdast": + optional: true + "@types/mdx": + optional: true + "@types/react": + optional: true + mdast-util-directive: + optional: true + next: + optional: true + react: + optional: true + rolldown: + optional: true + vite: + optional: true + bin: + fumadocs-mdx: ./bin.js + checksum: 27788253335843e914d578c07a862ab18da33ffeb22c3dc39b28cdec26ccd9377d4e7a1852159373cf24d357d06fc9dd2e6b29aa91666da6c3144ff026b27438 + languageName: node + linkType: hard + +"fumadocs-typescript@npm:^4.0.4": + version: 4.0.14 + resolution: "fumadocs-typescript@npm:4.0.14" + dependencies: + estree-util-value-to-estree: ^3.5.0 + hast-util-to-estree: ^3.1.3 + hast-util-to-jsx-runtime: ^2.3.6 + remark: ^15.0.1 + remark-rehype: ^11.1.2 + tinyglobby: ^0.2.15 + ts-morph: ^27.0.2 + unist-util-visit: ^5.0.0 + peerDependencies: + "@types/react": "*" + fumadocs-core: ^15.7.0 || ^16.0.0 + fumadocs-ui: ^15.7.0 || ^16.0.0 + typescript: "*" + peerDependenciesMeta: + "@types/react": + optional: true + fumadocs-ui: + optional: true + checksum: 92596cf76acf7307bb7f90cbaac207a0a6adaaacbd001b4569954543cc8c247b0bf6dc289d239247d5b50b0b26219771b3e355550ee63655b4959c1506a8eb6c + languageName: node + linkType: hard + +"fumadocs-ui@npm:^16.9.3": + version: 16.9.3 + resolution: "fumadocs-ui@npm:16.9.3" + dependencies: + "@fumadocs/tailwind": 0.0.5 + "@radix-ui/react-accordion": ^1.2.12 + "@radix-ui/react-collapsible": ^1.1.12 + "@radix-ui/react-dialog": ^1.1.15 + "@radix-ui/react-direction": ^1.1.1 + "@radix-ui/react-navigation-menu": ^1.2.14 + "@radix-ui/react-popover": ^1.1.15 + "@radix-ui/react-presence": ^1.1.5 + "@radix-ui/react-scroll-area": ^1.2.10 + "@radix-ui/react-slot": ^1.2.4 + "@radix-ui/react-tabs": ^1.1.13 + class-variance-authority: ^0.7.1 + lucide-react: ^1.17.0 + motion: ^12.40.0 + next-themes: ^0.4.6 + react-remove-scroll: ^2.7.2 + rehype-raw: ^7.0.0 + scroll-into-view-if-needed: ^3.1.0 + shiki: ^4.1.0 + tailwind-merge: ^3.6.0 + unist-util-visit: ^5.1.0 + peerDependencies: + "@takumi-rs/image-response": "*" + "@types/mdx": "*" + "@types/react": "*" + fumadocs-core: 16.9.3 + next: 16.x.x + react: ^19.2.0 + react-dom: ^19.2.0 + peerDependenciesMeta: + "@takumi-rs/image-response": + optional: true + "@types/mdx": + optional: true + "@types/react": + optional: true + next: + optional: true + checksum: d4ecdba9d038cdcf9e4b3a3cd9531b4535b576dd956cc1cf7cfdc1de0e7c762fc12e260ddd9a3a0c79a464323d2ed4923132f9ffdd9fa1de48933ba156b63d7f + languageName: node + linkType: hard + "function-bind@npm:^1.1.2": version: 1.1.2 resolution: "function-bind@npm:1.1.2" @@ -8835,6 +11809,13 @@ __metadata: languageName: node linkType: hard +"get-nonce@npm:^1.0.0": + version: 1.0.1 + resolution: "get-nonce@npm:1.0.1" + checksum: e2614e43b4694c78277bb61b0f04583d45786881289285c73770b07ded246a98be7e1f78b940c80cbe6f2b07f55f0b724e6db6fd6f1bcbd1e8bdac16521074ed + languageName: node + linkType: hard + "get-package-type@npm:^0.1.0": version: 0.1.0 resolution: "get-package-type@npm:0.1.0" @@ -8899,6 +11880,13 @@ __metadata: languageName: node linkType: hard +"github-slugger@npm:^2.0.0": + version: 2.0.0 + resolution: "github-slugger@npm:2.0.0" + checksum: 250375cde2058f21454872c2c79f72c4637340c30c51ff158ca4ec71cbc478f33d54477d787a662f9207aeb095a2060f155bc01f15329ba8a5fb6698e0fc81f8 + languageName: node + linkType: hard + "glamor@npm:~2.20.40": version: 2.20.40 resolution: "glamor@npm:2.20.40" @@ -9049,6 +12037,13 @@ __metadata: languageName: node linkType: hard +"hachure-fill@npm:^0.5.2": + version: 0.5.2 + resolution: "hachure-fill@npm:0.5.2" + checksum: 01cf2ac6b787ec73ced3d6eb393a0f989d55f32431d1e8a1c1c864769d1b8763c9cb6aa1d45fb1c237a065de90167491c6a46193690b688ea6c25f575f84586c + languageName: node + linkType: hard + "hard-rejection@npm:^2.1.0": version: 2.1.0 resolution: "hard-rejection@npm:2.1.0" @@ -9113,6 +12108,155 @@ __metadata: languageName: node linkType: hard +"hast-util-from-parse5@npm:^8.0.0": + version: 8.0.3 + resolution: "hast-util-from-parse5@npm:8.0.3" + dependencies: + "@types/hast": ^3.0.0 + "@types/unist": ^3.0.0 + devlop: ^1.0.0 + hastscript: ^9.0.0 + property-information: ^7.0.0 + vfile: ^6.0.0 + vfile-location: ^5.0.0 + web-namespaces: ^2.0.0 + checksum: 9ca68545a957a59f2bb18c834f1b7f72cdb1fc0d6b43233faa170e721c1f41da1bb0418b477b91332973c6bc2790a09bb07971fd8f0afe98b4cd111ea9fd7c8c + languageName: node + linkType: hard + +"hast-util-parse-selector@npm:^4.0.0": + version: 4.0.0 + resolution: "hast-util-parse-selector@npm:4.0.0" + dependencies: + "@types/hast": ^3.0.0 + checksum: 76087670d3b0b50b23a6cb70bca53a6176d6608307ccdbb3ed18b650b82e7c3513bfc40348f1389dc0c5ae872b9a768851f4335f44654abd7deafd6974c52402 + languageName: node + linkType: hard + +"hast-util-raw@npm:^9.0.0": + version: 9.1.0 + resolution: "hast-util-raw@npm:9.1.0" + dependencies: + "@types/hast": ^3.0.0 + "@types/unist": ^3.0.0 + "@ungap/structured-clone": ^1.0.0 + hast-util-from-parse5: ^8.0.0 + hast-util-to-parse5: ^8.0.0 + html-void-elements: ^3.0.0 + mdast-util-to-hast: ^13.0.0 + parse5: ^7.0.0 + unist-util-position: ^5.0.0 + unist-util-visit: ^5.0.0 + vfile: ^6.0.0 + web-namespaces: ^2.0.0 + zwitch: ^2.0.0 + checksum: 778961e2d3140362665b306caade3c12df3d03c48827a2cba3534411bb443323a86ad10ed8ef798dd7ebcccb1709edc8df7a62cedc67f69dc40482b6a855f14f + languageName: node + linkType: hard + +"hast-util-to-estree@npm:^3.0.0, hast-util-to-estree@npm:^3.1.3": + version: 3.1.3 + resolution: "hast-util-to-estree@npm:3.1.3" + dependencies: + "@types/estree": ^1.0.0 + "@types/estree-jsx": ^1.0.0 + "@types/hast": ^3.0.0 + comma-separated-tokens: ^2.0.0 + devlop: ^1.0.0 + estree-util-attach-comments: ^3.0.0 + estree-util-is-identifier-name: ^3.0.0 + hast-util-whitespace: ^3.0.0 + mdast-util-mdx-expression: ^2.0.0 + mdast-util-mdx-jsx: ^3.0.0 + mdast-util-mdxjs-esm: ^2.0.0 + property-information: ^7.0.0 + space-separated-tokens: ^2.0.0 + style-to-js: ^1.0.0 + unist-util-position: ^5.0.0 + zwitch: ^2.0.0 + checksum: 1db15b3a5a5958f61ed4e5e80dd248ed4ecca7e80c9241bb20cf4ee55721fd9a37b54aeb0caf86da2645ce3ce4dd217455d64418bb30339ddfb087e441e491b7 + languageName: node + linkType: hard + +"hast-util-to-html@npm:^9.0.5": + version: 9.0.5 + resolution: "hast-util-to-html@npm:9.0.5" + dependencies: + "@types/hast": ^3.0.0 + "@types/unist": ^3.0.0 + ccount: ^2.0.0 + comma-separated-tokens: ^2.0.0 + hast-util-whitespace: ^3.0.0 + html-void-elements: ^3.0.0 + mdast-util-to-hast: ^13.0.0 + property-information: ^7.0.0 + space-separated-tokens: ^2.0.0 + stringify-entities: ^4.0.0 + zwitch: ^2.0.4 + checksum: 1ebd013ad340cf646ea944100427917747f69543800e79b2186521dc29c205b4fe75d8062f3eddedf6d66f6180ca06fe127b9e53ff15a8f3579e36637ca43e16 + languageName: node + linkType: hard + +"hast-util-to-jsx-runtime@npm:^2.0.0, hast-util-to-jsx-runtime@npm:^2.3.6": + version: 2.3.6 + resolution: "hast-util-to-jsx-runtime@npm:2.3.6" + dependencies: + "@types/estree": ^1.0.0 + "@types/hast": ^3.0.0 + "@types/unist": ^3.0.0 + comma-separated-tokens: ^2.0.0 + devlop: ^1.0.0 + estree-util-is-identifier-name: ^3.0.0 + hast-util-whitespace: ^3.0.0 + mdast-util-mdx-expression: ^2.0.0 + mdast-util-mdx-jsx: ^3.0.0 + mdast-util-mdxjs-esm: ^2.0.0 + property-information: ^7.0.0 + space-separated-tokens: ^2.0.0 + style-to-js: ^1.0.0 + unist-util-position: ^5.0.0 + vfile-message: ^4.0.0 + checksum: 78c25465cf010f1004b22f0bbb3bd47793f458ead3561c779ea2b9204ceb1adc9c048592b0a15025df0c683a12ebe16a8bef008c06d9c0369f51116f64b35a2d + languageName: node + linkType: hard + +"hast-util-to-parse5@npm:^8.0.0": + version: 8.0.1 + resolution: "hast-util-to-parse5@npm:8.0.1" + dependencies: + "@types/hast": ^3.0.0 + comma-separated-tokens: ^2.0.0 + devlop: ^1.0.0 + property-information: ^7.0.0 + space-separated-tokens: ^2.0.0 + web-namespaces: ^2.0.0 + zwitch: ^2.0.0 + checksum: da35619354e03bb0bfc03d50873a7c9836383c384f46faa9a33b2e89c1381705ffc277c67daec059ae496084d2f404916159137456bd154a40682529b99d82ca + languageName: node + linkType: hard + +"hast-util-whitespace@npm:^3.0.0": + version: 3.0.0 + resolution: "hast-util-whitespace@npm:3.0.0" + dependencies: + "@types/hast": ^3.0.0 + checksum: 41d93ccce218ba935dc3c12acdf586193c35069489c8c8f50c2aa824c00dec94a3c78b03d1db40fa75381942a189161922e4b7bca700b3a2cc779634c351a1e4 + languageName: node + linkType: hard + +"hastscript@npm:^9.0.0": + version: 9.0.1 + resolution: "hastscript@npm:9.0.1" + dependencies: + "@types/hast": ^3.0.0 + comma-separated-tokens: ^2.0.0 + hast-util-parse-selector: ^4.0.0 + property-information: ^7.0.0 + space-separated-tokens: ^2.0.0 + checksum: 2bbb9a3c2dc43c9dec7f6599ef45e5eefb1c2a5f75d33d005dc432e92bf9d7cfb6c0d927f15a7592bb48601d2b582ea2e4b1131a716ac3f7b618a07d88f9a5d7 + languageName: node + linkType: hard + "hermes-compiler@npm:0.14.0": version: 0.14.0 resolution: "hermes-compiler@npm:0.14.0" @@ -9234,6 +12378,13 @@ __metadata: languageName: node linkType: hard +"html-void-elements@npm:^3.0.0": + version: 3.0.0 + resolution: "html-void-elements@npm:3.0.0" + checksum: 59be397525465a7489028afa064c55763d9cccd1d7d9f630cca47137317f0e897a9ca26cef7e745e7cff1abc44260cfa407742b243a54261dfacd42230e94fce + languageName: node + linkType: hard + "http-cache-semantics@npm:^4.1.1": version: 4.2.0 resolution: "http-cache-semantics@npm:4.2.0" @@ -9377,6 +12528,13 @@ __metadata: languageName: node linkType: hard +"import-meta-resolve@npm:^4.2.0": + version: 4.2.0 + resolution: "import-meta-resolve@npm:4.2.0" + checksum: fe5ca3258f22dc3dd4e2f2e8f6b54324c1cf0261216c7d9aae801b2eadf664bbd61e26cfb907a1238761285a3e9c8c23403321d52ca0e579c341b8d90c97fa52 + languageName: node + linkType: hard + "imurmurhash@npm:^0.1.4": version: 0.1.4 resolution: "imurmurhash@npm:0.1.4" @@ -9415,6 +12573,13 @@ __metadata: languageName: node linkType: hard +"inline-style-parser@npm:0.2.7": + version: 0.2.7 + resolution: "inline-style-parser@npm:0.2.7" + checksum: 7bf0b92aeae1f96f8a4316e38fc7441a885c221cc4b7fc1aa05835004b42a66fa863aaa5f7555a62e47fdf3da02628fbabee89d38b9edddd9e93597a55c18b5d + languageName: node + linkType: hard + "inline-style-prefixer@npm:^3.0.6": version: 3.0.8 resolution: "inline-style-prefixer@npm:3.0.8" @@ -9485,6 +12650,23 @@ __metadata: languageName: node linkType: hard +"is-alphabetical@npm:^2.0.0": + version: 2.0.1 + resolution: "is-alphabetical@npm:2.0.1" + checksum: 56207db8d9de0850f0cd30f4966bf731eb82cedfe496cbc2e97e7c3bacaf66fc54a972d2d08c0d93bb679cb84976a05d24c5ad63de56fabbfc60aadae312edaa + languageName: node + linkType: hard + +"is-alphanumerical@npm:^2.0.0": + version: 2.0.1 + resolution: "is-alphanumerical@npm:2.0.1" + dependencies: + is-alphabetical: ^2.0.0 + is-decimal: ^2.0.0 + checksum: 87acc068008d4c9c4e9f5bd5e251041d42e7a50995c77b1499cf6ed248f971aadeddb11f239cabf09f7975ee58cac7a48ffc170b7890076d8d227b24a68663c9 + languageName: node + linkType: hard + "is-array-buffer@npm:^3.0.4, is-array-buffer@npm:^3.0.5": version: 3.0.5 resolution: "is-array-buffer@npm:3.0.5" @@ -9588,6 +12770,13 @@ __metadata: languageName: node linkType: hard +"is-decimal@npm:^2.0.0": + version: 2.0.1 + resolution: "is-decimal@npm:2.0.1" + checksum: 97132de7acdce77caa7b797632970a2ecd649a88e715db0e4dbc00ab0708b5e7574ba5903962c860cd4894a14fd12b100c0c4ac8aed445cf6f55c6cf747a4158 + languageName: node + linkType: hard + "is-directory@npm:^0.3.1": version: 0.3.1 resolution: "is-directory@npm:0.3.1" @@ -9683,6 +12872,13 @@ __metadata: languageName: node linkType: hard +"is-hexadecimal@npm:^2.0.0": + version: 2.0.1 + resolution: "is-hexadecimal@npm:2.0.1" + checksum: 66a2ea85994c622858f063f23eda506db29d92b52580709eb6f4c19550552d4dcf3fb81952e52f7cf972097237959e00adc7bb8c9400cd12886e15bf06145321 + languageName: node + linkType: hard + "is-interactive@npm:^1.0.0": version: 1.0.0 resolution: "is-interactive@npm:1.0.0" @@ -9756,6 +12952,13 @@ __metadata: languageName: node linkType: hard +"is-plain-obj@npm:^4.0.0": + version: 4.1.0 + resolution: "is-plain-obj@npm:4.1.0" + checksum: 6dc45da70d04a81f35c9310971e78a6a3c7a63547ef782e3a07ee3674695081b6ca4e977fbb8efc48dae3375e0b34558d2bcd722aec9bddfa2d7db5b041be8ce + languageName: node + linkType: hard + "is-plain-object@npm:^2.0.4": version: 2.0.4 resolution: "is-plain-object@npm:2.0.4" @@ -10498,6 +13701,15 @@ __metadata: languageName: node linkType: hard +"jiti@npm:^2.6.1": + version: 2.7.0 + resolution: "jiti@npm:2.7.0" + bin: + jiti: lib/jiti-cli.mjs + checksum: e43d0859988f1f709a9a6c69833219ebdfe041fd2f7355a2a2151254c0c42b5a74de400f24d6b5d3d6689112fedae8be1ed4df29fcc1b891e8aa0992d33f3b16 + languageName: node + linkType: hard + "joi@npm:^17.2.1": version: 17.13.3 resolution: "joi@npm:17.13.3" @@ -10541,6 +13753,17 @@ __metadata: languageName: node linkType: hard +"js-yaml@npm:^4.2.0": + version: 4.2.0 + resolution: "js-yaml@npm:4.2.0" + dependencies: + argparse: ^2.0.1 + bin: + js-yaml: bin/js-yaml.js + checksum: 86bd35548a0c19cd1f5861147c09aa1f52eb0fc9464f34023524d22bbe079c62c30fd00750e63f632e8d12c12ad36ea0dd1e6bec5171c492ecad433d8db295eb + languageName: node + linkType: hard + "jsc-android@npm:^250231.0.0": version: 250231.0.0 resolution: "jsc-android@npm:250231.0.0" @@ -10708,6 +13931,17 @@ __metadata: languageName: node linkType: hard +"katex@npm:^0.16.25": + version: 0.16.47 + resolution: "katex@npm:0.16.47" + dependencies: + commander: ^8.3.0 + bin: + katex: cli.js + checksum: 0e69f15ae7491740c482b96a93085bcbd6cd0fb61b843f7229f7054ac72c48060c313c5cbcc2c9fd4b92fbcc22048f55187ff5f107d0a77da8bfba893344ceed + languageName: node + linkType: hard + "keyv@npm:^4.5.4": version: 4.5.4 resolution: "keyv@npm:4.5.4" @@ -10717,6 +13951,13 @@ __metadata: languageName: node linkType: hard +"khroma@npm:^2.1.0": + version: 2.1.0 + resolution: "khroma@npm:2.1.0" + checksum: b34ba39d3a9a52d388110bded8cb1c12272eb69c249d8eb26feab12d18a96a9bc4ceec4851d2afa43de4569f7d5ea78fa305965a3d0e96a38e02fe77c53677da + languageName: node + linkType: hard + "kind-of@npm:^6.0.2, kind-of@npm:^6.0.3": version: 6.0.3 resolution: "kind-of@npm:6.0.3" @@ -10738,6 +13979,20 @@ __metadata: languageName: node linkType: hard +"layout-base@npm:^1.0.0": + version: 1.0.2 + resolution: "layout-base@npm:1.0.2" + checksum: e4c312765ac4fa13b49c940e701461309c7a0aa07f784f81d31f626b945dced90a8abf83222388a5af16b7074271f745501a90ef5a3af676abb2e7eb16d55b2e + languageName: node + linkType: hard + +"layout-base@npm:^2.0.0": + version: 2.0.1 + resolution: "layout-base@npm:2.0.1" + checksum: ef93baf044f67c3680f4f3a6d628bf4c7faba0f70f3e0abb16e4811bed087045208560347ca749e123d169cbf872505ad84e11fb21b0be925997227e042c7f43 + languageName: node + linkType: hard + "leven@npm:^3.1.0": version: 3.1.0 resolution: "leven@npm:3.1.0" @@ -10765,6 +14020,126 @@ __metadata: languageName: node linkType: hard +"lightningcss-android-arm64@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-android-arm64@npm:1.32.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"lightningcss-darwin-arm64@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-darwin-arm64@npm:1.32.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"lightningcss-darwin-x64@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-darwin-x64@npm:1.32.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"lightningcss-freebsd-x64@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-freebsd-x64@npm:1.32.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"lightningcss-linux-arm-gnueabihf@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-linux-arm-gnueabihf@npm:1.32.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"lightningcss-linux-arm64-gnu@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-linux-arm64-gnu@npm:1.32.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"lightningcss-linux-arm64-musl@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-linux-arm64-musl@npm:1.32.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"lightningcss-linux-x64-gnu@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-linux-x64-gnu@npm:1.32.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"lightningcss-linux-x64-musl@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-linux-x64-musl@npm:1.32.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"lightningcss-win32-arm64-msvc@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-win32-arm64-msvc@npm:1.32.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"lightningcss-win32-x64-msvc@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-win32-x64-msvc@npm:1.32.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"lightningcss@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss@npm:1.32.0" + dependencies: + detect-libc: ^2.0.3 + lightningcss-android-arm64: 1.32.0 + lightningcss-darwin-arm64: 1.32.0 + lightningcss-darwin-x64: 1.32.0 + lightningcss-freebsd-x64: 1.32.0 + lightningcss-linux-arm-gnueabihf: 1.32.0 + lightningcss-linux-arm64-gnu: 1.32.0 + lightningcss-linux-arm64-musl: 1.32.0 + lightningcss-linux-x64-gnu: 1.32.0 + lightningcss-linux-x64-musl: 1.32.0 + lightningcss-win32-arm64-msvc: 1.32.0 + lightningcss-win32-x64-msvc: 1.32.0 + dependenciesMeta: + lightningcss-android-arm64: + optional: true + lightningcss-darwin-arm64: + optional: true + lightningcss-darwin-x64: + optional: true + lightningcss-freebsd-x64: + optional: true + lightningcss-linux-arm-gnueabihf: + optional: true + lightningcss-linux-arm64-gnu: + optional: true + lightningcss-linux-arm64-musl: + optional: true + lightningcss-linux-x64-gnu: + optional: true + lightningcss-linux-x64-musl: + optional: true + lightningcss-win32-arm64-msvc: + optional: true + lightningcss-win32-x64-msvc: + optional: true + checksum: 27adc4288cea141019c7bc010e0b10c7af9140348014273281d8474a5259dc02a00475aeee947dfcc6fbacc95b0d3fb7e7b32319e7d64df08ca1c85119ea75f6 + languageName: node + linkType: hard + "lines-and-columns@npm:^1.1.6": version: 1.2.4 resolution: "lines-and-columns@npm:1.2.4" @@ -10800,6 +14175,13 @@ __metadata: languageName: node linkType: hard +"lodash-es@npm:^4.17.21": + version: 4.18.1 + resolution: "lodash-es@npm:4.18.1" + checksum: 578993943cfa779e784aeed96766484ec6ab15cd855e52c79631de6371ac49fadd6dd9f4719f8d1223ab2bcb0dfbece484f548191dd34d3dd8b39e1af712a343 + languageName: node + linkType: hard + "lodash.debounce@npm:^4.0.8": version: 4.0.8 resolution: "lodash.debounce@npm:4.0.8" @@ -10858,6 +14240,13 @@ __metadata: languageName: node linkType: hard +"longest-streak@npm:^3.0.0": + version: 3.1.0 + resolution: "longest-streak@npm:3.1.0" + checksum: d7f952ed004cbdb5c8bcfc4f7f5c3d65449e6c5a9e9be4505a656e3df5a57ee125f284286b4bf8ecea0c21a7b3bf2b8f9001ad506c319b9815ad6a63a47d0fd0 + languageName: node + linkType: hard + "loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": version: 1.4.0 resolution: "loose-envify@npm:1.4.0" @@ -10908,87 +14297,351 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:^0.30.21": - version: 0.30.21 - resolution: "magic-string@npm:0.30.21" +"lucide-react@npm:^0.511.0": + version: 0.511.0 + resolution: "lucide-react@npm:0.511.0" + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: b347d276c1a8cdc51f6ca44ef09d51a3a916bfb58ef0a0d55c729b1afb54877c1bbad981313984751ea13e4cc9903bfeae346f112184c94158a5a39274daea65 + languageName: node + linkType: hard + +"lucide-react@npm:^1.17.0": + version: 1.17.0 + resolution: "lucide-react@npm:1.17.0" + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: 5a3a18fa6d7f9a3098e8a91c6f1b934e4d01eb222884076607d0fef9bf4fc7ee3bf4dc16433582413f74a6d4bcc22172ac02f0f2a95495c9cc6c9be7be3c2023 + languageName: node + linkType: hard + +"magic-string@npm:^0.30.21": + version: 0.30.21 + resolution: "magic-string@npm:0.30.21" + dependencies: + "@jridgewell/sourcemap-codec": ^1.5.5 + checksum: 4ff76a4e8d439431cf49f039658751ed351962d044e5955adc257489569bd676019c906b631f86319217689d04815d7d064ee3ff08ab82ae65b7655a7e82a414 + languageName: node + linkType: hard + +"make-dir@npm:^2.0.0, make-dir@npm:^2.1.0": + version: 2.1.0 + resolution: "make-dir@npm:2.1.0" + dependencies: + pify: ^4.0.1 + semver: ^5.6.0 + checksum: 043548886bfaf1820323c6a2997e6d2fa51ccc2586ac14e6f14634f7458b4db2daf15f8c310e2a0abd3e0cddc64df1890d8fc7263033602c47bb12cbfcf86aab + languageName: node + linkType: hard + +"make-dir@npm:^4.0.0": + version: 4.0.0 + resolution: "make-dir@npm:4.0.0" + dependencies: + semver: ^7.5.3 + checksum: bf0731a2dd3aab4db6f3de1585cea0b746bb73eb5a02e3d8d72757e376e64e6ada190b1eddcde5b2f24a81b688a9897efd5018737d05e02e2a671dda9cff8a8a + languageName: node + linkType: hard + +"make-fetch-happen@npm:^15.0.0": + version: 15.0.3 + resolution: "make-fetch-happen@npm:15.0.3" + dependencies: + "@npmcli/agent": ^4.0.0 + cacache: ^20.0.1 + http-cache-semantics: ^4.1.1 + minipass: ^7.0.2 + minipass-fetch: ^5.0.0 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + negotiator: ^1.0.0 + proc-log: ^6.0.0 + promise-retry: ^2.0.1 + ssri: ^13.0.0 + checksum: 4fb9dbb739b33565c85dacdcff7eb9388d8f36f326a59dc13375f01af809c42c48aa5d1f4840ee36623b2461a15476e1e79e4548ca1af30b42e1e324705ac8b3 + languageName: node + linkType: hard + +"makeerror@npm:1.0.12": + version: 1.0.12 + resolution: "makeerror@npm:1.0.12" + dependencies: + tmpl: 1.0.5 + checksum: b38a025a12c8146d6eeea5a7f2bf27d51d8ad6064da8ca9405fcf7bf9b54acd43e3b30ddd7abb9b1bfa4ddb266019133313482570ddb207de568f71ecfcf6060 + languageName: node + linkType: hard + +"map-obj@npm:^1.0.0": + version: 1.0.1 + resolution: "map-obj@npm:1.0.1" + checksum: 9949e7baec2a336e63b8d4dc71018c117c3ce6e39d2451ccbfd3b8350c547c4f6af331a4cbe1c83193d7c6b786082b6256bde843db90cb7da2a21e8fcc28afed + languageName: node + linkType: hard + +"map-obj@npm:^4.1.0": + version: 4.3.0 + resolution: "map-obj@npm:4.3.0" + checksum: fbc554934d1a27a1910e842bc87b177b1a556609dd803747c85ece420692380827c6ae94a95cce4407c054fa0964be3bf8226f7f2cb2e9eeee432c7c1985684e + languageName: node + linkType: hard + +"markdown-extensions@npm:^2.0.0": + version: 2.0.0 + resolution: "markdown-extensions@npm:2.0.0" + checksum: ec4ffcb0768f112e778e7ac74cb8ef22a966c168c3e6c29829f007f015b0a0b5c79c73ee8599a0c72e440e7f5cfdbf19e80e2d77b9a313b8f66e180a330cf1b2 + languageName: node + linkType: hard + +"markdown-table@npm:^3.0.0": + version: 3.0.4 + resolution: "markdown-table@npm:3.0.4" + checksum: bc24b177cbb3ef170cb38c9f191476aa63f7236ebc8980317c5e91b5bf98c8fb471cf46d8920478c5e770d7f4337326f6b5b3efbf0687c2044fd332d7a64dfcb + languageName: node + linkType: hard + +"marked@npm:^16.3.0": + version: 16.4.2 + resolution: "marked@npm:16.4.2" + bin: + marked: bin/marked.js + checksum: 8749bc6228ff59eb63f82c7310750336eb85c42c2b37d0d24f86807cf9e7b441bf8a20ed1bbcadfcd7a2db41d1b6069642286d4403815b90c2ce5be6aa00124c + languageName: node + linkType: hard + +"marky@npm:^1.2.2": + version: 1.3.0 + resolution: "marky@npm:1.3.0" + checksum: c25fe1d45525e317f89d116e87a50d385cc7e7d0d418548e75334273cb97990db37228c365718b5572077c80f22a599c732ccbd3da9728cd806465d63c786eda + languageName: node + linkType: hard + +"math-intrinsics@npm:^1.1.0": + version: 1.1.0 + resolution: "math-intrinsics@npm:1.1.0" + checksum: 0e513b29d120f478c85a70f49da0b8b19bc638975eca466f2eeae0071f3ad00454c621bf66e16dd435896c208e719fc91ad79bbfba4e400fe0b372e7c1c9c9a2 + languageName: node + linkType: hard + +"mdast-util-find-and-replace@npm:^3.0.0": + version: 3.0.2 + resolution: "mdast-util-find-and-replace@npm:3.0.2" + dependencies: + "@types/mdast": ^4.0.0 + escape-string-regexp: ^5.0.0 + unist-util-is: ^6.0.0 + unist-util-visit-parents: ^6.0.0 + checksum: 00dde8aaf87d065034b911bdae20d17c107f5103c6ba5a3d117598c847ce005c6b03114b5603e0d07cc61fefcbb05bdb9f66100efeaa0278dbd80eda1087595f + languageName: node + linkType: hard + +"mdast-util-from-markdown@npm:^2.0.0": + version: 2.0.3 + resolution: "mdast-util-from-markdown@npm:2.0.3" + dependencies: + "@types/mdast": ^4.0.0 + "@types/unist": ^3.0.0 + decode-named-character-reference: ^1.0.0 + devlop: ^1.0.0 + mdast-util-to-string: ^4.0.0 + micromark: ^4.0.0 + micromark-util-decode-numeric-character-reference: ^2.0.0 + micromark-util-decode-string: ^2.0.0 + micromark-util-normalize-identifier: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + unist-util-stringify-position: ^4.0.0 + checksum: 2e6e9fbf521e0974c8c83082a4e5e5d17c32442e7584cbe248f92037d6b4ea13b822af3380363b99e81b181cddf7e61e62353aa3746a395de7e2fd0101007b8e + languageName: node + linkType: hard + +"mdast-util-gfm-autolink-literal@npm:^2.0.0": + version: 2.0.1 + resolution: "mdast-util-gfm-autolink-literal@npm:2.0.1" + dependencies: + "@types/mdast": ^4.0.0 + ccount: ^2.0.0 + devlop: ^1.0.0 + mdast-util-find-and-replace: ^3.0.0 + micromark-util-character: ^2.0.0 + checksum: 5630b12e072d7004cb132231c94f667fb5813486779cb0dfb0a196d7ae0e048897a43b0b37e080017adda618ddfcbea1d7bf23c0fa31c87bfc683e0898ea1cfe + languageName: node + linkType: hard + +"mdast-util-gfm-footnote@npm:^2.0.0": + version: 2.1.0 + resolution: "mdast-util-gfm-footnote@npm:2.1.0" + dependencies: + "@types/mdast": ^4.0.0 + devlop: ^1.1.0 + mdast-util-from-markdown: ^2.0.0 + mdast-util-to-markdown: ^2.0.0 + micromark-util-normalize-identifier: ^2.0.0 + checksum: a23c5531d63b254b46cbcb063b5731f56ccc9d1f038a17fa66d3994255868604a2b963f24e0f5b16dd3374743622afafcfe0c98cf90548d485bdc426ba77c618 + languageName: node + linkType: hard + +"mdast-util-gfm-strikethrough@npm:^2.0.0": + version: 2.0.0 + resolution: "mdast-util-gfm-strikethrough@npm:2.0.0" + dependencies: + "@types/mdast": ^4.0.0 + mdast-util-from-markdown: ^2.0.0 + mdast-util-to-markdown: ^2.0.0 + checksum: fe9b1d0eba9b791ff9001c008744eafe3dd7a81b085f2bf521595ce4a8e8b1b44764ad9361761ad4533af3e5d913d8ad053abec38172031d9ee32a8ebd1c7dbd + languageName: node + linkType: hard + +"mdast-util-gfm-table@npm:^2.0.0": + version: 2.0.0 + resolution: "mdast-util-gfm-table@npm:2.0.0" + dependencies: + "@types/mdast": ^4.0.0 + devlop: ^1.0.0 + markdown-table: ^3.0.0 + mdast-util-from-markdown: ^2.0.0 + mdast-util-to-markdown: ^2.0.0 + checksum: 063a627fd0993548fd63ca0c24c437baf91ba7d51d0a38820bd459bc20bf3d13d7365ef8d28dca99176dd5eb26058f7dde51190479c186dfe6af2e11202957c9 + languageName: node + linkType: hard + +"mdast-util-gfm-task-list-item@npm:^2.0.0": + version: 2.0.0 + resolution: "mdast-util-gfm-task-list-item@npm:2.0.0" + dependencies: + "@types/mdast": ^4.0.0 + devlop: ^1.0.0 + mdast-util-from-markdown: ^2.0.0 + mdast-util-to-markdown: ^2.0.0 + checksum: 37db90c59b15330fc54d790404abf5ef9f2f83e8961c53666fe7de4aab8dd5e6b3c296b6be19797456711a89a27840291d8871ff0438e9b4e15c89d170efe072 + languageName: node + linkType: hard + +"mdast-util-gfm@npm:^3.0.0": + version: 3.1.0 + resolution: "mdast-util-gfm@npm:3.1.0" dependencies: - "@jridgewell/sourcemap-codec": ^1.5.5 - checksum: 4ff76a4e8d439431cf49f039658751ed351962d044e5955adc257489569bd676019c906b631f86319217689d04815d7d064ee3ff08ab82ae65b7655a7e82a414 + mdast-util-from-markdown: ^2.0.0 + mdast-util-gfm-autolink-literal: ^2.0.0 + mdast-util-gfm-footnote: ^2.0.0 + mdast-util-gfm-strikethrough: ^2.0.0 + mdast-util-gfm-table: ^2.0.0 + mdast-util-gfm-task-list-item: ^2.0.0 + mdast-util-to-markdown: ^2.0.0 + checksum: ecdadc0b46608d03eea53366cfee8c9441ddacc49fe4e12934eff8fea06f9377d2679d9d9e43177295c09c8d7def5f48d739f99b0f6144a0e228a77f5a1c76bc languageName: node linkType: hard -"make-dir@npm:^2.0.0, make-dir@npm:^2.1.0": - version: 2.1.0 - resolution: "make-dir@npm:2.1.0" +"mdast-util-mdx-expression@npm:^2.0.0": + version: 2.0.1 + resolution: "mdast-util-mdx-expression@npm:2.0.1" dependencies: - pify: ^4.0.1 - semver: ^5.6.0 - checksum: 043548886bfaf1820323c6a2997e6d2fa51ccc2586ac14e6f14634f7458b4db2daf15f8c310e2a0abd3e0cddc64df1890d8fc7263033602c47bb12cbfcf86aab + "@types/estree-jsx": ^1.0.0 + "@types/hast": ^3.0.0 + "@types/mdast": ^4.0.0 + devlop: ^1.0.0 + mdast-util-from-markdown: ^2.0.0 + mdast-util-to-markdown: ^2.0.0 + checksum: 6af56b06bde3ab971129db9855dcf0d31806c70b3b052d7a90a5499a366b57ffd0c2efca67d281c448c557298ba7e3e61bd07133733b735440840dd339b28e19 languageName: node linkType: hard -"make-dir@npm:^4.0.0": - version: 4.0.0 - resolution: "make-dir@npm:4.0.0" +"mdast-util-mdx-jsx@npm:^3.0.0": + version: 3.2.0 + resolution: "mdast-util-mdx-jsx@npm:3.2.0" dependencies: - semver: ^7.5.3 - checksum: bf0731a2dd3aab4db6f3de1585cea0b746bb73eb5a02e3d8d72757e376e64e6ada190b1eddcde5b2f24a81b688a9897efd5018737d05e02e2a671dda9cff8a8a + "@types/estree-jsx": ^1.0.0 + "@types/hast": ^3.0.0 + "@types/mdast": ^4.0.0 + "@types/unist": ^3.0.0 + ccount: ^2.0.0 + devlop: ^1.1.0 + mdast-util-from-markdown: ^2.0.0 + mdast-util-to-markdown: ^2.0.0 + parse-entities: ^4.0.0 + stringify-entities: ^4.0.0 + unist-util-stringify-position: ^4.0.0 + vfile-message: ^4.0.0 + checksum: 224f5f6ad247f0f2622ee36c82ac7a4c6a60c31850de4056bf95f531bd2f7ec8943ef34dfe8a8375851f65c07e4913c4f33045d703df4ff4d11b2de5a088f7f9 languageName: node linkType: hard -"make-fetch-happen@npm:^15.0.0": - version: 15.0.3 - resolution: "make-fetch-happen@npm:15.0.3" +"mdast-util-mdx@npm:^3.0.0": + version: 3.0.0 + resolution: "mdast-util-mdx@npm:3.0.0" dependencies: - "@npmcli/agent": ^4.0.0 - cacache: ^20.0.1 - http-cache-semantics: ^4.1.1 - minipass: ^7.0.2 - minipass-fetch: ^5.0.0 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - negotiator: ^1.0.0 - proc-log: ^6.0.0 - promise-retry: ^2.0.1 - ssri: ^13.0.0 - checksum: 4fb9dbb739b33565c85dacdcff7eb9388d8f36f326a59dc13375f01af809c42c48aa5d1f4840ee36623b2461a15476e1e79e4548ca1af30b42e1e324705ac8b3 + mdast-util-from-markdown: ^2.0.0 + mdast-util-mdx-expression: ^2.0.0 + mdast-util-mdx-jsx: ^3.0.0 + mdast-util-mdxjs-esm: ^2.0.0 + mdast-util-to-markdown: ^2.0.0 + checksum: e2b007d826fcd49fd57ed03e190753c8b0f7d9eff6c7cb26ba609cde15cd3a472c0cd5e4a1ee3e39a40f14be22fdb57de243e093cea0c064d6f3366cff3e3af2 languageName: node linkType: hard -"makeerror@npm:1.0.12": - version: 1.0.12 - resolution: "makeerror@npm:1.0.12" +"mdast-util-mdxjs-esm@npm:^2.0.0": + version: 2.0.1 + resolution: "mdast-util-mdxjs-esm@npm:2.0.1" dependencies: - tmpl: 1.0.5 - checksum: b38a025a12c8146d6eeea5a7f2bf27d51d8ad6064da8ca9405fcf7bf9b54acd43e3b30ddd7abb9b1bfa4ddb266019133313482570ddb207de568f71ecfcf6060 + "@types/estree-jsx": ^1.0.0 + "@types/hast": ^3.0.0 + "@types/mdast": ^4.0.0 + devlop: ^1.0.0 + mdast-util-from-markdown: ^2.0.0 + mdast-util-to-markdown: ^2.0.0 + checksum: 1f9dad04d31d59005332e9157ea9510dc1d03092aadbc607a10475c7eec1c158b475aa0601a3a4f74e13097ca735deb8c2d9d37928ddef25d3029fd7c9e14dc3 languageName: node linkType: hard -"map-obj@npm:^1.0.0": - version: 1.0.1 - resolution: "map-obj@npm:1.0.1" - checksum: 9949e7baec2a336e63b8d4dc71018c117c3ce6e39d2451ccbfd3b8350c547c4f6af331a4cbe1c83193d7c6b786082b6256bde843db90cb7da2a21e8fcc28afed +"mdast-util-phrasing@npm:^4.0.0": + version: 4.1.0 + resolution: "mdast-util-phrasing@npm:4.1.0" + dependencies: + "@types/mdast": ^4.0.0 + unist-util-is: ^6.0.0 + checksum: 3a97533e8ad104a422f8bebb34b3dde4f17167b8ed3a721cf9263c7416bd3447d2364e6d012a594aada40cac9e949db28a060bb71a982231693609034ed5324e languageName: node linkType: hard -"map-obj@npm:^4.1.0": - version: 4.3.0 - resolution: "map-obj@npm:4.3.0" - checksum: fbc554934d1a27a1910e842bc87b177b1a556609dd803747c85ece420692380827c6ae94a95cce4407c054fa0964be3bf8226f7f2cb2e9eeee432c7c1985684e +"mdast-util-to-hast@npm:^13.0.0": + version: 13.2.1 + resolution: "mdast-util-to-hast@npm:13.2.1" + dependencies: + "@types/hast": ^3.0.0 + "@types/mdast": ^4.0.0 + "@ungap/structured-clone": ^1.0.0 + devlop: ^1.0.0 + micromark-util-sanitize-uri: ^2.0.0 + trim-lines: ^3.0.0 + unist-util-position: ^5.0.0 + unist-util-visit: ^5.0.0 + vfile: ^6.0.0 + checksum: 20537df653be3653c3c6ea4be09ea1f67ca2f5e6afea027fcc3cde531656dc669a5e733d34a95b08b3ee71ab164c7b24352c8212891f723ddcec74d5a046bfd6 languageName: node linkType: hard -"marky@npm:^1.2.2": - version: 1.3.0 - resolution: "marky@npm:1.3.0" - checksum: c25fe1d45525e317f89d116e87a50d385cc7e7d0d418548e75334273cb97990db37228c365718b5572077c80f22a599c732ccbd3da9728cd806465d63c786eda +"mdast-util-to-markdown@npm:^2.0.0, mdast-util-to-markdown@npm:^2.1.2": + version: 2.1.2 + resolution: "mdast-util-to-markdown@npm:2.1.2" + dependencies: + "@types/mdast": ^4.0.0 + "@types/unist": ^3.0.0 + longest-streak: ^3.0.0 + mdast-util-phrasing: ^4.0.0 + mdast-util-to-string: ^4.0.0 + micromark-util-classify-character: ^2.0.0 + micromark-util-decode-string: ^2.0.0 + unist-util-visit: ^5.0.0 + zwitch: ^2.0.0 + checksum: 288d152bd50c00632e6e01c610bb904a220d1e226c8086c40627877959746f83ab0b872f4150cb7d910198953b1bf756e384ac3fee3e7b0ddb4517f9084c5803 languageName: node linkType: hard -"math-intrinsics@npm:^1.1.0": - version: 1.1.0 - resolution: "math-intrinsics@npm:1.1.0" - checksum: 0e513b29d120f478c85a70f49da0b8b19bc638975eca466f2eeae0071f3ad00454c621bf66e16dd435896c208e719fc91ad79bbfba4e400fe0b372e7c1c9c9a2 +"mdast-util-to-string@npm:^4.0.0": + version: 4.0.0 + resolution: "mdast-util-to-string@npm:4.0.0" + dependencies: + "@types/mdast": ^4.0.0 + checksum: 35489fb5710d58cbc2d6c8b6547df161a3f81e0f28f320dfb3548a9393555daf07c310c0c497708e67ed4dfea4a06e5655799e7d631ca91420c288b4525d6c29 languageName: node linkType: hard @@ -11040,6 +14693,35 @@ __metadata: languageName: node linkType: hard +"mermaid@npm:^11.15.0": + version: 11.15.0 + resolution: "mermaid@npm:11.15.0" + dependencies: + "@braintree/sanitize-url": ^7.1.1 + "@iconify/utils": ^3.0.2 + "@mermaid-js/parser": ^1.1.1 + "@types/d3": ^7.4.3 + "@upsetjs/venn.js": ^2.0.0 + cytoscape: ^3.33.1 + cytoscape-cose-bilkent: ^4.1.0 + cytoscape-fcose: ^2.2.0 + d3: ^7.9.0 + d3-sankey: ^0.12.3 + dagre-d3-es: 7.0.14 + dayjs: ^1.11.19 + dompurify: ^3.3.1 + es-toolkit: ^1.45.1 + katex: ^0.16.25 + khroma: ^2.1.0 + marked: ^16.3.0 + roughjs: ^4.6.6 + stylis: ^4.3.6 + ts-dedent: ^2.2.0 + uuid: ^11.1.0 || ^12 || ^13 || ^14.0.0 + checksum: 0d15e57372a395847b35f9b3194b02948e7a3f145dda9efcd56d07987195a8cece8c25cb95249387c82d4b71a2a8b74df62c96ab38e9014bc7086afbd11b854f + languageName: node + linkType: hard + "meshoptimizer@npm:~1.1.1": version: 1.1.1 resolution: "meshoptimizer@npm:1.1.1" @@ -11679,53 +15361,490 @@ __metadata: languageName: node linkType: hard -"metro@npm:0.83.3, metro@npm:^0.83.1, metro@npm:^0.83.3": - version: 0.83.3 - resolution: "metro@npm:0.83.3" +"metro@npm:0.83.3, metro@npm:^0.83.1, metro@npm:^0.83.3": + version: 0.83.3 + resolution: "metro@npm:0.83.3" + dependencies: + "@babel/code-frame": ^7.24.7 + "@babel/core": ^7.25.2 + "@babel/generator": ^7.25.0 + "@babel/parser": ^7.25.3 + "@babel/template": ^7.25.0 + "@babel/traverse": ^7.25.3 + "@babel/types": ^7.25.2 + accepts: ^1.3.7 + chalk: ^4.0.0 + ci-info: ^2.0.0 + connect: ^3.6.5 + debug: ^4.4.0 + error-stack-parser: ^2.0.6 + flow-enums-runtime: ^0.0.6 + graceful-fs: ^4.2.4 + hermes-parser: 0.32.0 + image-size: ^1.0.2 + invariant: ^2.2.4 + jest-worker: ^29.7.0 + jsc-safe-url: ^0.2.2 + lodash.throttle: ^4.1.1 + metro-babel-transformer: 0.83.3 + metro-cache: 0.83.3 + metro-cache-key: 0.83.3 + metro-config: 0.83.3 + metro-core: 0.83.3 + metro-file-map: 0.83.3 + metro-resolver: 0.83.3 + metro-runtime: 0.83.3 + metro-source-map: 0.83.3 + metro-symbolicate: 0.83.3 + metro-transform-plugins: 0.83.3 + metro-transform-worker: 0.83.3 + mime-types: ^2.1.27 + nullthrows: ^1.1.1 + serialize-error: ^2.1.0 + source-map: ^0.5.6 + throat: ^5.0.0 + ws: ^7.5.10 + yargs: ^17.6.2 + bin: + metro: src/cli.js + checksum: 306d8c06b5a1a45e18df6e41f494bbc8b439700985429284eea7b3c3c82108e3c3795d859a8ab3ed7a85793d64e3160519be9aa84c6418d6ed37bd5ae4500b57 + languageName: node + linkType: hard + +"micromark-core-commonmark@npm:^2.0.0": + version: 2.0.3 + resolution: "micromark-core-commonmark@npm:2.0.3" + dependencies: + decode-named-character-reference: ^1.0.0 + devlop: ^1.0.0 + micromark-factory-destination: ^2.0.0 + micromark-factory-label: ^2.0.0 + micromark-factory-space: ^2.0.0 + micromark-factory-title: ^2.0.0 + micromark-factory-whitespace: ^2.0.0 + micromark-util-character: ^2.0.0 + micromark-util-chunked: ^2.0.0 + micromark-util-classify-character: ^2.0.0 + micromark-util-html-tag-name: ^2.0.0 + micromark-util-normalize-identifier: ^2.0.0 + micromark-util-resolve-all: ^2.0.0 + micromark-util-subtokenize: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: cfb0fd9c895f86a4e9344f7f0344fe6bd1018945798222835248146a42430b8c7bc0b2857af574cf4e1b4ce4e5c1a35a1479942421492e37baddde8de85814dc + languageName: node + linkType: hard + +"micromark-extension-gfm-autolink-literal@npm:^2.0.0": + version: 2.1.0 + resolution: "micromark-extension-gfm-autolink-literal@npm:2.1.0" + dependencies: + micromark-util-character: ^2.0.0 + micromark-util-sanitize-uri: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: e00a570c70c837b9cbbe94b2c23b787f44e781cd19b72f1828e3453abca2a9fb600fa539cdc75229fa3919db384491063645086e02249481e6ff3ec2c18f767c + languageName: node + linkType: hard + +"micromark-extension-gfm-footnote@npm:^2.0.0": + version: 2.1.0 + resolution: "micromark-extension-gfm-footnote@npm:2.1.0" + dependencies: + devlop: ^1.0.0 + micromark-core-commonmark: ^2.0.0 + micromark-factory-space: ^2.0.0 + micromark-util-character: ^2.0.0 + micromark-util-normalize-identifier: ^2.0.0 + micromark-util-sanitize-uri: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: ac6fb039e98395d37b71ebff7c7a249aef52678b5cf554c89c4f716111d4be62ef99a5d715a5bd5d68fa549778c977d85cb671d1d8506dc8a3a1b46e867ae52f + languageName: node + linkType: hard + +"micromark-extension-gfm-strikethrough@npm:^2.0.0": + version: 2.1.0 + resolution: "micromark-extension-gfm-strikethrough@npm:2.1.0" + dependencies: + devlop: ^1.0.0 + micromark-util-chunked: ^2.0.0 + micromark-util-classify-character: ^2.0.0 + micromark-util-resolve-all: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: cdb7a38dd6eefb6ceb6792a44a6796b10f951e8e3e45b8579f599f43e7ae26ccd048c0aa7e441b3c29dd0c54656944fe6eb0098de2bc4b5106fbc0a42e9e016c + languageName: node + linkType: hard + +"micromark-extension-gfm-table@npm:^2.0.0": + version: 2.1.1 + resolution: "micromark-extension-gfm-table@npm:2.1.1" + dependencies: + devlop: ^1.0.0 + micromark-factory-space: ^2.0.0 + micromark-util-character: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 16a59c8c2381c8418d9cf36c605abb0b66cfebaad07e09c4c9b113298d13e0c517b652885529fcb74d149afec3f6e8ab065fd27a900073d5ec0a1d8f0c51b593 + languageName: node + linkType: hard + +"micromark-extension-gfm-tagfilter@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-extension-gfm-tagfilter@npm:2.0.0" + dependencies: + micromark-util-types: ^2.0.0 + checksum: cf21552f4a63592bfd6c96ae5d64a5f22bda4e77814e3f0501bfe80e7a49378ad140f827007f36044666f176b3a0d5fea7c2e8e7973ce4b4579b77789f01ae95 + languageName: node + linkType: hard + +"micromark-extension-gfm-task-list-item@npm:^2.0.0": + version: 2.1.0 + resolution: "micromark-extension-gfm-task-list-item@npm:2.1.0" + dependencies: + devlop: ^1.0.0 + micromark-factory-space: ^2.0.0 + micromark-util-character: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: b1ad86a4e9d68d9ad536d94fb25a5182acbc85cc79318f4a6316034342f6a71d67983cc13f12911d0290fd09b2bda43cdabe8781a2d9cca2ebe0d421e8b2b8a4 + languageName: node + linkType: hard + +"micromark-extension-gfm@npm:^3.0.0": + version: 3.0.0 + resolution: "micromark-extension-gfm@npm:3.0.0" + dependencies: + micromark-extension-gfm-autolink-literal: ^2.0.0 + micromark-extension-gfm-footnote: ^2.0.0 + micromark-extension-gfm-strikethrough: ^2.0.0 + micromark-extension-gfm-table: ^2.0.0 + micromark-extension-gfm-tagfilter: ^2.0.0 + micromark-extension-gfm-task-list-item: ^2.0.0 + micromark-util-combine-extensions: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 2060fa62666a09532d6b3a272d413bc1b25bbb262f921d7402795ac021e1362c8913727e33d7528d5b4ccaf26922ec51208c43f795a702964817bc986de886c9 + languageName: node + linkType: hard + +"micromark-extension-mdx-expression@npm:^3.0.0": + version: 3.0.1 + resolution: "micromark-extension-mdx-expression@npm:3.0.1" + dependencies: + "@types/estree": ^1.0.0 + devlop: ^1.0.0 + micromark-factory-mdx-expression: ^2.0.0 + micromark-factory-space: ^2.0.0 + micromark-util-character: ^2.0.0 + micromark-util-events-to-acorn: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 0e15bc3911b53704723acc300d99093e46e31a1f2210f6fadeaf065d04c964cd4588cf4aa1e9c324430bfd943dfa7f36e369a3bc92f4641015b107bbb2190034 + languageName: node + linkType: hard + +"micromark-extension-mdx-jsx@npm:^3.0.0": + version: 3.0.2 + resolution: "micromark-extension-mdx-jsx@npm:3.0.2" + dependencies: + "@types/estree": ^1.0.0 + devlop: ^1.0.0 + estree-util-is-identifier-name: ^3.0.0 + micromark-factory-mdx-expression: ^2.0.0 + micromark-factory-space: ^2.0.0 + micromark-util-character: ^2.0.0 + micromark-util-events-to-acorn: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + vfile-message: ^4.0.0 + checksum: abe07e592a95804445d2c667bc999696ac39ddd551374f5a39e2d910c8b25e75bf61b4933213696f7bc26f4a5a56d91b3ce31d9a063b6fd7bbd4633565b1d6ec + languageName: node + linkType: hard + +"micromark-extension-mdx-md@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-extension-mdx-md@npm:2.0.0" + dependencies: + micromark-util-types: ^2.0.0 + checksum: 7daf03372fd7faddf3f0ac87bdb0debb0bb770f33b586f72251e1072b222ceee75400ab6194c0e130dbf1e077369a5b627be6e9130d7a2e9e6b849f0d18ff246 + languageName: node + linkType: hard + +"micromark-extension-mdxjs-esm@npm:^3.0.0": + version: 3.0.0 + resolution: "micromark-extension-mdxjs-esm@npm:3.0.0" + dependencies: + "@types/estree": ^1.0.0 + devlop: ^1.0.0 + micromark-core-commonmark: ^2.0.0 + micromark-util-character: ^2.0.0 + micromark-util-events-to-acorn: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + unist-util-position-from-estree: ^2.0.0 + vfile-message: ^4.0.0 + checksum: fb33d850200afce567b95c90f2f7d42259bd33eea16154349e4fa77c3ec934f46c8e5c111acea16321dce3d9f85aaa4c49afe8b810e31b34effc11617aeee8f6 + languageName: node + linkType: hard + +"micromark-extension-mdxjs@npm:^3.0.0": + version: 3.0.0 + resolution: "micromark-extension-mdxjs@npm:3.0.0" + dependencies: + acorn: ^8.0.0 + acorn-jsx: ^5.0.0 + micromark-extension-mdx-expression: ^3.0.0 + micromark-extension-mdx-jsx: ^3.0.0 + micromark-extension-mdx-md: ^2.0.0 + micromark-extension-mdxjs-esm: ^3.0.0 + micromark-util-combine-extensions: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 7da6f0fb0e1e0270a2f5ad257e7422cc16e68efa7b8214c63c9d55bc264cb872e9ca4ac9a71b9dfd13daf52e010f730bac316086f4340e4fcc6569ec699915bf + languageName: node + linkType: hard + +"micromark-factory-destination@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-factory-destination@npm:2.0.1" + dependencies: + micromark-util-character: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 9c4baa9ca2ed43c061bbf40ddd3d85154c2a0f1f485de9dea41d7dd2ad994ebb02034a003b2c1dbe228ba83a0576d591f0e90e0bf978713f84ee7d7f3aa98320 + languageName: node + linkType: hard + +"micromark-factory-label@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-factory-label@npm:2.0.1" + dependencies: + devlop: ^1.0.0 + micromark-util-character: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: bd03f5a75f27cdbf03b894ddc5c4480fc0763061fecf9eb927d6429233c930394f223969a99472df142d570c831236134de3dc23245d23d9f046f9d0b623b5c2 + languageName: node + linkType: hard + +"micromark-factory-mdx-expression@npm:^2.0.0": + version: 2.0.3 + resolution: "micromark-factory-mdx-expression@npm:2.0.3" + dependencies: + "@types/estree": ^1.0.0 + devlop: ^1.0.0 + micromark-factory-space: ^2.0.0 + micromark-util-character: ^2.0.0 + micromark-util-events-to-acorn: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + unist-util-position-from-estree: ^2.0.0 + vfile-message: ^4.0.0 + checksum: f007987092a3bd00617f023d324caff10c63982e5125a3e3ff147baaf03f378e21c47306e2094b8c6480a726c57785c2175b4ffc3f3a6fde8be87e40fbdff068 + languageName: node + linkType: hard + +"micromark-factory-space@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-factory-space@npm:2.0.1" + dependencies: + micromark-util-character: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 1bd68a017c1a66f4787506660c1e1c5019169aac3b1cb075d49ac5e360e0b2065e984d4e1d6e9e52a9d44000f2fa1c98e66a743d7aae78b4b05616bf3242ed71 + languageName: node + linkType: hard + +"micromark-factory-title@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-factory-title@npm:2.0.1" + dependencies: + micromark-factory-space: ^2.0.0 + micromark-util-character: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: b4d2e4850a8ba0dff25ce54e55a3eb0d43dda88a16293f53953153288f9d84bcdfa8ca4606b2cfbb4f132ea79587bbb478a73092a349f893f5264fbcdbce2ee1 + languageName: node + linkType: hard + +"micromark-factory-whitespace@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-factory-whitespace@npm:2.0.1" + dependencies: + micromark-factory-space: ^2.0.0 + micromark-util-character: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 67b3944d012a42fee9e10e99178254a04d48af762b54c10a50fcab988688799993efb038daf9f5dbc04001a97b9c1b673fc6f00e6a56997877ab25449f0c8650 + languageName: node + linkType: hard + +"micromark-util-character@npm:^2.0.0": + version: 2.1.1 + resolution: "micromark-util-character@npm:2.1.1" + dependencies: + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: e9e409efe4f2596acd44587e8591b722bfc041c1577e8fe0d9c007a4776fb800f9b3637a22862ad2ba9489f4bdf72bb547fce5767dbbfe0a5e6760e2a21c6495 + languageName: node + linkType: hard + +"micromark-util-chunked@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-chunked@npm:2.0.1" + dependencies: + micromark-util-symbol: ^2.0.0 + checksum: f8cb2a67bcefe4bd2846d838c97b777101f0043b9f1de4f69baf3e26bb1f9885948444e3c3aec66db7595cad8173bd4567a000eb933576c233d54631f6323fe4 + languageName: node + linkType: hard + +"micromark-util-classify-character@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-classify-character@npm:2.0.1" + dependencies: + micromark-util-character: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 4d8bbe3a6dbf69ac0fc43516866b5bab019fe3f4568edc525d4feaaaf78423fa54e6b6732b5bccbeed924455279a3758ffc9556954aafb903982598a95a02704 + languageName: node + linkType: hard + +"micromark-util-combine-extensions@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-combine-extensions@npm:2.0.1" + dependencies: + micromark-util-chunked: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 5d22fb9ee37e8143adfe128a72b50fa09568c2cc553b3c76160486c96dbbb298c5802a177a10a215144a604b381796071b5d35be1f2c2b2ee17995eda92f0c8e + languageName: node + linkType: hard + +"micromark-util-decode-numeric-character-reference@npm:^2.0.0": + version: 2.0.2 + resolution: "micromark-util-decode-numeric-character-reference@npm:2.0.2" + dependencies: + micromark-util-symbol: ^2.0.0 + checksum: ee11c8bde51e250e302050474c4a2adca094bca05c69f6cdd241af12df285c48c88d19ee6e022b9728281c280be16328904adca994605680c43af56019f4b0b6 + languageName: node + linkType: hard + +"micromark-util-decode-string@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-decode-string@npm:2.0.1" + dependencies: + decode-named-character-reference: ^1.0.0 + micromark-util-character: ^2.0.0 + micromark-util-decode-numeric-character-reference: ^2.0.0 + micromark-util-symbol: ^2.0.0 + checksum: e9546ae53f9b5a4f9aa6aaf3e750087100d3429485ca80dbacec99ff2bb15a406fa7d93784a0fc2fe05ad7296b9295e75160ef71faec9e90110b7be2ae66241a + languageName: node + linkType: hard + +"micromark-util-encode@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-encode@npm:2.0.1" + checksum: be890b98e78dd0cdd953a313f4148c4692cc2fb05533e56fef5f421287d3c08feee38ca679f318e740530791fc251bfe8c80efa926fcceb4419b269c9343d226 + languageName: node + linkType: hard + +"micromark-util-events-to-acorn@npm:^2.0.0": + version: 2.0.3 + resolution: "micromark-util-events-to-acorn@npm:2.0.3" + dependencies: + "@types/estree": ^1.0.0 + "@types/unist": ^3.0.0 + devlop: ^1.0.0 + estree-util-visit: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + vfile-message: ^4.0.0 + checksum: 8240f1aa072b3a2ec6df4fb55a0a19dd9f53923125a892da156e378b2af0333557f803f8da5228b03e5b1511c999701f0edbff9e483d00c5af5840f8466fb314 + languageName: node + linkType: hard + +"micromark-util-html-tag-name@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-html-tag-name@npm:2.0.1" + checksum: dea365f5ad28ad74ff29fcb581f7b74fc1f80271c5141b3b2bc91c454cbb6dfca753f28ae03730d657874fcbd89d0494d0e3965dfdca06d9855f467c576afa9d + languageName: node + linkType: hard + +"micromark-util-normalize-identifier@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-normalize-identifier@npm:2.0.1" dependencies: - "@babel/code-frame": ^7.24.7 - "@babel/core": ^7.25.2 - "@babel/generator": ^7.25.0 - "@babel/parser": ^7.25.3 - "@babel/template": ^7.25.0 - "@babel/traverse": ^7.25.3 - "@babel/types": ^7.25.2 - accepts: ^1.3.7 - chalk: ^4.0.0 - ci-info: ^2.0.0 - connect: ^3.6.5 - debug: ^4.4.0 - error-stack-parser: ^2.0.6 - flow-enums-runtime: ^0.0.6 - graceful-fs: ^4.2.4 - hermes-parser: 0.32.0 - image-size: ^1.0.2 - invariant: ^2.2.4 - jest-worker: ^29.7.0 - jsc-safe-url: ^0.2.2 - lodash.throttle: ^4.1.1 - metro-babel-transformer: 0.83.3 - metro-cache: 0.83.3 - metro-cache-key: 0.83.3 - metro-config: 0.83.3 - metro-core: 0.83.3 - metro-file-map: 0.83.3 - metro-resolver: 0.83.3 - metro-runtime: 0.83.3 - metro-source-map: 0.83.3 - metro-symbolicate: 0.83.3 - metro-transform-plugins: 0.83.3 - metro-transform-worker: 0.83.3 - mime-types: ^2.1.27 - nullthrows: ^1.1.1 - serialize-error: ^2.1.0 - source-map: ^0.5.6 - throat: ^5.0.0 - ws: ^7.5.10 - yargs: ^17.6.2 - bin: - metro: src/cli.js - checksum: 306d8c06b5a1a45e18df6e41f494bbc8b439700985429284eea7b3c3c82108e3c3795d859a8ab3ed7a85793d64e3160519be9aa84c6418d6ed37bd5ae4500b57 + micromark-util-symbol: ^2.0.0 + checksum: 1eb9a289d7da067323df9fdc78bfa90ca3207ad8fd893ca02f3133e973adcb3743b233393d23d95c84ccaf5d220ae7f5a28402a644f135dcd4b8cfa60a7b5f84 + languageName: node + linkType: hard + +"micromark-util-resolve-all@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-resolve-all@npm:2.0.1" + dependencies: + micromark-util-types: ^2.0.0 + checksum: 9275f3ddb6c26f254dd2158e66215d050454b279707a7d9ce5a3cd0eba23201021cedcb78ae1a746c1b23227dcc418ee40dd074ade195359506797a5493550cc + languageName: node + linkType: hard + +"micromark-util-sanitize-uri@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-sanitize-uri@npm:2.0.1" + dependencies: + micromark-util-character: ^2.0.0 + micromark-util-encode: ^2.0.0 + micromark-util-symbol: ^2.0.0 + checksum: d01517840c17de67aaa0b0f03bfe05fac8a41d99723cd8ce16c62f6810e99cd3695364a34c335485018e5e2c00e69031744630a1b85c6868aa2f2ca1b36daa2f + languageName: node + linkType: hard + +"micromark-util-subtokenize@npm:^2.0.0": + version: 2.1.0 + resolution: "micromark-util-subtokenize@npm:2.1.0" + dependencies: + devlop: ^1.0.0 + micromark-util-chunked: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 2e194bc8a5279d256582020500e5072a95c1094571be49043704343032e1fffbe09c862ef9c131cf5c762e296ddb54ff8bc767b3786a798524a68d1db6942934 + languageName: node + linkType: hard + +"micromark-util-symbol@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-symbol@npm:2.0.1" + checksum: fb7346950550bc85a55793dda94a8b3cb3abc068dbd7570d1162db7aee803411d06c0a5de4ae59cd945f46143bdeadd4bba02a02248fa0d18cc577babaa00044 + languageName: node + linkType: hard + +"micromark-util-types@npm:^2.0.0": + version: 2.0.2 + resolution: "micromark-util-types@npm:2.0.2" + checksum: 884f7974839e4bc6d2bd662e57c973a9164fd5c0d8fe16cddf07472b86a7e6726747c00674952c0321d17685d700cd3295e9f58a842a53acdf6c6d55ab051aab + languageName: node + linkType: hard + +"micromark@npm:^4.0.0": + version: 4.0.2 + resolution: "micromark@npm:4.0.2" + dependencies: + "@types/debug": ^4.0.0 + debug: ^4.0.0 + decode-named-character-reference: ^1.0.0 + devlop: ^1.0.0 + micromark-core-commonmark: ^2.0.0 + micromark-factory-space: ^2.0.0 + micromark-util-character: ^2.0.0 + micromark-util-chunked: ^2.0.0 + micromark-util-combine-extensions: ^2.0.0 + micromark-util-decode-numeric-character-reference: ^2.0.0 + micromark-util-encode: ^2.0.0 + micromark-util-normalize-identifier: ^2.0.0 + micromark-util-resolve-all: ^2.0.0 + micromark-util-sanitize-uri: ^2.0.0 + micromark-util-subtokenize: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 5306c15dd12f543755bc627fc361d4255dfc430e7af6069a07ac0eacc338fbd761fe8e93f02a8bfab6097bab12ee903192fe31389222459d5029242a5aaba3b8 languageName: node linkType: hard @@ -11787,6 +15906,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^10.0.1": + version: 10.2.5 + resolution: "minimatch@npm:10.2.5" + dependencies: + brace-expansion: ^5.0.5 + checksum: 000423875fecbc7da1d74bf63c9081363a71291ef2588c376c45647ac004582cb5bc8cc09ef84420b26bfb490f4d0818d328e78569c6228e20d90271283f73ba + languageName: node + linkType: hard + "minimatch@npm:^10.1.1": version: 10.1.1 resolution: "minimatch@npm:10.1.1" @@ -11953,6 +16081,43 @@ __metadata: languageName: node linkType: hard +"motion-dom@npm:^12.40.0": + version: 12.40.0 + resolution: "motion-dom@npm:12.40.0" + dependencies: + motion-utils: ^12.39.0 + checksum: b04b73a0504eaf4e4cad298b1a0c28db14941b95df7372d3e8ecc376dc06de13fd3b3dcf8ced09b18d2a401bfd32bff7b11eb28b8f3bd9df63137cf90a8a5816 + languageName: node + linkType: hard + +"motion-utils@npm:^12.39.0": + version: 12.39.0 + resolution: "motion-utils@npm:12.39.0" + checksum: feb4f68fba3e2ed13bbbc193b2c786fe1d800b66c7a07df36de630428c856628e7e39e7791835d785419f6403f34d78c561feca96a4b14d1681ef79a561ebdd3 + languageName: node + linkType: hard + +"motion@npm:^12.40.0": + version: 12.40.0 + resolution: "motion@npm:12.40.0" + dependencies: + framer-motion: ^12.40.0 + tslib: ^2.4.0 + peerDependencies: + "@emotion/is-prop-valid": "*" + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@emotion/is-prop-valid": + optional: true + react: + optional: true + react-dom: + optional: true + checksum: 714bcadb06746c0abaf319bb63efe93befbeabcdd6642e1fc02aea299af618b3c8a89c9469b3ba7a199de156c96a14a5530276ba3b8ed19fd1e907134d33498c + languageName: node + linkType: hard + "ms@npm:2.0.0": version: 2.0.0 resolution: "ms@npm:2.0.0" @@ -11976,6 +16141,15 @@ __metadata: languageName: node linkType: hard +"nanoid@npm:^3.3.12, nanoid@npm:^3.3.6": + version: 3.3.12 + resolution: "nanoid@npm:3.3.12" + bin: + nanoid: bin/nanoid.cjs + checksum: 38699257447dc59e21e73e0510d0dfb16b7a610d9ca80633d5c3a68f9b4298c990513d30404ca8f163c2d03225ee01695ff8898bea6179183f38f0477b7635ac + languageName: node + linkType: hard + "napi-postinstall@npm:^0.3.0": version: 0.3.4 resolution: "napi-postinstall@npm:0.3.4" @@ -12034,6 +16208,76 @@ __metadata: languageName: node linkType: hard +"next-themes@npm:^0.4.6": + version: 0.4.6 + resolution: "next-themes@npm:0.4.6" + peerDependencies: + react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc + react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc + checksum: 295256ee5689629e6578ff4f10f163257172085cac0a250f5f81eae5791fde984a0398be09b959a90c12cf72cf95e82ae11fad6fe13edc4e2d2a6ec2734be0cd + languageName: node + linkType: hard + +"next@npm:^16.2.7": + version: 16.2.7 + resolution: "next@npm:16.2.7" + dependencies: + "@next/env": 16.2.7 + "@next/swc-darwin-arm64": 16.2.7 + "@next/swc-darwin-x64": 16.2.7 + "@next/swc-linux-arm64-gnu": 16.2.7 + "@next/swc-linux-arm64-musl": 16.2.7 + "@next/swc-linux-x64-gnu": 16.2.7 + "@next/swc-linux-x64-musl": 16.2.7 + "@next/swc-win32-arm64-msvc": 16.2.7 + "@next/swc-win32-x64-msvc": 16.2.7 + "@swc/helpers": 0.5.15 + baseline-browser-mapping: ^2.9.19 + caniuse-lite: ^1.0.30001579 + postcss: 8.4.31 + sharp: ^0.34.5 + styled-jsx: 5.1.6 + peerDependencies: + "@opentelemetry/api": ^1.1.0 + "@playwright/test": ^1.51.1 + babel-plugin-react-compiler: "*" + react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + sass: ^1.3.0 + dependenciesMeta: + "@next/swc-darwin-arm64": + optional: true + "@next/swc-darwin-x64": + optional: true + "@next/swc-linux-arm64-gnu": + optional: true + "@next/swc-linux-arm64-musl": + optional: true + "@next/swc-linux-x64-gnu": + optional: true + "@next/swc-linux-x64-musl": + optional: true + "@next/swc-win32-arm64-msvc": + optional: true + "@next/swc-win32-x64-msvc": + optional: true + sharp: + optional: true + peerDependenciesMeta: + "@opentelemetry/api": + optional: true + "@playwright/test": + optional: true + babel-plugin-react-compiler: + optional: true + sass: + optional: true + bin: + next: dist/bin/next + checksum: 9073d6d82e27029641a660359c023a315276467d7d70851d7d1e5ac112c63e0c72baacf9f90d93aae23c896b5193b13ca4bbc110bef29ce21838d6f3ce8e2c50 + languageName: node + linkType: hard + "nocache@npm:^3.0.1": version: 3.0.4 resolution: "nocache@npm:3.0.4" @@ -12341,6 +16585,24 @@ __metadata: languageName: node linkType: hard +"oniguruma-parser@npm:^0.12.2": + version: 0.12.2 + resolution: "oniguruma-parser@npm:0.12.2" + checksum: cc14c3260b075699ff5bc9e21dabf9859c7b92d3e356cf40e137434b275637fa897390450fbba357566da079ac1553b32b4387977615892962ab5a4b44daf836 + languageName: node + linkType: hard + +"oniguruma-to-es@npm:^4.3.6": + version: 4.3.6 + resolution: "oniguruma-to-es@npm:4.3.6" + dependencies: + oniguruma-parser: ^0.12.2 + regex: ^6.1.0 + regex-recursion: ^6.0.2 + checksum: bb92f53afe10a7f03e59707452c7e1c2ed13ca760df781f618fdf6c09475fb600091c0694bb447e18966ba1316d3a27b938afd4768c979b1256266815061639d + languageName: node + linkType: hard + "open@npm:^6.2.0": version: 6.4.0 resolution: "open@npm:6.4.0" @@ -12512,6 +16774,13 @@ __metadata: languageName: node linkType: hard +"package-manager-detector@npm:^1.3.0": + version: 1.6.0 + resolution: "package-manager-detector@npm:1.6.0" + checksum: 154d55225e70e32582f59b5d4a46d25716f0730a14d7e4b6f0fd76c870c720cc6f448d2becca06a15f2042492f0293cf26e5ad8fcd85d0eab0af3b9b46c0b43a + languageName: node + linkType: hard + "parent-module@npm:^1.0.0": version: 1.0.1 resolution: "parent-module@npm:1.0.1" @@ -12521,6 +16790,21 @@ __metadata: languageName: node linkType: hard +"parse-entities@npm:^4.0.0": + version: 4.0.2 + resolution: "parse-entities@npm:4.0.2" + dependencies: + "@types/unist": ^2.0.0 + character-entities-legacy: ^3.0.0 + character-reference-invalid: ^2.0.0 + decode-named-character-reference: ^1.0.0 + is-alphanumerical: ^2.0.0 + is-decimal: ^2.0.0 + is-hexadecimal: ^2.0.0 + checksum: db22b46da1a62af00409c929ac49fbd306b5ebf0dbacf4646d2ae2b58616ef90a40eedc282568a3cf740fac2a7928bc97146973a628f6977ca274dedc2ad6edc + languageName: node + linkType: hard + "parse-json@npm:^4.0.0": version: 4.0.0 resolution: "parse-json@npm:4.0.0" @@ -12543,6 +16827,15 @@ __metadata: languageName: node linkType: hard +"parse5@npm:^7.0.0": + version: 7.3.0 + resolution: "parse5@npm:7.3.0" + dependencies: + entities: ^6.0.0 + checksum: ffd040c4695d93f0bc370e3d6d75c1b352178514af41be7afa212475ea5cead1d6e377cd9d4cec6a5e2bcf497ca50daf9e0088eadaa37dbc271f60def08fdfcd + languageName: node + linkType: hard + "parseurl@npm:~1.3.3": version: 1.3.3 resolution: "parseurl@npm:1.3.3" @@ -12557,6 +16850,13 @@ __metadata: languageName: node linkType: hard +"path-data-parser@npm:0.1.0, path-data-parser@npm:^0.1.0": + version: 0.1.0 + resolution: "path-data-parser@npm:0.1.0" + checksum: a23a214adb38074576a8873d25e8dea7e090b8396d86f58f83f3f6c6298ff56b06adc694147b67f0ed22f14dc478efa1d525710d3ec7b2d7b1efbac57e3fafe6 + languageName: node + linkType: hard + "path-exists@npm:^3.0.0": version: 3.0.0 resolution: "path-exists@npm:3.0.0" @@ -12633,7 +16933,7 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^1.1.1": +"picocolors@npm:^1.0.0, picocolors@npm:^1.1.1": version: 1.1.1 resolution: "picocolors@npm:1.1.1" checksum: e1cf46bf84886c79055fdfa9dcb3e4711ad259949e3565154b004b260cd356c5d54b31a1437ce9782624bf766272fe6b0154f5f0c744fb7af5d454d2b60db045 @@ -12718,6 +17018,23 @@ __metadata: languageName: node linkType: hard +"points-on-curve@npm:0.2.0, points-on-curve@npm:^0.2.0": + version: 0.2.0 + resolution: "points-on-curve@npm:0.2.0" + checksum: 05e87d6839e3d869cfac0e63c2b1ca700fc8f1083e3f9ae80841cc50379fd31204f9e1f221407df1a90afcb8bfa98404aee0b0fa00330b7b3b328d33be21cf47 + languageName: node + linkType: hard + +"points-on-path@npm:^0.2.1": + version: 0.2.1 + resolution: "points-on-path@npm:0.2.1" + dependencies: + path-data-parser: 0.1.0 + points-on-curve: 0.2.0 + checksum: 5564dd84d15699579bf07bd33adfd0dc1a5e717c0d36ee11f0832b6b6890941e25e9ea68d15f7858698a9b5ec509f60e6472a0346624bb9dd9c2100cf568ac8f + languageName: node + linkType: hard + "possible-typed-array-names@npm:^1.0.0": version: 1.1.0 resolution: "possible-typed-array-names@npm:1.1.0" @@ -12732,6 +17049,28 @@ __metadata: languageName: node linkType: hard +"postcss@npm:8.4.31": + version: 8.4.31 + resolution: "postcss@npm:8.4.31" + dependencies: + nanoid: ^3.3.6 + picocolors: ^1.0.0 + source-map-js: ^1.0.2 + checksum: 1d8611341b073143ad90486fcdfeab49edd243377b1f51834dc4f6d028e82ce5190e4f11bb2633276864503654fb7cab28e67abdc0fbf9d1f88cad4a0ff0beea + languageName: node + linkType: hard + +"postcss@npm:^8.5.10": + version: 8.5.15 + resolution: "postcss@npm:8.5.15" + dependencies: + nanoid: ^3.3.12 + picocolors: ^1.1.1 + source-map-js: ^1.2.1 + checksum: 82e046d5bd0c537e7bcae1b97ec366968cac4ebdbd38773b69a2a4ad437f26641643a48f120317dd167199ac718ff8a0ab7dd102258430e4c919daaef0e57904 + languageName: node + linkType: hard + "preact@npm:~8.2.9": version: 8.2.9 resolution: "preact@npm:8.2.9" @@ -12866,6 +17205,13 @@ __metadata: languageName: node linkType: hard +"property-information@npm:^7.0.0": + version: 7.2.0 + resolution: "property-information@npm:7.2.0" + checksum: 4b9b6286a45eb5d63d07663d9cf958e01cea034ab20482a0beb2de5b90fef2ed553b56b2a5f532e5a5a05bcbde70a21494d4e73cdb1f21c056c96b01c47036e3 + languageName: node + linkType: hard + "proxy-agent@npm:^6.5.0": version: 6.5.0 resolution: "proxy-agent@npm:6.5.0" @@ -13340,7 +17686,7 @@ __metadata: languageName: unknown linkType: soft -"react-native-webgpu@*, react-native-webgpu@workspace:packages/webgpu": +"react-native-webgpu@*, react-native-webgpu@workspace:*, react-native-webgpu@workspace:packages/webgpu": version: 0.0.0-use.local resolution: "react-native-webgpu@workspace:packages/webgpu" dependencies: @@ -13557,6 +17903,41 @@ __metadata: languageName: node linkType: hard +"react-remove-scroll-bar@npm:^2.3.7": + version: 2.3.8 + resolution: "react-remove-scroll-bar@npm:2.3.8" + dependencies: + react-style-singleton: ^2.2.2 + tslib: ^2.0.0 + peerDependencies: + "@types/react": "*" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: c4663247f689dbe51c370836edf735487f6d8796acb7f15b09e8a1c14e84c7997360e8e3d54de2bc9c0e782fed2b2c4127d15b4053e4d2cf26839e809e57605f + languageName: node + linkType: hard + +"react-remove-scroll@npm:^2.7.2": + version: 2.7.2 + resolution: "react-remove-scroll@npm:2.7.2" + dependencies: + react-remove-scroll-bar: ^2.3.7 + react-style-singleton: ^2.2.3 + tslib: ^2.1.0 + use-callback-ref: ^1.3.3 + use-sidecar: ^1.1.3 + peerDependencies: + "@types/react": "*" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 70179d794b3172afea8f1df7aedab0df2849f8f9662e20814a3ef6268564f19f077e1153e80c4ab3b379543e7ac1492bec921db130018ca74f2eaedeea841f4d + languageName: node + linkType: hard + "react-shallow-renderer@npm:^16.15.0": version: 16.15.0 resolution: "react-shallow-renderer@npm:16.15.0" @@ -13569,6 +17950,22 @@ __metadata: languageName: node linkType: hard +"react-style-singleton@npm:^2.2.2, react-style-singleton@npm:^2.2.3": + version: 2.2.3 + resolution: "react-style-singleton@npm:2.2.3" + dependencies: + get-nonce: ^1.0.0 + tslib: ^2.0.0 + peerDependencies: + "@types/react": "*" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: a7b0bf493c9231065ebafa84c4237aed997c746c561196121b7de82fe155a5355b372db5070a3ac9fe980cf7f60dc0f1e8cf6402a2aa5b2957392932ccf76e76 + languageName: node + linkType: hard + "react-test-renderer@npm:18.2.0": version: 18.2.0 resolution: "react-test-renderer@npm:18.2.0" @@ -13661,6 +18058,13 @@ __metadata: languageName: node linkType: hard +"readdirp@npm:^5.0.0": + version: 5.0.0 + resolution: "readdirp@npm:5.0.0" + checksum: 3c8ddf1a08fa0adf8f14685a373dd205ada0f2de980e7e77f9846026f331acbc6035040ba204d22b368a0dc8eb7bee2d737fb19f398d73c716c510ce3b2e5583 + languageName: node + linkType: hard + "readline@npm:^1.3.0": version: 1.3.0 resolution: "readline@npm:1.3.0" @@ -13680,6 +18084,56 @@ __metadata: languageName: node linkType: hard +"recma-build-jsx@npm:^1.0.0": + version: 1.0.0 + resolution: "recma-build-jsx@npm:1.0.0" + dependencies: + "@types/estree": ^1.0.0 + estree-util-build-jsx: ^3.0.0 + vfile: ^6.0.0 + checksum: ba82fe08efdf5ecd178ab76a08a4acac792a41d9f38aea99f93cb3d9e577ba8952620c547e730ba6717c13efa08fdb3dfe893bccfa9717f5a81d3fb2ab20c572 + languageName: node + linkType: hard + +"recma-jsx@npm:^1.0.0": + version: 1.0.1 + resolution: "recma-jsx@npm:1.0.1" + dependencies: + acorn-jsx: ^5.0.0 + estree-util-to-js: ^2.0.0 + recma-parse: ^1.0.0 + recma-stringify: ^1.0.0 + unified: ^11.0.0 + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 4227ec707d2711f8c0f765792e7508f9bd0897991b2479e4612250b4fbba67fc2b06fe65ae8dfeba52a41b910f4e84c18e860b95424526273e8a9fd6e3483f43 + languageName: node + linkType: hard + +"recma-parse@npm:^1.0.0": + version: 1.0.0 + resolution: "recma-parse@npm:1.0.0" + dependencies: + "@types/estree": ^1.0.0 + esast-util-from-js: ^2.0.0 + unified: ^11.0.0 + vfile: ^6.0.0 + checksum: 676b2097a63ba444985a61af51c2628a546a2537a9ca036ed2249a627fb096f3373139765388b60164e6f5a50c819146a3660351e3f993a360ef107f2ab1c6f8 + languageName: node + linkType: hard + +"recma-stringify@npm:^1.0.0": + version: 1.0.0 + resolution: "recma-stringify@npm:1.0.0" + dependencies: + "@types/estree": ^1.0.0 + estree-util-to-js: ^2.0.0 + unified: ^11.0.0 + vfile: ^6.0.0 + checksum: 3a4f80fe0f6bc11fefa71782dfedb43c28b42518dea450cd1b1591057d9d570f83c85d645bf5ed6da2e47de15a021172c076a8ff4675799855d9f9436cec3c82 + languageName: node + linkType: hard + "redent@npm:^4.0.0": version: 4.0.0 resolution: "redent@npm:4.0.0" @@ -13715,17 +18169,42 @@ __metadata: languageName: node linkType: hard -"regenerate@npm:^1.4.2": - version: 1.4.2 - resolution: "regenerate@npm:1.4.2" - checksum: 3317a09b2f802da8db09aa276e469b57a6c0dd818347e05b8862959c6193408242f150db5de83c12c3fa99091ad95fb42a6db2c3329bfaa12a0ea4cbbeb30cb0 +"regenerate@npm:^1.4.2": + version: 1.4.2 + resolution: "regenerate@npm:1.4.2" + checksum: 3317a09b2f802da8db09aa276e469b57a6c0dd818347e05b8862959c6193408242f150db5de83c12c3fa99091ad95fb42a6db2c3329bfaa12a0ea4cbbeb30cb0 + languageName: node + linkType: hard + +"regenerator-runtime@npm:^0.13.2, regenerator-runtime@npm:^0.13.5": + version: 0.13.11 + resolution: "regenerator-runtime@npm:0.13.11" + checksum: 27481628d22a1c4e3ff551096a683b424242a216fee44685467307f14d58020af1e19660bf2e26064de946bad7eff28950eae9f8209d55723e2d9351e632bbb4 + languageName: node + linkType: hard + +"regex-recursion@npm:^6.0.2": + version: 6.0.2 + resolution: "regex-recursion@npm:6.0.2" + dependencies: + regex-utilities: ^2.3.0 + checksum: 29913751ee2e41d3d66c957136ba386046f5e9f780f4be482ad3b64b04258bbb2cebe87f8762c5247eb8c9fa46a5ecf18aba5d888f7def73ac8dea49165193d4 + languageName: node + linkType: hard + +"regex-utilities@npm:^2.3.0": + version: 2.3.0 + resolution: "regex-utilities@npm:2.3.0" + checksum: 41408777df45cefe1b276281030213235aa1143809c4c10eb5573d2cc27ff2c4aa746c6f4d4c235e3d2f4830eff76b28906ce82fbe72895beca8e15204c2da51 languageName: node linkType: hard -"regenerator-runtime@npm:^0.13.2, regenerator-runtime@npm:^0.13.5": - version: 0.13.11 - resolution: "regenerator-runtime@npm:0.13.11" - checksum: 27481628d22a1c4e3ff551096a683b424242a216fee44685467307f14d58020af1e19660bf2e26064de946bad7eff28950eae9f8209d55723e2d9351e632bbb4 +"regex@npm:^6.1.0": + version: 6.1.0 + resolution: "regex@npm:6.1.0" + dependencies: + regex-utilities: ^2.3.0 + checksum: 8ea9656dbafe8f324f605653b75ce954e9d695b4bb54dbf1fea20d8095b7530f4552bc3e7890b58542441ee2287f64a35d512601fb3417ba542a7a20f48fb855 languageName: node linkType: hard @@ -13775,6 +18254,100 @@ __metadata: languageName: node linkType: hard +"rehype-raw@npm:^7.0.0": + version: 7.0.0 + resolution: "rehype-raw@npm:7.0.0" + dependencies: + "@types/hast": ^3.0.0 + hast-util-raw: ^9.0.0 + vfile: ^6.0.0 + checksum: f9e28dcbf4c6c7d91a97c10a840310f18ef3268aa45abb3e0428b6b191ff3c4fa8f753b910d768588a2dac5c7da7e557b4ddc3f1b6cd252e8d20cb62d60c65ed + languageName: node + linkType: hard + +"rehype-recma@npm:^1.0.0": + version: 1.0.0 + resolution: "rehype-recma@npm:1.0.0" + dependencies: + "@types/estree": ^1.0.0 + "@types/hast": ^3.0.0 + hast-util-to-estree: ^3.0.0 + checksum: d3d544ad4a18485ec6b03a194b40473f96e2169c63d6a8ee3ce9af5e87b946c308fb9549b53e010c7dd39740337e387bb1a8856ce1b47f3e957b696f1d5b2d0c + languageName: node + linkType: hard + +"remark-gfm@npm:^4.0.1": + version: 4.0.1 + resolution: "remark-gfm@npm:4.0.1" + dependencies: + "@types/mdast": ^4.0.0 + mdast-util-gfm: ^3.0.0 + micromark-extension-gfm: ^3.0.0 + remark-parse: ^11.0.0 + remark-stringify: ^11.0.0 + unified: ^11.0.0 + checksum: b278f51c4496f15ad868b72bf2eb2066c23a0892b5885544d3a4c233c964d44e51a0efe22d3fb33db4fbac92aefd51bb33453b8e73077b041a12b8269a02c17d + languageName: node + linkType: hard + +"remark-mdx@npm:^3.0.0": + version: 3.1.1 + resolution: "remark-mdx@npm:3.1.1" + dependencies: + mdast-util-mdx: ^3.0.0 + micromark-extension-mdxjs: ^3.0.0 + checksum: 9e6406ba83e545b5232ce98de71c29ad5746c2d920eed070a2c58687412453875bad52dfdfaf21bee6de59d3a45fa84cf785b3111c5eb4822f29b67cf1dfec96 + languageName: node + linkType: hard + +"remark-parse@npm:^11.0.0": + version: 11.0.0 + resolution: "remark-parse@npm:11.0.0" + dependencies: + "@types/mdast": ^4.0.0 + mdast-util-from-markdown: ^2.0.0 + micromark-util-types: ^2.0.0 + unified: ^11.0.0 + checksum: d83d245290fa84bb04fb3e78111f09c74f7417e7c012a64dd8dc04fccc3699036d828fbd8eeec8944f774b6c30cc1d925c98f8c46495ebcee7c595496342ab7f + languageName: node + linkType: hard + +"remark-rehype@npm:^11.0.0, remark-rehype@npm:^11.1.2": + version: 11.1.2 + resolution: "remark-rehype@npm:11.1.2" + dependencies: + "@types/hast": ^3.0.0 + "@types/mdast": ^4.0.0 + mdast-util-to-hast: ^13.0.0 + unified: ^11.0.0 + vfile: ^6.0.0 + checksum: 6eab55cb3464ec01d8e002cc9fe02ae57f48162899693fd53b5ba553ac8699dae7b55fce9df7131a5981313b19b495d6fbfa98a9d6bd243e7485591364d9b5b3 + languageName: node + linkType: hard + +"remark-stringify@npm:^11.0.0": + version: 11.0.0 + resolution: "remark-stringify@npm:11.0.0" + dependencies: + "@types/mdast": ^4.0.0 + mdast-util-to-markdown: ^2.0.0 + unified: ^11.0.0 + checksum: 59e07460eb629d6c3b3c0f438b0b236e7e6858fd5ab770303078f5a556ec00354d9c7fb9ef6d5f745a4617ac7da1ab618b170fbb4dac120e183fecd9cc86bce6 + languageName: node + linkType: hard + +"remark@npm:^15.0.1": + version: 15.0.1 + resolution: "remark@npm:15.0.1" + dependencies: + "@types/mdast": ^4.0.0 + remark-parse: ^11.0.0 + remark-stringify: ^11.0.0 + unified: ^11.0.0 + checksum: ac7edb7f9b70c22964bbc6c5d1c038dd10e1a43ccf436fbdb55fb8c89d54f1b77190b89386063ba410fbdd086fde9dca81ef470fc8358eed1ff76a9741ae3dcc + languageName: node + linkType: hard + "require-directory@npm:^2.1.1": version: 2.1.1 resolution: "require-directory@npm:2.1.1" @@ -13949,6 +18522,25 @@ __metadata: languageName: node linkType: hard +"robust-predicates@npm:^3.0.2": + version: 3.0.3 + resolution: "robust-predicates@npm:3.0.3" + checksum: 23692b9451e296bf8f98bdd681d4950a27045cdee5df3fadb9c150c7df0889b5fcf658ab2f82a41675bf14b1e32c4c6b7a4591f8adbee056b845f0eb9d3ad69c + languageName: node + linkType: hard + +"roughjs@npm:^4.6.6": + version: 4.6.6 + resolution: "roughjs@npm:4.6.6" + dependencies: + hachure-fill: ^0.5.2 + path-data-parser: ^0.1.0 + points-on-curve: ^0.2.0 + points-on-path: ^0.2.1 + checksum: ec4b8266ac4a50c7369e337d8ddff3b2d970506229cac5425ddca56f4e6b29fca07dded4300e9e392bb608da4ba618d349fd241283affb25055cab7c2fe48f8f + languageName: node + linkType: hard + "run-parallel@npm:^1.1.9": version: 1.2.0 resolution: "run-parallel@npm:1.2.0" @@ -14059,6 +18651,15 @@ __metadata: languageName: node linkType: hard +"scroll-into-view-if-needed@npm:^3.1.0": + version: 3.1.0 + resolution: "scroll-into-view-if-needed@npm:3.1.0" + dependencies: + compute-scroll-into-view: ^3.0.2 + checksum: edc0f68dc170d0c153ce4ae2929cbdfaf3426d1fc842b67d5f092c5ec38fbb8408e6cb8467f86d8dfb23de3f77a2f2a9e79cbf80bc49b35a39f3092e18b4c3d5 + languageName: node + linkType: hard + "seedrandom@npm:^3.0.5": version: 3.0.5 resolution: "seedrandom@npm:3.0.5" @@ -14210,6 +18811,90 @@ __metadata: languageName: node linkType: hard +"sharp@npm:^0.34.5": + version: 0.34.5 + resolution: "sharp@npm:0.34.5" + dependencies: + "@img/colour": ^1.0.0 + "@img/sharp-darwin-arm64": 0.34.5 + "@img/sharp-darwin-x64": 0.34.5 + "@img/sharp-libvips-darwin-arm64": 1.2.4 + "@img/sharp-libvips-darwin-x64": 1.2.4 + "@img/sharp-libvips-linux-arm": 1.2.4 + "@img/sharp-libvips-linux-arm64": 1.2.4 + "@img/sharp-libvips-linux-ppc64": 1.2.4 + "@img/sharp-libvips-linux-riscv64": 1.2.4 + "@img/sharp-libvips-linux-s390x": 1.2.4 + "@img/sharp-libvips-linux-x64": 1.2.4 + "@img/sharp-libvips-linuxmusl-arm64": 1.2.4 + "@img/sharp-libvips-linuxmusl-x64": 1.2.4 + "@img/sharp-linux-arm": 0.34.5 + "@img/sharp-linux-arm64": 0.34.5 + "@img/sharp-linux-ppc64": 0.34.5 + "@img/sharp-linux-riscv64": 0.34.5 + "@img/sharp-linux-s390x": 0.34.5 + "@img/sharp-linux-x64": 0.34.5 + "@img/sharp-linuxmusl-arm64": 0.34.5 + "@img/sharp-linuxmusl-x64": 0.34.5 + "@img/sharp-wasm32": 0.34.5 + "@img/sharp-win32-arm64": 0.34.5 + "@img/sharp-win32-ia32": 0.34.5 + "@img/sharp-win32-x64": 0.34.5 + detect-libc: ^2.1.2 + semver: ^7.7.3 + dependenciesMeta: + "@img/sharp-darwin-arm64": + optional: true + "@img/sharp-darwin-x64": + optional: true + "@img/sharp-libvips-darwin-arm64": + optional: true + "@img/sharp-libvips-darwin-x64": + optional: true + "@img/sharp-libvips-linux-arm": + optional: true + "@img/sharp-libvips-linux-arm64": + optional: true + "@img/sharp-libvips-linux-ppc64": + optional: true + "@img/sharp-libvips-linux-riscv64": + optional: true + "@img/sharp-libvips-linux-s390x": + optional: true + "@img/sharp-libvips-linux-x64": + optional: true + "@img/sharp-libvips-linuxmusl-arm64": + optional: true + "@img/sharp-libvips-linuxmusl-x64": + optional: true + "@img/sharp-linux-arm": + optional: true + "@img/sharp-linux-arm64": + optional: true + "@img/sharp-linux-ppc64": + optional: true + "@img/sharp-linux-riscv64": + optional: true + "@img/sharp-linux-s390x": + optional: true + "@img/sharp-linux-x64": + optional: true + "@img/sharp-linuxmusl-arm64": + optional: true + "@img/sharp-linuxmusl-x64": + optional: true + "@img/sharp-wasm32": + optional: true + "@img/sharp-win32-arm64": + optional: true + "@img/sharp-win32-ia32": + optional: true + "@img/sharp-win32-x64": + optional: true + checksum: b86972729697af7e37c96714cd9c5c2470c6b503a79d5b38f6fd3eb4d5a46b20d7c15dae1a73db3d0e0aa605d517f2f66d4f52de7496bfb037dd7feb930c1899 + languageName: node + linkType: hard + "shebang-command@npm:^2.0.0": version: 2.0.0 resolution: "shebang-command@npm:2.0.0" @@ -14233,6 +18918,22 @@ __metadata: languageName: node linkType: hard +"shiki@npm:^4.1.0": + version: 4.2.0 + resolution: "shiki@npm:4.2.0" + dependencies: + "@shikijs/core": 4.2.0 + "@shikijs/engine-javascript": 4.2.0 + "@shikijs/engine-oniguruma": 4.2.0 + "@shikijs/langs": 4.2.0 + "@shikijs/themes": 4.2.0 + "@shikijs/types": 4.2.0 + "@shikijs/vscode-textmate": ^10.0.2 + "@types/hast": ^3.0.4 + checksum: 285f6914745f1c9383c908ee43e08795b5fdaaba9ccb0ca4f76ba83461625364884bf20751c2e15de25cbd843aa37760e66b883a39e1614268daa910b37b0b8c + languageName: node + linkType: hard + "side-channel-list@npm:^1.0.0": version: 1.0.0 resolution: "side-channel-list@npm:1.0.0" @@ -14364,6 +19065,13 @@ __metadata: languageName: node linkType: hard +"source-map-js@npm:^1.0.2, source-map-js@npm:^1.2.1": + version: 1.2.1 + resolution: "source-map-js@npm:1.2.1" + checksum: 4eb0cd997cdf228bc253bcaff9340afeb706176e64868ecd20efbe6efea931465f43955612346d6b7318789e5265bdc419bc7669c1cebe3db0eb255f57efa76b + languageName: node + linkType: hard + "source-map-support@npm:0.5.13": version: 0.5.13 resolution: "source-map-support@npm:0.5.13" @@ -14398,13 +19106,20 @@ __metadata: languageName: node linkType: hard -"source-map@npm:^0.7.3": +"source-map@npm:^0.7.0, source-map@npm:^0.7.3": version: 0.7.6 resolution: "source-map@npm:0.7.6" checksum: 932f4a2390aa7100e91357d88cc272de984ad29139ac09eedfde8cc78d46da35f389065d0c5343c5d71d054a6ebd4939a8c0f2c98d5df64fe97bb8a730596c2d languageName: node linkType: hard +"space-separated-tokens@npm:^2.0.0": + version: 2.0.2 + resolution: "space-separated-tokens@npm:2.0.2" + checksum: 202e97d7ca1ba0758a0aa4fe226ff98142073bcceeff2da3aad037968878552c3bbce3b3231970025375bbba5aee00c5b8206eda408da837ab2dc9c0f26be990 + languageName: node + linkType: hard + "spdx-correct@npm:^3.0.0": version: 3.2.0 resolution: "spdx-correct@npm:3.2.0" @@ -14662,6 +19377,16 @@ __metadata: languageName: node linkType: hard +"stringify-entities@npm:^4.0.0": + version: 4.0.4 + resolution: "stringify-entities@npm:4.0.4" + dependencies: + character-entities-html4: ^2.0.0 + character-entities-legacy: ^3.0.0 + checksum: ac1344ef211eacf6cf0a0a8feaf96f9c36083835b406560d2c6ff5a87406a41b13f2f0b4c570a3b391f465121c4fd6822b863ffb197e8c0601a64097862cc5b5 + languageName: node + linkType: hard + "strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": version: 6.0.1 resolution: "strip-ansi@npm:6.0.1" @@ -14731,6 +19456,40 @@ __metadata: languageName: node linkType: hard +"style-to-js@npm:^1.0.0": + version: 1.1.21 + resolution: "style-to-js@npm:1.1.21" + dependencies: + style-to-object: 1.0.14 + checksum: 01541bf726cc44ad574e4b77a65bd40aba9d652a13a9b8eeb5ca358ef52faad6c5047c591b384d4ef6a2fb315855088372ece7ec580fe73ebbbf7713935707f6 + languageName: node + linkType: hard + +"style-to-object@npm:1.0.14": + version: 1.0.14 + resolution: "style-to-object@npm:1.0.14" + dependencies: + inline-style-parser: 0.2.7 + checksum: 0095da3053995eb3069bba0520a52975f319eaa0d7e74e357854b805b18b622c62bfd8787cdd9d9e96b82ac0e399f6ebf90d365954bc03adc77ddcf841de5431 + languageName: node + linkType: hard + +"styled-jsx@npm:5.1.6": + version: 5.1.6 + resolution: "styled-jsx@npm:5.1.6" + dependencies: + client-only: 0.0.1 + peerDependencies: + react: ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" + peerDependenciesMeta: + "@babel/core": + optional: true + babel-plugin-macros: + optional: true + checksum: 879ad68e3e81adcf4373038aaafe55f968294955593660e173fbf679204aff158c59966716a60b29af72dc88795cfb2c479b6d2c3c87b2b2d282f3e27cc66461 + languageName: node + linkType: hard + "styleq@npm:^0.1.3": version: 0.1.3 resolution: "styleq@npm:0.1.3" @@ -14738,6 +19497,13 @@ __metadata: languageName: node linkType: hard +"stylis@npm:^4.3.6": + version: 4.4.0 + resolution: "stylis@npm:4.4.0" + checksum: 055bd8c0d2c06e8c48227d6a9c62a6132d847f25fad2954a95d3cf4e9defe97a95a4a991df912400a56fb153225baf8eef3eb772b48e573cce97e02882d30130 + languageName: node + linkType: hard + "sudo-prompt@npm:^9.0.0": version: 9.2.1 resolution: "sudo-prompt@npm:9.2.1" @@ -14788,6 +19554,27 @@ __metadata: languageName: node linkType: hard +"tailwind-merge@npm:^3.6.0": + version: 3.6.0 + resolution: "tailwind-merge@npm:3.6.0" + checksum: 617e86a01d99f17e02706cc2219bd203d1910b95a05f41fe1e5548b58a7975043ce5b6ef86d4cdcf10fa3c8362b796b9822de2f62024c69d5479e96d6e5be63f + languageName: node + linkType: hard + +"tailwindcss@npm:4.3.0, tailwindcss@npm:^4.1.8": + version: 4.3.0 + resolution: "tailwindcss@npm:4.3.0" + checksum: 8233922ff1a54e4691d5c70d3f4cf176d60e05d9dc85b2e0f890843cd14a5571f084222ccf9084ad2e2f079a7d7f834073439eafdbdb1a6e7aa0c75a15bd2663 + languageName: node + linkType: hard + +"tapable@npm:^2.3.3": + version: 2.3.3 + resolution: "tapable@npm:2.3.3" + checksum: 6f37a59e82a2daedd0fbfc231f6e6004389a9d4bcf8ab8f2d61f96f9f4fd4cbb087799627c5d644d75f518df2abbbc9b9ac699945e0c9a0c610f2a3ca92e0265 + languageName: node + linkType: hard + "tar-fs@npm:^3.1.1": version: 3.1.1 resolution: "tar-fs@npm:3.1.1" @@ -14933,6 +19720,13 @@ __metadata: languageName: node linkType: hard +"tinyexec@npm:^1.0.1, tinyexec@npm:^1.2.4": + version: 1.2.4 + resolution: "tinyexec@npm:1.2.4" + checksum: 3004b0f784c17d35a87251059dd6d81685848472a21a8c258f7b6c0433a25e37552f3955b0844f422895711fae24f44a8b1165597b8b0fe3fe8d0a25264fe9d9 + languageName: node + linkType: hard + "tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.13, tinyglobby@npm:^0.2.15": version: 0.2.15 resolution: "tinyglobby@npm:0.2.15" @@ -14943,6 +19737,16 @@ __metadata: languageName: node linkType: hard +"tinyglobby@npm:^0.2.14, tinyglobby@npm:^0.2.16, tinyglobby@npm:^0.2.17": + version: 0.2.17 + resolution: "tinyglobby@npm:0.2.17" + dependencies: + fdir: ^6.5.0 + picomatch: ^4.0.4 + checksum: 041e73eae568152c376551b21b8a27909d474166a8f405cdb0345991c50cf6afd0f878d7a387645d9c05d8ea2c9a55cc2fd2cfe6c5d5a5264770972b1adcad86 + languageName: node + linkType: hard + "tmpl@npm:1.0.5": version: 1.0.5 resolution: "tmpl@npm:1.0.5" @@ -14986,6 +19790,13 @@ __metadata: languageName: node linkType: hard +"trim-lines@npm:^3.0.0": + version: 3.0.1 + resolution: "trim-lines@npm:3.0.1" + checksum: e241da104682a0e0d807222cc1496b92e716af4db7a002f4aeff33ae6a0024fef93165d49eab11aa07c71e1347c42d46563f91dfaa4d3fb945aa535cdead53ed + languageName: node + linkType: hard + "trim-newlines@npm:^4.0.2": version: 4.1.1 resolution: "trim-newlines@npm:4.1.1" @@ -14993,6 +19804,13 @@ __metadata: languageName: node linkType: hard +"trough@npm:^2.0.0": + version: 2.2.0 + resolution: "trough@npm:2.2.0" + checksum: 6097df63169aca1f9b08c263b1b501a9b878387f46e161dde93f6d0bba7febba93c95f876a293c5ea370f6cb03bcb687b2488c8955c3cfb66c2c0161ea8c00f6 + languageName: node + linkType: hard + "ts-api-utils@npm:^1.3.0": version: 1.4.3 resolution: "ts-api-utils@npm:1.4.3" @@ -15011,6 +19829,13 @@ __metadata: languageName: node linkType: hard +"ts-dedent@npm:^2.2.0": + version: 2.2.0 + resolution: "ts-dedent@npm:2.2.0" + checksum: 93ed8f7878b6d5ed3c08d99b740010eede6bccfe64bce61c5a4da06a2c17d6ddbb80a8c49c2d15251de7594a4f93ffa21dd10e7be75ef66a4dc9951b4a94e2af + languageName: node + linkType: hard + "ts-morph@npm:^22.0.0": version: 22.0.0 resolution: "ts-morph@npm:22.0.0" @@ -15021,6 +19846,16 @@ __metadata: languageName: node linkType: hard +"ts-morph@npm:^27.0.2": + version: 27.0.2 + resolution: "ts-morph@npm:27.0.2" + dependencies: + "@ts-morph/common": ~0.28.1 + code-block-writer: ^13.0.3 + checksum: 1ed2e89257d6f48fdce49bf51e1767787579220197efaa31ac25971c656c9a8a5a6bdd123042d16f83674eec119e4462a06f716187aec0b5e4740888ab5b73b7 + languageName: node + linkType: hard + "tsconfig-paths@npm:^3.15.0": version: 3.15.0 resolution: "tsconfig-paths@npm:3.15.0" @@ -15040,7 +19875,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.0.1, tslib@npm:^2.4.0": +"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.1.0, tslib@npm:^2.4.0, tslib@npm:^2.8.0, tslib@npm:^2.8.1": version: 2.8.1 resolution: "tslib@npm:2.8.1" checksum: e4aba30e632b8c8902b47587fd13345e2827fa639e7c3121074d5ee0880723282411a8838f830b55100cbe4517672f84a2472667d355b81e8af165a55dc6203a @@ -15403,6 +20238,21 @@ __metadata: languageName: node linkType: hard +"unified@npm:^11.0.0, unified@npm:^11.0.5": + version: 11.0.5 + resolution: "unified@npm:11.0.5" + dependencies: + "@types/unist": ^3.0.0 + bail: ^2.0.0 + devlop: ^1.0.0 + extend: ^3.0.0 + is-plain-obj: ^4.0.0 + trough: ^2.0.0 + vfile: ^6.0.0 + checksum: b3bf7fd6f568cc261e074dae21188483b0f2a8ab858d62e6e85b75b96cc655f59532906ae3c64d56a9b257408722d71f1d4135292b3d7ee02907c8b592fb3cf0 + languageName: node + linkType: hard + "unique-filename@npm:^5.0.0": version: 5.0.0 resolution: "unique-filename@npm:5.0.0" @@ -15421,6 +20271,73 @@ __metadata: languageName: node linkType: hard +"unist-util-is@npm:^6.0.0": + version: 6.0.1 + resolution: "unist-util-is@npm:6.0.1" + dependencies: + "@types/unist": ^3.0.0 + checksum: e57733e1766b55c9a873a42d2f34daa211580788b1bba26af2fc22e48e147bdcff0f9a752ed2a19238864823735fbbe27a1804d6a5a22b182c23aa0191e41c12 + languageName: node + linkType: hard + +"unist-util-position-from-estree@npm:^2.0.0": + version: 2.0.0 + resolution: "unist-util-position-from-estree@npm:2.0.0" + dependencies: + "@types/unist": ^3.0.0 + checksum: d3b3048a5727c2367f64ef6dcc5b20c4717215ef8b1372ff9a7c426297c5d1e5776409938acd01531213e2cd2543218d16e73f9f862f318e9496e2c73bb18354 + languageName: node + linkType: hard + +"unist-util-position@npm:^5.0.0": + version: 5.0.0 + resolution: "unist-util-position@npm:5.0.0" + dependencies: + "@types/unist": ^3.0.0 + checksum: f89b27989b19f07878de9579cd8db2aa0194c8360db69e2c99bd2124a480d79c08f04b73a64daf01a8fb3af7cba65ff4b45a0b978ca243226084ad5f5d441dde + languageName: node + linkType: hard + +"unist-util-remove-position@npm:^5.0.0": + version: 5.0.0 + resolution: "unist-util-remove-position@npm:5.0.0" + dependencies: + "@types/unist": ^3.0.0 + unist-util-visit: ^5.0.0 + checksum: 8aabdb9d0e3e744141bc123d8f87b90835d521209ad3c6c4619d403b324537152f0b8f20dda839b40c3aa0abfbf1828b3635a7a8bb159c3ed469e743023510ee + languageName: node + linkType: hard + +"unist-util-stringify-position@npm:^4.0.0": + version: 4.0.0 + resolution: "unist-util-stringify-position@npm:4.0.0" + dependencies: + "@types/unist": ^3.0.0 + checksum: e2e7aee4b92ddb64d314b4ac89eef7a46e4c829cbd3ee4aee516d100772b490eb6b4974f653ba0717a0071ca6ea0770bf22b0a2ea62c65fcba1d071285e96324 + languageName: node + linkType: hard + +"unist-util-visit-parents@npm:^6.0.0": + version: 6.0.2 + resolution: "unist-util-visit-parents@npm:6.0.2" + dependencies: + "@types/unist": ^3.0.0 + unist-util-is: ^6.0.0 + checksum: cf28578a6f0b81877965e261fe82460f83b8c3a9cab3b2080c046b215f3223c6195b01064256619ca3411a1930face93a1a2a72d34d8716e684d6cd59f53cd9a + languageName: node + linkType: hard + +"unist-util-visit@npm:^5.0.0, unist-util-visit@npm:^5.1.0": + version: 5.1.0 + resolution: "unist-util-visit@npm:5.1.0" + dependencies: + "@types/unist": ^3.0.0 + unist-util-is: ^6.0.0 + unist-util-visit-parents: ^6.0.0 + checksum: c7b6cce10db3d912ca0d021f3fec1c7142878e0d3bf7df2b17c84ccb61b2b41342f8972874cb8fab50dc02121fc11858a857ccffa9c8305f0d957308c5b4e5fa + languageName: node + linkType: hard + "universalify@npm:^0.1.0": version: 0.1.2 resolution: "universalify@npm:0.1.2" @@ -15564,6 +20481,21 @@ __metadata: languageName: node linkType: hard +"use-callback-ref@npm:^1.3.3": + version: 1.3.3 + resolution: "use-callback-ref@npm:1.3.3" + dependencies: + tslib: ^2.0.0 + peerDependencies: + "@types/react": "*" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 4da1c82d7a2409cee6c882748a40f4a083decf238308bf12c3d0166f0e338f8d512f37b8d11987eb5a421f14b9b5b991edf3e11ed25c3bb7a6559081f8359b44 + languageName: node + linkType: hard + "use-latest-callback@npm:^0.2.1": version: 0.2.6 resolution: "use-latest-callback@npm:0.2.6" @@ -15573,6 +20505,22 @@ __metadata: languageName: node linkType: hard +"use-sidecar@npm:^1.1.3": + version: 1.1.3 + resolution: "use-sidecar@npm:1.1.3" + dependencies: + detect-node-es: ^1.1.0 + tslib: ^2.0.0 + peerDependencies: + "@types/react": "*" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 88664c6b2c5b6e53e4d5d987694c9053cea806da43130248c74ca058945c8caa6ccb7b1787205a9eb5b9d124633e42153848904002828acabccdc48cda026622 + languageName: node + linkType: hard + "use-sync-external-store@npm:^1.4.0": version: 1.6.0 resolution: "use-sync-external-store@npm:1.6.0" @@ -15605,6 +20553,15 @@ __metadata: languageName: node linkType: hard +"uuid@npm:^11.1.0 || ^12 || ^13 || ^14.0.0": + version: 14.0.0 + resolution: "uuid@npm:14.0.0" + bin: + uuid: dist-node/bin/uuid + checksum: 08608584a79e987cdae000fa8eb724fa51dd8aafc136cd9fa9a8c87d07b246c56eec5fd9027fdb3e49a863eedf758bc19e325909ce281955c7a027fed67dc89e + languageName: node + linkType: hard + "v8-to-istanbul@npm:^9.0.1": version: 9.3.0 resolution: "v8-to-istanbul@npm:9.3.0" @@ -16228,6 +21185,36 @@ __metadata: languageName: node linkType: hard +"vfile-location@npm:^5.0.0": + version: 5.0.3 + resolution: "vfile-location@npm:5.0.3" + dependencies: + "@types/unist": ^3.0.0 + vfile: ^6.0.0 + checksum: bfb3821b6981b6e9aa369bed67a40090b800562064ea312e84437762562df3225a0ca922695389cc0ef1e115f19476c363f53e3ed44dec17c50678b7670b5f2b + languageName: node + linkType: hard + +"vfile-message@npm:^4.0.0": + version: 4.0.3 + resolution: "vfile-message@npm:4.0.3" + dependencies: + "@types/unist": ^3.0.0 + unist-util-stringify-position: ^4.0.0 + checksum: f5e8516f2aa0feb4c866d507543d4e90f9ab309e2c988577dbf4ebd268d495f72f2b48149849d14300164d5d60b5f74b5641cd285bb4408a3942b758683d9276 + languageName: node + linkType: hard + +"vfile@npm:^6.0.0, vfile@npm:^6.0.3": + version: 6.0.3 + resolution: "vfile@npm:6.0.3" + dependencies: + "@types/unist": ^3.0.0 + vfile-message: ^4.0.0 + checksum: 152b6729be1af70df723efb65c1a1170fd483d41086557da3651eea69a1dd1f0c22ea4344834d56d30734b9185bcab63e22edc81d3f0e9bed8aa4660d61080af + languageName: node + linkType: hard + "vlq@npm:^1.0.0": version: 1.0.1 resolution: "vlq@npm:1.0.1" @@ -16260,6 +21247,13 @@ __metadata: languageName: node linkType: hard +"web-namespaces@npm:^2.0.0": + version: 2.0.1 + resolution: "web-namespaces@npm:2.0.1" + checksum: b6d9f02f1a43d0ef0848a812d89c83801d5bbad57d8bb61f02eb6d7eb794c3736f6cc2e1191664bb26136594c8218ac609f4069722c6f56d9fc2d808fa9271c6 + languageName: node + linkType: hard + "webdriver-bidi-protocol@npm:0.3.7": version: 0.3.7 resolution: "webdriver-bidi-protocol@npm:0.3.7" @@ -16676,6 +21670,13 @@ __metadata: languageName: node linkType: hard +"zod@npm:^4.4.3": + version: 4.4.3 + resolution: "zod@npm:4.4.3" + checksum: bf236fdee7a5a5ec645eef5bfea3aad34e7df912931c2a23bc17e5b59882482751da42392916529da52ff9bc70f584797a5d496f1fb81f2d1a4c90fdd3922d2a + languageName: node + linkType: hard + "zustand@npm:^5.0.3": version: 5.0.10 resolution: "zustand@npm:5.0.10" @@ -16696,3 +21697,10 @@ __metadata: checksum: 52d39ad5a0a496a443ced50e773a47df4bda4f718c96e45a08c92675e45d7ac77ce75903b8e3754f17a2e99c71f5864ae8c2b2477aeb4c6f5c2a19e3e64e57ba languageName: node linkType: hard + +"zwitch@npm:^2.0.0, zwitch@npm:^2.0.4": + version: 2.0.4 + resolution: "zwitch@npm:2.0.4" + checksum: f22ec5fc2d5f02c423c93d35cdfa83573a3a3bd98c66b927c368ea4d0e7252a500df2a90a6b45522be536a96a73404393c958e945fdba95e6832c200791702b6 + languageName: node + linkType: hard