├── .github └── workflows │ └── deploy.yml ├── .gitignore ├── README.md ├── biome.json ├── index.html ├── package.json ├── src ├── App.tsx ├── style.css ├── types.d.ts └── underlay │ ├── UnderlayBase.ts │ ├── UnderlayRenderer.ts │ ├── examples │ ├── edge.ts │ ├── geo.ts │ ├── history.ts │ └── index.ts │ ├── glsl │ ├── fog.frag │ └── fog.vert │ └── index.ts ├── tsconfig.json ├── vite.config.ts └── yarn.lock /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | name: Deploy to GitHub Pages 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | - pages-demo 8 | permissions: 9 | contents: write 10 | 11 | jobs: 12 | build-and-deploy: 13 | concurrency: ci-${{ github.ref }} 14 | runs-on: ubuntu-latest 15 | steps: 16 | - name: Checkout 🛎️ 17 | uses: actions/checkout@v3 18 | 19 | - name: Enable Corepack 📦 20 | run: | 21 | corepack enable 22 | corepack prepare yarn@4.0.2 --activate 23 | 24 | 25 | - name: Build 🔧 26 | run: | 27 | yarn install 28 | npm run build 29 | 30 | - name: Deploy 🚀 31 | uses: JamesIves/github-pages-deploy-action@v4 32 | with: 33 | folder: dist -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | .vscode 15 | .pnp.* 16 | .yarn/* 17 | !.yarn/patches 18 | !.yarn/plugins 19 | !.yarn/releases 20 | !.yarn/sdks 21 | !.yarn/versions 22 | 23 | # Editor directories and files 24 | .idea 25 | .DS_Store 26 | *.suo 27 | *.ntvs* 28 | *.njsproj 29 | *.sln 30 | *.sw? 31 | .vercel 32 | .env 33 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## A 3D 'Underlay' for tldraw 2 | 3 | The idea is simple: 2D canvases can be great, but there's a whole dimension spare! What if we could use that third dimension for feedback, better legibility, or to allow for the creation of semantics which are not possible (or less useful) in 2D alone? 4 | 5 | The underlay binds a 3D scene to the 2D canvas and renders it behind the 2D scene. 6 | 7 | 3 small examples: 8 | - GeoUnderlay: Show shape geometry as a 3D "tower" 9 | - HistoryUnderlay: Show shape history in the third dimension 10 | - EdgeUnderlay: Show shape edges (i.e. arrows) between shapes with a parabolic curve 11 | 12 | 13 | https://github.com/OrionReed/tldraw-3d/assets/16704290/bbb2b225-3857-43ea-9337-5dfb9bfafd4d 14 | 15 | 16 | ### Setup 17 | ```bash 18 | yarn 19 | yarn dev 20 | ``` 21 | 22 | To create a new underlay, you can create a new class which extends `UnderlayBase`. Then register the new underlay in `src/App.tsx`: 23 | ```ts 24 | const underlays = [GeoUnderlay, HistoryUnderlay, ..., YourFancyNewUnderlay]; 25 | ``` 26 | All you need to do is provide the underlay with a `name` and a `render` function. The `render` function should take a p5 sketch and a list of shapes and render to that sketch. The `UnderlayRenderer` will handle the rest. -------------------------------------------------------------------------------- /biome.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://biomejs.dev/schemas/1.4.1/schema.json", 3 | "organizeImports": { 4 | "enabled": true 5 | }, 6 | "linter": { 7 | "enabled": true, 8 | "rules": { 9 | "recommended": true 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | underlay 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tldraw-3d", 3 | "private": true, 4 | "version": "0.0.1", 5 | "homepage": "https://OrionReed.github.io/tldraw-3d", 6 | "type": "module", 7 | "installConfig": { 8 | "nodeLinker": "node-modules" 9 | }, 10 | "scripts": { 11 | "dev": "vite", 12 | "build": "tsc && vite build --base=./" 13 | }, 14 | "dependencies": { 15 | "p5": "^1.9.3", 16 | "react": "^18.2.0", 17 | "react-dom": "^18.2.0", 18 | "tldraw": "^2.1.1" 19 | }, 20 | "devDependencies": { 21 | "@biomejs/biome": "^1.4.1", 22 | "@types/gh-pages": "^6", 23 | "@types/node": "^20.12.8", 24 | "@types/react": "^18.2.15", 25 | "@types/react-dom": "^18.2.7", 26 | "@vitejs/plugin-react": "^4.0.3", 27 | "gh-pages": "^6.1.1", 28 | "typescript": "^5.0.2", 29 | "vite": "^4.4.5" 30 | }, 31 | "packageManager": "yarn@1.22.21" 32 | } -------------------------------------------------------------------------------- /src/App.tsx: -------------------------------------------------------------------------------- 1 | import "tldraw/tldraw.css"; 2 | import "./style.css"; 3 | import ReactDOM from "react-dom/client"; 4 | import { Tldraw } from "tldraw"; 5 | import { UnderlayRenderer } from "@/underlay"; 6 | import { 7 | EdgeUnderlay, 8 | GeoUnderlay, 9 | HistoryUnderlay, 10 | } from "@/underlay/examples"; 11 | 12 | const underlays = [GeoUnderlay, HistoryUnderlay, EdgeUnderlay]; 13 | 14 | const root = document.getElementById("root"); 15 | if (root) { 16 | ReactDOM.createRoot(root).render( 17 |
18 | { 21 | new UnderlayRenderer(editor, underlays); 22 | }} 23 | /> 24 |
, 25 | ); 26 | } 27 | -------------------------------------------------------------------------------- /src/style.css: -------------------------------------------------------------------------------- 1 | @import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500&display=swap"); 2 | 3 | html, 4 | body { 5 | padding: 0; 6 | margin: 0; 7 | font-family: "Inter", sans-serif; 8 | overscroll-behavior: none; 9 | touch-action: none; 10 | min-height: 100vh; 11 | font-size: 16px; 12 | /* mobile viewport bug fix */ 13 | min-height: -webkit-fill-available; 14 | height: 100%; 15 | } 16 | 17 | html, 18 | * { 19 | box-sizing: border-box; 20 | } 21 | 22 | .tldraw__editor { 23 | position: fixed; 24 | inset: 0px; 25 | overflow: hidden; 26 | } 27 | 28 | .tl-background { 29 | background-color: transparent; 30 | } 31 | 32 | canvas { 33 | z-index: 10000; 34 | } 35 | 36 | .controls { 37 | pointer-events: "all"; 38 | position: absolute; 39 | left: 50%; 40 | transform: translateX(-50%); 41 | z-index: 999999; 42 | } 43 | 44 | .controls button { 45 | margin: 4px; 46 | margin-top: 8px; 47 | padding: 8px; 48 | border: none; 49 | background-color: #5b646d; 50 | color: white; 51 | font-size: 16px; 52 | border-radius: 4px; 53 | cursor: pointer; 54 | transition: 55 | background-color 0.3s, 56 | transform 0.3s; 57 | } 58 | .controls button:hover { 59 | background-color: #768594; 60 | transform: scale(1.05); 61 | } 62 | .controls button:focus { 63 | outline: none; 64 | box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.5); 65 | } 66 | -------------------------------------------------------------------------------- /src/types.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*?raw' { 2 | const content: string; 3 | export default content; 4 | } -------------------------------------------------------------------------------- /src/underlay/UnderlayBase.ts: -------------------------------------------------------------------------------- 1 | import type { Editor, TLShape } from "tldraw"; 2 | import type p5 from "p5"; 3 | 4 | export abstract class UnderlayBase { 5 | abstract name: string; 6 | protected editor: Editor; 7 | enabled = false; 8 | 9 | /** Called once per frame and passed the current p5 sketch and all shapes */ 10 | abstract render(sketch: p5, shapes: TLShape[]): void; 11 | constructor(editor: Editor) { 12 | this.editor = editor; 13 | } 14 | } -------------------------------------------------------------------------------- /src/underlay/UnderlayRenderer.ts: -------------------------------------------------------------------------------- 1 | import p5 from "p5"; 2 | import type { Editor } from "tldraw"; 3 | import fogFragmentShader from "@/underlay/glsl/fog.frag?raw"; 4 | import fogVertexShader from "@/underlay/glsl/fog.vert?raw"; 5 | import type { UnderlayBase } from "@/underlay/UnderlayBase"; 6 | 7 | /** An "Underlay" is a 3D scene that is drawn under the canvas with aligned coordinates (tldraw is at z=0). */ 8 | export class UnderlayRenderer { 9 | editor: Editor; 10 | p5: p5; 11 | width: number; 12 | height: number; 13 | underlays: Map = new Map(); 14 | 15 | constructor(editor: Editor, underlays: (new (editor: Editor) => UnderlayBase)[]) { 16 | this.editor = editor; 17 | for (const underlay of underlays) { 18 | const instance = new underlay(this.editor); 19 | this.underlays.set(instance.name, instance); 20 | } 21 | this.width = window.innerWidth; 22 | this.height = window.innerHeight; 23 | this.createDebugUI(); 24 | 25 | /** Setup the p5.js sketch */ 26 | this.p5 = new p5((sketch: p5) => { 27 | let layer: p5.Framebuffer; 28 | let fogShader: p5.Shader; 29 | 30 | sketch.preload = () => { 31 | fogShader = sketch.createShader(fogVertexShader, fogFragmentShader); 32 | }; 33 | sketch.setup = () => { 34 | sketch.createCanvas(this.width, this.height, sketch.WEBGL); 35 | layer = sketch.createFramebuffer({ 36 | width: sketch.width, 37 | height: sketch.height, 38 | }) as unknown as p5.Framebuffer; // eww 39 | }; 40 | 41 | /** Draw the underlays with a fog shader */ 42 | sketch.draw = () => { 43 | sketch.colorMode(sketch.HSL); 44 | const isDarkMode = this.editor.user.getIsDarkMode(); 45 | const bgColor: p5.Color = isDarkMode 46 | ? sketch.color(220, 10, 10) 47 | : sketch.color("white"); 48 | const shapes = this.editor.getCurrentPageShapes(); 49 | layer.begin(); 50 | sketch.clear(); 51 | sketch.lights(); 52 | sketch.scale(1, -1, 1); // flip y for framebuffer 53 | 54 | const cam = this.editor.getCamera(); 55 | sketch.scale(cam.z); 56 | sketch.translate( 57 | cam.x - sketch.width / 2 / cam.z, 58 | cam.y - sketch.height / 2 / cam.z, 59 | ); 60 | 61 | for (const underlay of this.underlays.values()) { 62 | if (underlay.enabled) { 63 | underlay.render(sketch, shapes); 64 | } 65 | } 66 | 67 | layer.end(); 68 | 69 | // Apply fog to the scene 70 | sketch.shader(fogShader); 71 | fogShader.setUniform("fog", [ 72 | sketch.red(bgColor), 73 | sketch.green(bgColor), 74 | sketch.blue(bgColor), 75 | ]); 76 | fogShader.setUniform("img", layer.color); 77 | fogShader.setUniform("depth", layer.depth); 78 | sketch.rect(0, 0, sketch.width, sketch.height); 79 | }; 80 | }); 81 | } 82 | 83 | // TODO: Move this to a React component 84 | private createDebugUI() { 85 | const controlsDiv = document.createElement('div'); 86 | controlsDiv.className = 'controls'; 87 | document.body.appendChild(controlsDiv); 88 | 89 | for (const name of this.underlays.keys()) { 90 | const button = document.createElement('button'); 91 | button.textContent = `${name} 🙈`; 92 | button.addEventListener('click', () => { 93 | const underlay = this.underlays.get(name); 94 | if (!underlay) return; 95 | underlay.enabled = !underlay.enabled; 96 | button.textContent = `${name} ${underlay.enabled ? '🙈' : '🙉'}`; 97 | }); 98 | controlsDiv.appendChild(button); 99 | } 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /src/underlay/examples/edge.ts: -------------------------------------------------------------------------------- 1 | import { UnderlayBase } from "@/underlay"; 2 | import type { TLShape } from "tldraw"; 3 | import type p5 from "p5"; 4 | 5 | /** Underlay which draws edges between shapes as hanging 'ropes' */ 6 | export class EdgeUnderlay extends UnderlayBase { 7 | name = "Edges"; 8 | render(sketch: p5, shapes: TLShape[]) { 9 | let previousShape: TLShape | null = null; 10 | for (const shape of shapes) { 11 | if (!previousShape) { 12 | previousShape = shape; 13 | continue; 14 | } 15 | 16 | const fromCenter = this.editor.getShapePageBounds(shape)?.center; 17 | const toCenter = this.editor.getShapePageBounds(previousShape)?.center; 18 | if (!fromCenter || !toCenter) { 19 | continue; 20 | } 21 | 22 | sketch.push(); 23 | sketch.translate(fromCenter.x, fromCenter.y); 24 | 25 | const segments = 20; // Number of segments in the rope 26 | const sag = 1000; // How much the rope sags 27 | const strokeWeight = 20; // how thick the lines are 28 | const strokeColor: p5.Color = sketch.color(250, 50, 50); 29 | 30 | sketch.stroke(strokeColor); 31 | sketch.strokeWeight(strokeWeight); 32 | sketch.noFill(); 33 | 34 | sketch.beginShape(); 35 | for (let i = 0; i <= segments; i++) { 36 | const t = i / segments; 37 | const x = sketch.lerp(0, toCenter.x - fromCenter.x, t); 38 | const y = sketch.lerp(0, toCenter.y - fromCenter.y, t); 39 | const parabola = sag * Math.sin(Math.PI * t); // Simple parabolic equation for sag 40 | const col = sketch.lerpColor(strokeColor, sketch.color("red"), t); 41 | sketch.stroke(col); 42 | sketch.vertex(x, y, -parabola); 43 | } 44 | sketch.endShape(); 45 | sketch.pop(); 46 | previousShape = shape; 47 | } 48 | } 49 | } -------------------------------------------------------------------------------- /src/underlay/examples/geo.ts: -------------------------------------------------------------------------------- 1 | import { UnderlayBase } from "@/underlay"; 2 | import type { TLShape } from "tldraw"; 3 | import type p5 from "p5"; 4 | 5 | /** Underlay which draws the geometry of each shape as a basic 3D polygon 'tower' */ 6 | export class GeoUnderlay extends UnderlayBase { 7 | name = "Geo"; 8 | override render(sketch: p5, shapes: TLShape[]) { 9 | for (const shape of shapes) { 10 | sketch.push(); 11 | sketch.translate(shape.x, shape.y); 12 | sketch.rotateZ(shape.rotation); 13 | 14 | const geoColor: p5.Color = sketch.color(190, 50, 50); 15 | const strokeColor: p5.Color = sketch.color(190, 50, 30); 16 | const depth = 10000; 17 | 18 | const geo = this.editor.getShapeGeometry(shape); 19 | const closedCurve = shape.type !== "arrow" && geo.isClosed; 20 | const vertices = geo.vertices; 21 | sketch.stroke(strokeColor); 22 | sketch.fill(geoColor); 23 | const numSides = closedCurve ? vertices.length : vertices.length - 1; 24 | for (let i = 0; i < numSides; i++) { 25 | const nextIndex = (i + 1) % vertices.length; 26 | sketch.beginShape(); 27 | sketch.vertex(vertices[i].x, vertices[i].y, 0); 28 | sketch.vertex(vertices[nextIndex].x, vertices[nextIndex].y, 0); 29 | sketch.vertex(vertices[nextIndex].x, vertices[nextIndex].y, -depth); 30 | sketch.vertex(vertices[i].x, vertices[i].y, -depth); 31 | sketch.endShape(sketch.CLOSE); 32 | } 33 | sketch.pop(); 34 | } 35 | }; 36 | } 37 | 38 | -------------------------------------------------------------------------------- /src/underlay/examples/history.ts: -------------------------------------------------------------------------------- 1 | import { UnderlayBase } from "@/underlay"; 2 | import type { Editor, TLShape, TLShapeId, VecLike } from "tldraw"; 3 | import type p5 from "p5"; 4 | 5 | type Snapshot = { 6 | x: number; 7 | y: number; 8 | rotation: number; 9 | vertices: VecLike[]; 10 | }; 11 | 12 | /** Underlay which draws the history of each shape as a 'slice' of the shape */ 13 | export class HistoryUnderlay extends UnderlayBase { 14 | override name = "History"; 15 | private histories: CircularBufferDict; 16 | 17 | constructor(editor: Editor) { 18 | super(editor); 19 | this.histories = new CircularBufferDict(120); 20 | editor.sideEffects.registerAfterChangeHandler('shape', (_, after) => { 21 | if (!this.enabled) return; 22 | const vertices = this.editor.getShapeGeometry(after).vertices; 23 | this.histories.push(after.id, { 24 | x: after.x, 25 | y: after.y, 26 | rotation: after.rotation, 27 | vertices: vertices, 28 | }); 29 | }); 30 | } 31 | 32 | render(sketch: p5, shapes: TLShape[]) { 33 | for (const shape of shapes) { 34 | const history = this.histories.toArray(shape.id); 35 | if (!history) { 36 | continue; 37 | } 38 | const geoColor: p5.Color = sketch.color(190, 50, 50); 39 | const strokeColor: p5.Color = sketch.color(190, 50, 30); 40 | 41 | for (let t = history.length - 1; t >= 0; t--) { 42 | const record = history[t]; 43 | const layerDepth = -50; 44 | const depth = layerDepth * (history.length - 1 - t); 45 | 46 | sketch.push(); 47 | sketch.translate(record.x, record.y, depth); 48 | sketch.rotateZ(record.rotation); 49 | sketch.stroke(strokeColor); 50 | sketch.fill(geoColor); 51 | sketch.beginShape(); 52 | for (const vertex of record.vertices) { 53 | sketch.vertex(vertex.x, vertex.y, 0); 54 | } 55 | sketch.endShape(sketch.CLOSE); 56 | sketch.pop(); 57 | } 58 | } 59 | }; 60 | } 61 | 62 | class CircularBufferDict { 63 | private buffers: Map>; 64 | private capacity: number; 65 | 66 | constructor(capacity: number) { 67 | this.capacity = capacity; 68 | this.buffers = new Map>(); 69 | } 70 | 71 | push(key: TKey, item: TValue): void { 72 | let buffer = this.buffers.get(key); 73 | if (!buffer) { 74 | buffer = new CircularBuffer(this.capacity); 75 | this.buffers.set(key, buffer); 76 | } 77 | buffer.push(item); 78 | } 79 | 80 | get(key: TKey): CircularBuffer | undefined { 81 | return this.buffers.get(key); 82 | } 83 | 84 | toArray(key: TKey): TValue[] | undefined { 85 | const buffer = this.buffers.get(key); 86 | return buffer ? buffer.toArray() : undefined; 87 | } 88 | } 89 | 90 | class CircularBuffer { 91 | private buffer: T[]; 92 | private head = 0; 93 | private tail = 0; 94 | private length = 0; 95 | private capacity: number; 96 | 97 | constructor(capacity: number) { 98 | this.capacity = capacity; 99 | this.buffer = new Array(capacity); 100 | } 101 | 102 | push(item: T): void { 103 | this.buffer[this.tail] = item; 104 | this.tail = (this.tail + 1) % this.capacity; 105 | if (this.length < this.capacity) { 106 | this.length++; 107 | } else { 108 | this.head = (this.head + 1) % this.capacity; 109 | } 110 | } 111 | 112 | toArray(): T[] { 113 | const result = []; 114 | for (let i = 0; i < this.length; i++) { 115 | result.push(this.buffer[(this.head + i) % this.capacity]); 116 | } 117 | return result; 118 | } 119 | } 120 | 121 | -------------------------------------------------------------------------------- /src/underlay/examples/index.ts: -------------------------------------------------------------------------------- 1 | export { GeoUnderlay } from "./geo"; 2 | export { HistoryUnderlay } from "./history"; 3 | export { EdgeUnderlay } from "./edge"; 4 | -------------------------------------------------------------------------------- /src/underlay/glsl/fog.frag: -------------------------------------------------------------------------------- 1 | precision highp float; 2 | varying vec2 vTexCoord; 3 | uniform sampler2D img; 4 | uniform sampler2D depth; 5 | uniform vec3 fog; 6 | void main() { 7 | gl_FragColor = mix( 8 | // Original color 9 | texture2D(img, vTexCoord), 10 | // Fog color 11 | vec4(fog/255., 1.), 12 | // Mix between them based on the depth. 13 | // The pow() makes the light falloff a bit steeper. 14 | pow(texture2D(depth, vTexCoord).r, 6.) 15 | ); 16 | } -------------------------------------------------------------------------------- /src/underlay/glsl/fog.vert: -------------------------------------------------------------------------------- 1 | precision highp float; 2 | attribute vec3 aPosition; 3 | attribute vec2 aTexCoord; 4 | varying vec2 vTexCoord; 5 | void main() { 6 | vec4 positionVec4 = vec4(aPosition, 1.0); 7 | positionVec4.xy = positionVec4.xy * 2.0 - 1.0; 8 | gl_Position = positionVec4; 9 | vTexCoord = aTexCoord; 10 | } -------------------------------------------------------------------------------- /src/underlay/index.ts: -------------------------------------------------------------------------------- 1 | export { UnderlayBase } from "./UnderlayBase"; 2 | export { UnderlayRenderer } from "./UnderlayRenderer"; 3 | 4 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "composite": true, 5 | "allowSyntheticDefaultImports": true, 6 | "useDefineForClassFields": true, 7 | "module": "ESNext", 8 | "skipLibCheck": true, 9 | "moduleResolution": "bundler", 10 | "allowImportingTsExtensions": true, 11 | "resolveJsonModule": true, 12 | "isolatedModules": true, 13 | "noEmit": true, 14 | "jsx": "react-jsx", 15 | "lib": ["ES2020", "DOM", "DOM.Iterable"], 16 | "baseUrl": ".", 17 | "paths": { 18 | "@/*": ["src/*"] 19 | } 20 | }, 21 | "include": ["src", "vite.config.ts"], 22 | "types": ["vite/client"] 23 | } 24 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | export default defineConfig({ 5 | plugins: [ 6 | react() 7 | ], 8 | resolve: { 9 | alias: { 10 | '@': '/src' 11 | } 12 | }, 13 | }) 14 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@ampproject/remapping@^2.2.0": 6 | version "2.3.0" 7 | resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" 8 | integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== 9 | dependencies: 10 | "@jridgewell/gen-mapping" "^0.3.5" 11 | "@jridgewell/trace-mapping" "^0.3.24" 12 | 13 | "@babel/code-frame@^7.23.5", "@babel/code-frame@^7.24.2": 14 | version "7.24.2" 15 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.2.tgz#718b4b19841809a58b29b68cde80bc5e1aa6d9ae" 16 | integrity sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ== 17 | dependencies: 18 | "@babel/highlight" "^7.24.2" 19 | picocolors "^1.0.0" 20 | 21 | "@babel/compat-data@^7.23.5": 22 | version "7.24.4" 23 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.4.tgz#6f102372e9094f25d908ca0d34fc74c74606059a" 24 | integrity sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ== 25 | 26 | "@babel/core@^7.23.5": 27 | version "7.24.5" 28 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.5.tgz#15ab5b98e101972d171aeef92ac70d8d6718f06a" 29 | integrity sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA== 30 | dependencies: 31 | "@ampproject/remapping" "^2.2.0" 32 | "@babel/code-frame" "^7.24.2" 33 | "@babel/generator" "^7.24.5" 34 | "@babel/helper-compilation-targets" "^7.23.6" 35 | "@babel/helper-module-transforms" "^7.24.5" 36 | "@babel/helpers" "^7.24.5" 37 | "@babel/parser" "^7.24.5" 38 | "@babel/template" "^7.24.0" 39 | "@babel/traverse" "^7.24.5" 40 | "@babel/types" "^7.24.5" 41 | convert-source-map "^2.0.0" 42 | debug "^4.1.0" 43 | gensync "^1.0.0-beta.2" 44 | json5 "^2.2.3" 45 | semver "^6.3.1" 46 | 47 | "@babel/generator@^7.24.5": 48 | version "7.24.5" 49 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.5.tgz#e5afc068f932f05616b66713e28d0f04e99daeb3" 50 | integrity sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA== 51 | dependencies: 52 | "@babel/types" "^7.24.5" 53 | "@jridgewell/gen-mapping" "^0.3.5" 54 | "@jridgewell/trace-mapping" "^0.3.25" 55 | jsesc "^2.5.1" 56 | 57 | "@babel/helper-compilation-targets@^7.23.6": 58 | version "7.23.6" 59 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" 60 | integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== 61 | dependencies: 62 | "@babel/compat-data" "^7.23.5" 63 | "@babel/helper-validator-option" "^7.23.5" 64 | browserslist "^4.22.2" 65 | lru-cache "^5.1.1" 66 | semver "^6.3.1" 67 | 68 | "@babel/helper-environment-visitor@^7.22.20": 69 | version "7.22.20" 70 | resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" 71 | integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== 72 | 73 | "@babel/helper-function-name@^7.23.0": 74 | version "7.23.0" 75 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" 76 | integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== 77 | dependencies: 78 | "@babel/template" "^7.22.15" 79 | "@babel/types" "^7.23.0" 80 | 81 | "@babel/helper-hoist-variables@^7.22.5": 82 | version "7.22.5" 83 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" 84 | integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== 85 | dependencies: 86 | "@babel/types" "^7.22.5" 87 | 88 | "@babel/helper-module-imports@^7.24.3": 89 | version "7.24.3" 90 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz#6ac476e6d168c7c23ff3ba3cf4f7841d46ac8128" 91 | integrity sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg== 92 | dependencies: 93 | "@babel/types" "^7.24.0" 94 | 95 | "@babel/helper-module-transforms@^7.24.5": 96 | version "7.24.5" 97 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz#ea6c5e33f7b262a0ae762fd5986355c45f54a545" 98 | integrity sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A== 99 | dependencies: 100 | "@babel/helper-environment-visitor" "^7.22.20" 101 | "@babel/helper-module-imports" "^7.24.3" 102 | "@babel/helper-simple-access" "^7.24.5" 103 | "@babel/helper-split-export-declaration" "^7.24.5" 104 | "@babel/helper-validator-identifier" "^7.24.5" 105 | 106 | "@babel/helper-plugin-utils@^7.24.0", "@babel/helper-plugin-utils@^7.24.5": 107 | version "7.24.5" 108 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz#a924607dd254a65695e5bd209b98b902b3b2f11a" 109 | integrity sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ== 110 | 111 | "@babel/helper-simple-access@^7.24.5": 112 | version "7.24.5" 113 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz#50da5b72f58c16b07fbd992810be6049478e85ba" 114 | integrity sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ== 115 | dependencies: 116 | "@babel/types" "^7.24.5" 117 | 118 | "@babel/helper-split-export-declaration@^7.24.5": 119 | version "7.24.5" 120 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz#b9a67f06a46b0b339323617c8c6213b9055a78b6" 121 | integrity sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q== 122 | dependencies: 123 | "@babel/types" "^7.24.5" 124 | 125 | "@babel/helper-string-parser@^7.24.1": 126 | version "7.24.1" 127 | resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz#f99c36d3593db9540705d0739a1f10b5e20c696e" 128 | integrity sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ== 129 | 130 | "@babel/helper-validator-identifier@^7.24.5": 131 | version "7.24.5" 132 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz#918b1a7fa23056603506370089bd990d8720db62" 133 | integrity sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA== 134 | 135 | "@babel/helper-validator-option@^7.23.5": 136 | version "7.23.5" 137 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" 138 | integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== 139 | 140 | "@babel/helpers@^7.24.5": 141 | version "7.24.5" 142 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.5.tgz#fedeb87eeafa62b621160402181ad8585a22a40a" 143 | integrity sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q== 144 | dependencies: 145 | "@babel/template" "^7.24.0" 146 | "@babel/traverse" "^7.24.5" 147 | "@babel/types" "^7.24.5" 148 | 149 | "@babel/highlight@^7.24.2": 150 | version "7.24.5" 151 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.5.tgz#bc0613f98e1dd0720e99b2a9ee3760194a704b6e" 152 | integrity sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw== 153 | dependencies: 154 | "@babel/helper-validator-identifier" "^7.24.5" 155 | chalk "^2.4.2" 156 | js-tokens "^4.0.0" 157 | picocolors "^1.0.0" 158 | 159 | "@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.24.0", "@babel/parser@^7.24.5": 160 | version "7.24.5" 161 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.5.tgz#4a4d5ab4315579e5398a82dcf636ca80c3392790" 162 | integrity sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg== 163 | 164 | "@babel/plugin-transform-react-jsx-self@^7.23.3": 165 | version "7.24.5" 166 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.5.tgz#22cc7572947895c8e4cd034462e65d8ecf857756" 167 | integrity sha512-RtCJoUO2oYrYwFPtR1/jkoBEcFuI1ae9a9IMxeyAVa3a1Ap4AnxmyIKG2b2FaJKqkidw/0cxRbWN+HOs6ZWd1w== 168 | dependencies: 169 | "@babel/helper-plugin-utils" "^7.24.5" 170 | 171 | "@babel/plugin-transform-react-jsx-source@^7.23.3": 172 | version "7.24.1" 173 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.1.tgz#a2dedb12b09532846721b5df99e52ef8dc3351d0" 174 | integrity sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA== 175 | dependencies: 176 | "@babel/helper-plugin-utils" "^7.24.0" 177 | 178 | "@babel/runtime@^7.13.10": 179 | version "7.24.5" 180 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.5.tgz#230946857c053a36ccc66e1dd03b17dd0c4ed02c" 181 | integrity sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g== 182 | dependencies: 183 | regenerator-runtime "^0.14.0" 184 | 185 | "@babel/template@^7.22.15", "@babel/template@^7.24.0": 186 | version "7.24.0" 187 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.0.tgz#c6a524aa93a4a05d66aaf31654258fae69d87d50" 188 | integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA== 189 | dependencies: 190 | "@babel/code-frame" "^7.23.5" 191 | "@babel/parser" "^7.24.0" 192 | "@babel/types" "^7.24.0" 193 | 194 | "@babel/traverse@^7.24.5": 195 | version "7.24.5" 196 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.5.tgz#972aa0bc45f16983bf64aa1f877b2dd0eea7e6f8" 197 | integrity sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA== 198 | dependencies: 199 | "@babel/code-frame" "^7.24.2" 200 | "@babel/generator" "^7.24.5" 201 | "@babel/helper-environment-visitor" "^7.22.20" 202 | "@babel/helper-function-name" "^7.23.0" 203 | "@babel/helper-hoist-variables" "^7.22.5" 204 | "@babel/helper-split-export-declaration" "^7.24.5" 205 | "@babel/parser" "^7.24.5" 206 | "@babel/types" "^7.24.5" 207 | debug "^4.3.1" 208 | globals "^11.1.0" 209 | 210 | "@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.24.0", "@babel/types@^7.24.5": 211 | version "7.24.5" 212 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.5.tgz#7661930afc638a5383eb0c4aee59b74f38db84d7" 213 | integrity sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ== 214 | dependencies: 215 | "@babel/helper-string-parser" "^7.24.1" 216 | "@babel/helper-validator-identifier" "^7.24.5" 217 | to-fast-properties "^2.0.0" 218 | 219 | "@biomejs/biome@^1.4.1": 220 | version "1.7.2" 221 | resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-1.7.2.tgz#982ca58428aecd9e85c1af7fa656f60615181235" 222 | integrity sha512-6Skx9N47inLQzYi9RKgJ7PBnUnaHnMe/imqX43cOcJjZtfMnQLxEvfM2Eyo7gChkwrZlwc+VbA4huFRjw2fsYA== 223 | optionalDependencies: 224 | "@biomejs/cli-darwin-arm64" "1.7.2" 225 | "@biomejs/cli-darwin-x64" "1.7.2" 226 | "@biomejs/cli-linux-arm64" "1.7.2" 227 | "@biomejs/cli-linux-arm64-musl" "1.7.2" 228 | "@biomejs/cli-linux-x64" "1.7.2" 229 | "@biomejs/cli-linux-x64-musl" "1.7.2" 230 | "@biomejs/cli-win32-arm64" "1.7.2" 231 | "@biomejs/cli-win32-x64" "1.7.2" 232 | 233 | "@biomejs/cli-darwin-arm64@1.7.2": 234 | version "1.7.2" 235 | resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.7.2.tgz#2beabb95f62a5c46101ca842adea539cd760b922" 236 | integrity sha512-CrldIueHivWEWmeTkK8bTXajeX53F8i2Rrkkt8cPZyMtzkrwxf8Riq4a/jz3SQBHkxHFT4TqGbSTNMXe3X1ogA== 237 | 238 | "@biomejs/cli-darwin-x64@1.7.2": 239 | version "1.7.2" 240 | resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.7.2.tgz#538473a0112d84357433750a9c2189347f9325b4" 241 | integrity sha512-UELnLJuJOsTL9meArvn8BtiXDURyPil2Ej9me2uVpEvee8UQdqd/bssP5we400OWShlL1AAML4fn6d2WX5332g== 242 | 243 | "@biomejs/cli-linux-arm64-musl@1.7.2": 244 | version "1.7.2" 245 | resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.7.2.tgz#a990e735d5f33bfc8eaea8fbc53db215d7f69948" 246 | integrity sha512-kKYZiem7Sj7wI0dpVxJlK7C+TFQwzO/ctufIGXGJAyEmUe9vEKSzV8CXpv+JIRiTWyqaZJ4K+eHz4SPdPCv05w== 247 | 248 | "@biomejs/cli-linux-arm64@1.7.2": 249 | version "1.7.2" 250 | resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.7.2.tgz#0f8186dd4a807d273c14659e859d8d86c24fb948" 251 | integrity sha512-Z1CSGQE6fHz55gkiFHv9E8wEAaSUd7dHSRaxSCBa7utonHqpIeMbvj3Evm1w0WfGLFDtRXLV1fTfEdM0FMTOhA== 252 | 253 | "@biomejs/cli-linux-x64-musl@1.7.2": 254 | version "1.7.2" 255 | resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.7.2.tgz#2f9d5715d4a02bd4644bab9ed7f7680229ba8303" 256 | integrity sha512-x10LpGMepDrLS+h2TZ6/T7egpHjGKtiI4GuShNylmBQJWfTotbFf9eseHggrqJ4WZf9yrGoVYrtbxXftuB95sQ== 257 | 258 | "@biomejs/cli-linux-x64@1.7.2": 259 | version "1.7.2" 260 | resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-1.7.2.tgz#0071ea5a25f5ec5bbc1b3e6984a454bd198fbd6f" 261 | integrity sha512-vXXyox8/CQijBxAu0+r8FfSO7JlC4tob3PbaFda8gPJFRz2uFJw39HtxVUwbTV1EcU6wSPh4SiRu5sZfP1VHrQ== 262 | 263 | "@biomejs/cli-win32-arm64@1.7.2": 264 | version "1.7.2" 265 | resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.7.2.tgz#baa561b05c30ea22c9308f63161ddf63a6baa781" 266 | integrity sha512-kRXdlKzcU7INf6/ldu0nVmkOgt7bKqmyXRRCUqqaJfA32+9InTbkD8tGrHZEVYIWr+eTuKcg16qZVDsPSDFZ8g== 267 | 268 | "@biomejs/cli-win32-x64@1.7.2": 269 | version "1.7.2" 270 | resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-1.7.2.tgz#cc13738545ea4a6bc4fee0bf0108a0e90dc1e173" 271 | integrity sha512-qHTtpAs+CNglAAuaTy09htoqUhrQyd3nd0aGTuLNqD10h1llMVi8WFZfoa+e5MuDSfYtMK6nW2Tbf6WgzzR1Qw== 272 | 273 | "@esbuild/android-arm64@0.18.20": 274 | version "0.18.20" 275 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" 276 | integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== 277 | 278 | "@esbuild/android-arm@0.18.20": 279 | version "0.18.20" 280 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" 281 | integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== 282 | 283 | "@esbuild/android-x64@0.18.20": 284 | version "0.18.20" 285 | resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" 286 | integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== 287 | 288 | "@esbuild/darwin-arm64@0.18.20": 289 | version "0.18.20" 290 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" 291 | integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== 292 | 293 | "@esbuild/darwin-x64@0.18.20": 294 | version "0.18.20" 295 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" 296 | integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== 297 | 298 | "@esbuild/freebsd-arm64@0.18.20": 299 | version "0.18.20" 300 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" 301 | integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== 302 | 303 | "@esbuild/freebsd-x64@0.18.20": 304 | version "0.18.20" 305 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" 306 | integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== 307 | 308 | "@esbuild/linux-arm64@0.18.20": 309 | version "0.18.20" 310 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" 311 | integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== 312 | 313 | "@esbuild/linux-arm@0.18.20": 314 | version "0.18.20" 315 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" 316 | integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== 317 | 318 | "@esbuild/linux-ia32@0.18.20": 319 | version "0.18.20" 320 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" 321 | integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== 322 | 323 | "@esbuild/linux-loong64@0.18.20": 324 | version "0.18.20" 325 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" 326 | integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== 327 | 328 | "@esbuild/linux-mips64el@0.18.20": 329 | version "0.18.20" 330 | resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" 331 | integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== 332 | 333 | "@esbuild/linux-ppc64@0.18.20": 334 | version "0.18.20" 335 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" 336 | integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== 337 | 338 | "@esbuild/linux-riscv64@0.18.20": 339 | version "0.18.20" 340 | resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" 341 | integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== 342 | 343 | "@esbuild/linux-s390x@0.18.20": 344 | version "0.18.20" 345 | resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" 346 | integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== 347 | 348 | "@esbuild/linux-x64@0.18.20": 349 | version "0.18.20" 350 | resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" 351 | integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== 352 | 353 | "@esbuild/netbsd-x64@0.18.20": 354 | version "0.18.20" 355 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" 356 | integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== 357 | 358 | "@esbuild/openbsd-x64@0.18.20": 359 | version "0.18.20" 360 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" 361 | integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== 362 | 363 | "@esbuild/sunos-x64@0.18.20": 364 | version "0.18.20" 365 | resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" 366 | integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== 367 | 368 | "@esbuild/win32-arm64@0.18.20": 369 | version "0.18.20" 370 | resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" 371 | integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== 372 | 373 | "@esbuild/win32-ia32@0.18.20": 374 | version "0.18.20" 375 | resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" 376 | integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== 377 | 378 | "@esbuild/win32-x64@0.18.20": 379 | version "0.18.20" 380 | resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" 381 | integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== 382 | 383 | "@floating-ui/core@^1.0.0": 384 | version "1.6.1" 385 | resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.6.1.tgz#a4e6fef1b069cda533cbc7a4998c083a37f37573" 386 | integrity sha512-42UH54oPZHPdRHdw6BgoBD6cg/eVTmVrFcgeRDM3jbO7uxSoipVcmcIGFcA5jmOHO5apcyvBhkSKES3fQJnu7A== 387 | dependencies: 388 | "@floating-ui/utils" "^0.2.0" 389 | 390 | "@floating-ui/dom@^1.0.0": 391 | version "1.6.4" 392 | resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.4.tgz#3a9d1f3b7ccdab89a4ca05713acc6204b1f67a29" 393 | integrity sha512-0G8R+zOvQsAG1pg2Q99P21jiqxqGBW1iRe/iXHsBRBxnpXKFI8QwbB4x5KmYLggNO5m34IQgOIu9SCRfR/WWiQ== 394 | dependencies: 395 | "@floating-ui/core" "^1.0.0" 396 | "@floating-ui/utils" "^0.2.0" 397 | 398 | "@floating-ui/react-dom@^2.0.0": 399 | version "2.0.9" 400 | resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.0.9.tgz#264ba8b061000baa132b5910f0427a6acf7ad7ce" 401 | integrity sha512-q0umO0+LQK4+p6aGyvzASqKbKOJcAHJ7ycE9CuUvfx3s9zTHWmGJTPOIlM/hmSBfUfg/XfY5YhLBLR/LHwShQQ== 402 | dependencies: 403 | "@floating-ui/dom" "^1.0.0" 404 | 405 | "@floating-ui/utils@^0.2.0": 406 | version "0.2.2" 407 | resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.2.tgz#d8bae93ac8b815b2bd7a98078cf91e2724ef11e5" 408 | integrity sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw== 409 | 410 | "@jridgewell/gen-mapping@^0.3.5": 411 | version "0.3.5" 412 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" 413 | integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== 414 | dependencies: 415 | "@jridgewell/set-array" "^1.2.1" 416 | "@jridgewell/sourcemap-codec" "^1.4.10" 417 | "@jridgewell/trace-mapping" "^0.3.24" 418 | 419 | "@jridgewell/resolve-uri@^3.1.0": 420 | version "3.1.2" 421 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" 422 | integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== 423 | 424 | "@jridgewell/set-array@^1.2.1": 425 | version "1.2.1" 426 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" 427 | integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== 428 | 429 | "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": 430 | version "1.4.15" 431 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" 432 | integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== 433 | 434 | "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": 435 | version "0.3.25" 436 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" 437 | integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== 438 | dependencies: 439 | "@jridgewell/resolve-uri" "^3.1.0" 440 | "@jridgewell/sourcemap-codec" "^1.4.14" 441 | 442 | "@radix-ui/number@1.0.1": 443 | version "1.0.1" 444 | resolved "https://registry.yarnpkg.com/@radix-ui/number/-/number-1.0.1.tgz#644161a3557f46ed38a042acf4a770e826021674" 445 | integrity sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg== 446 | dependencies: 447 | "@babel/runtime" "^7.13.10" 448 | 449 | "@radix-ui/primitive@1.0.1": 450 | version "1.0.1" 451 | resolved "https://registry.yarnpkg.com/@radix-ui/primitive/-/primitive-1.0.1.tgz#e46f9958b35d10e9f6dc71c497305c22e3e55dbd" 452 | integrity sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw== 453 | dependencies: 454 | "@babel/runtime" "^7.13.10" 455 | 456 | "@radix-ui/react-alert-dialog@^1.0.5": 457 | version "1.0.5" 458 | resolved "https://registry.yarnpkg.com/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.0.5.tgz#70dd529cbf1e4bff386814d3776901fcaa131b8c" 459 | integrity sha512-OrVIOcZL0tl6xibeuGt5/+UxoT2N27KCFOPjFyfXMnchxSHZ/OW7cCX2nGlIYJrbHK/fczPcFzAwvNBB6XBNMA== 460 | dependencies: 461 | "@babel/runtime" "^7.13.10" 462 | "@radix-ui/primitive" "1.0.1" 463 | "@radix-ui/react-compose-refs" "1.0.1" 464 | "@radix-ui/react-context" "1.0.1" 465 | "@radix-ui/react-dialog" "1.0.5" 466 | "@radix-ui/react-primitive" "1.0.3" 467 | "@radix-ui/react-slot" "1.0.2" 468 | 469 | "@radix-ui/react-arrow@1.0.3": 470 | version "1.0.3" 471 | resolved "https://registry.yarnpkg.com/@radix-ui/react-arrow/-/react-arrow-1.0.3.tgz#c24f7968996ed934d57fe6cde5d6ec7266e1d25d" 472 | integrity sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA== 473 | dependencies: 474 | "@babel/runtime" "^7.13.10" 475 | "@radix-ui/react-primitive" "1.0.3" 476 | 477 | "@radix-ui/react-collection@1.0.3": 478 | version "1.0.3" 479 | resolved "https://registry.yarnpkg.com/@radix-ui/react-collection/-/react-collection-1.0.3.tgz#9595a66e09026187524a36c6e7e9c7d286469159" 480 | integrity sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA== 481 | dependencies: 482 | "@babel/runtime" "^7.13.10" 483 | "@radix-ui/react-compose-refs" "1.0.1" 484 | "@radix-ui/react-context" "1.0.1" 485 | "@radix-ui/react-primitive" "1.0.3" 486 | "@radix-ui/react-slot" "1.0.2" 487 | 488 | "@radix-ui/react-compose-refs@1.0.1": 489 | version "1.0.1" 490 | resolved "https://registry.yarnpkg.com/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz#7ed868b66946aa6030e580b1ffca386dd4d21989" 491 | integrity sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw== 492 | dependencies: 493 | "@babel/runtime" "^7.13.10" 494 | 495 | "@radix-ui/react-context-menu@^2.1.5": 496 | version "2.1.5" 497 | resolved "https://registry.yarnpkg.com/@radix-ui/react-context-menu/-/react-context-menu-2.1.5.tgz#1bdbd72761439f9166f75dc4598f276265785c83" 498 | integrity sha512-R5XaDj06Xul1KGb+WP8qiOh7tKJNz2durpLBXAGZjSVtctcRFCuEvy2gtMwRJGePwQQE5nV77gs4FwRi8T+r2g== 499 | dependencies: 500 | "@babel/runtime" "^7.13.10" 501 | "@radix-ui/primitive" "1.0.1" 502 | "@radix-ui/react-context" "1.0.1" 503 | "@radix-ui/react-menu" "2.0.6" 504 | "@radix-ui/react-primitive" "1.0.3" 505 | "@radix-ui/react-use-callback-ref" "1.0.1" 506 | "@radix-ui/react-use-controllable-state" "1.0.1" 507 | 508 | "@radix-ui/react-context@1.0.1": 509 | version "1.0.1" 510 | resolved "https://registry.yarnpkg.com/@radix-ui/react-context/-/react-context-1.0.1.tgz#fe46e67c96b240de59187dcb7a1a50ce3e2ec00c" 511 | integrity sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg== 512 | dependencies: 513 | "@babel/runtime" "^7.13.10" 514 | 515 | "@radix-ui/react-dialog@1.0.5", "@radix-ui/react-dialog@^1.0.5": 516 | version "1.0.5" 517 | resolved "https://registry.yarnpkg.com/@radix-ui/react-dialog/-/react-dialog-1.0.5.tgz#71657b1b116de6c7a0b03242d7d43e01062c7300" 518 | integrity sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q== 519 | dependencies: 520 | "@babel/runtime" "^7.13.10" 521 | "@radix-ui/primitive" "1.0.1" 522 | "@radix-ui/react-compose-refs" "1.0.1" 523 | "@radix-ui/react-context" "1.0.1" 524 | "@radix-ui/react-dismissable-layer" "1.0.5" 525 | "@radix-ui/react-focus-guards" "1.0.1" 526 | "@radix-ui/react-focus-scope" "1.0.4" 527 | "@radix-ui/react-id" "1.0.1" 528 | "@radix-ui/react-portal" "1.0.4" 529 | "@radix-ui/react-presence" "1.0.1" 530 | "@radix-ui/react-primitive" "1.0.3" 531 | "@radix-ui/react-slot" "1.0.2" 532 | "@radix-ui/react-use-controllable-state" "1.0.1" 533 | aria-hidden "^1.1.1" 534 | react-remove-scroll "2.5.5" 535 | 536 | "@radix-ui/react-direction@1.0.1": 537 | version "1.0.1" 538 | resolved "https://registry.yarnpkg.com/@radix-ui/react-direction/-/react-direction-1.0.1.tgz#9cb61bf2ccf568f3421422d182637b7f47596c9b" 539 | integrity sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA== 540 | dependencies: 541 | "@babel/runtime" "^7.13.10" 542 | 543 | "@radix-ui/react-dismissable-layer@1.0.4": 544 | version "1.0.4" 545 | resolved "https://registry.yarnpkg.com/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.4.tgz#883a48f5f938fa679427aa17fcba70c5494c6978" 546 | integrity sha512-7UpBa/RKMoHJYjie1gkF1DlK8l1fdU/VKDpoS3rCCo8YBJR294GwcEHyxHw72yvphJ7ld0AXEcSLAzY2F/WyCg== 547 | dependencies: 548 | "@babel/runtime" "^7.13.10" 549 | "@radix-ui/primitive" "1.0.1" 550 | "@radix-ui/react-compose-refs" "1.0.1" 551 | "@radix-ui/react-primitive" "1.0.3" 552 | "@radix-ui/react-use-callback-ref" "1.0.1" 553 | "@radix-ui/react-use-escape-keydown" "1.0.3" 554 | 555 | "@radix-ui/react-dismissable-layer@1.0.5": 556 | version "1.0.5" 557 | resolved "https://registry.yarnpkg.com/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.5.tgz#3f98425b82b9068dfbab5db5fff3df6ebf48b9d4" 558 | integrity sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g== 559 | dependencies: 560 | "@babel/runtime" "^7.13.10" 561 | "@radix-ui/primitive" "1.0.1" 562 | "@radix-ui/react-compose-refs" "1.0.1" 563 | "@radix-ui/react-primitive" "1.0.3" 564 | "@radix-ui/react-use-callback-ref" "1.0.1" 565 | "@radix-ui/react-use-escape-keydown" "1.0.3" 566 | 567 | "@radix-ui/react-dropdown-menu@^2.0.6": 568 | version "2.0.6" 569 | resolved "https://registry.yarnpkg.com/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.0.6.tgz#cdf13c956c5e263afe4e5f3587b3071a25755b63" 570 | integrity sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA== 571 | dependencies: 572 | "@babel/runtime" "^7.13.10" 573 | "@radix-ui/primitive" "1.0.1" 574 | "@radix-ui/react-compose-refs" "1.0.1" 575 | "@radix-ui/react-context" "1.0.1" 576 | "@radix-ui/react-id" "1.0.1" 577 | "@radix-ui/react-menu" "2.0.6" 578 | "@radix-ui/react-primitive" "1.0.3" 579 | "@radix-ui/react-use-controllable-state" "1.0.1" 580 | 581 | "@radix-ui/react-focus-guards@1.0.1": 582 | version "1.0.1" 583 | resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz#1ea7e32092216b946397866199d892f71f7f98ad" 584 | integrity sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA== 585 | dependencies: 586 | "@babel/runtime" "^7.13.10" 587 | 588 | "@radix-ui/react-focus-scope@1.0.3": 589 | version "1.0.3" 590 | resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.3.tgz#9c2e8d4ed1189a1d419ee61edd5c1828726472f9" 591 | integrity sha512-upXdPfqI4islj2CslyfUBNlaJCPybbqRHAi1KER7Isel9Q2AtSJ0zRBZv8mWQiFXD2nyAJ4BhC3yXgZ6kMBSrQ== 592 | dependencies: 593 | "@babel/runtime" "^7.13.10" 594 | "@radix-ui/react-compose-refs" "1.0.1" 595 | "@radix-ui/react-primitive" "1.0.3" 596 | "@radix-ui/react-use-callback-ref" "1.0.1" 597 | 598 | "@radix-ui/react-focus-scope@1.0.4": 599 | version "1.0.4" 600 | resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.4.tgz#2ac45fce8c5bb33eb18419cdc1905ef4f1906525" 601 | integrity sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA== 602 | dependencies: 603 | "@babel/runtime" "^7.13.10" 604 | "@radix-ui/react-compose-refs" "1.0.1" 605 | "@radix-ui/react-primitive" "1.0.3" 606 | "@radix-ui/react-use-callback-ref" "1.0.1" 607 | 608 | "@radix-ui/react-id@1.0.1": 609 | version "1.0.1" 610 | resolved "https://registry.yarnpkg.com/@radix-ui/react-id/-/react-id-1.0.1.tgz#73cdc181f650e4df24f0b6a5b7aa426b912c88c0" 611 | integrity sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ== 612 | dependencies: 613 | "@babel/runtime" "^7.13.10" 614 | "@radix-ui/react-use-layout-effect" "1.0.1" 615 | 616 | "@radix-ui/react-menu@2.0.6": 617 | version "2.0.6" 618 | resolved "https://registry.yarnpkg.com/@radix-ui/react-menu/-/react-menu-2.0.6.tgz#2c9e093c1a5d5daa87304b2a2f884e32288ae79e" 619 | integrity sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA== 620 | dependencies: 621 | "@babel/runtime" "^7.13.10" 622 | "@radix-ui/primitive" "1.0.1" 623 | "@radix-ui/react-collection" "1.0.3" 624 | "@radix-ui/react-compose-refs" "1.0.1" 625 | "@radix-ui/react-context" "1.0.1" 626 | "@radix-ui/react-direction" "1.0.1" 627 | "@radix-ui/react-dismissable-layer" "1.0.5" 628 | "@radix-ui/react-focus-guards" "1.0.1" 629 | "@radix-ui/react-focus-scope" "1.0.4" 630 | "@radix-ui/react-id" "1.0.1" 631 | "@radix-ui/react-popper" "1.1.3" 632 | "@radix-ui/react-portal" "1.0.4" 633 | "@radix-ui/react-presence" "1.0.1" 634 | "@radix-ui/react-primitive" "1.0.3" 635 | "@radix-ui/react-roving-focus" "1.0.4" 636 | "@radix-ui/react-slot" "1.0.2" 637 | "@radix-ui/react-use-callback-ref" "1.0.1" 638 | aria-hidden "^1.1.1" 639 | react-remove-scroll "2.5.5" 640 | 641 | "@radix-ui/react-popover@^1.0.7": 642 | version "1.0.7" 643 | resolved "https://registry.yarnpkg.com/@radix-ui/react-popover/-/react-popover-1.0.7.tgz#23eb7e3327330cb75ec7b4092d685398c1654e3c" 644 | integrity sha512-shtvVnlsxT6faMnK/a7n0wptwBD23xc1Z5mdrtKLwVEfsEMXodS0r5s0/g5P0hX//EKYZS2sxUjqfzlg52ZSnQ== 645 | dependencies: 646 | "@babel/runtime" "^7.13.10" 647 | "@radix-ui/primitive" "1.0.1" 648 | "@radix-ui/react-compose-refs" "1.0.1" 649 | "@radix-ui/react-context" "1.0.1" 650 | "@radix-ui/react-dismissable-layer" "1.0.5" 651 | "@radix-ui/react-focus-guards" "1.0.1" 652 | "@radix-ui/react-focus-scope" "1.0.4" 653 | "@radix-ui/react-id" "1.0.1" 654 | "@radix-ui/react-popper" "1.1.3" 655 | "@radix-ui/react-portal" "1.0.4" 656 | "@radix-ui/react-presence" "1.0.1" 657 | "@radix-ui/react-primitive" "1.0.3" 658 | "@radix-ui/react-slot" "1.0.2" 659 | "@radix-ui/react-use-controllable-state" "1.0.1" 660 | aria-hidden "^1.1.1" 661 | react-remove-scroll "2.5.5" 662 | 663 | "@radix-ui/react-popper@1.1.2": 664 | version "1.1.2" 665 | resolved "https://registry.yarnpkg.com/@radix-ui/react-popper/-/react-popper-1.1.2.tgz#4c0b96fcd188dc1f334e02dba2d538973ad842e9" 666 | integrity sha512-1CnGGfFi/bbqtJZZ0P/NQY20xdG3E0LALJaLUEoKwPLwl6PPPfbeiCqMVQnhoFRAxjJj4RpBRJzDmUgsex2tSg== 667 | dependencies: 668 | "@babel/runtime" "^7.13.10" 669 | "@floating-ui/react-dom" "^2.0.0" 670 | "@radix-ui/react-arrow" "1.0.3" 671 | "@radix-ui/react-compose-refs" "1.0.1" 672 | "@radix-ui/react-context" "1.0.1" 673 | "@radix-ui/react-primitive" "1.0.3" 674 | "@radix-ui/react-use-callback-ref" "1.0.1" 675 | "@radix-ui/react-use-layout-effect" "1.0.1" 676 | "@radix-ui/react-use-rect" "1.0.1" 677 | "@radix-ui/react-use-size" "1.0.1" 678 | "@radix-ui/rect" "1.0.1" 679 | 680 | "@radix-ui/react-popper@1.1.3": 681 | version "1.1.3" 682 | resolved "https://registry.yarnpkg.com/@radix-ui/react-popper/-/react-popper-1.1.3.tgz#24c03f527e7ac348fabf18c89795d85d21b00b42" 683 | integrity sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w== 684 | dependencies: 685 | "@babel/runtime" "^7.13.10" 686 | "@floating-ui/react-dom" "^2.0.0" 687 | "@radix-ui/react-arrow" "1.0.3" 688 | "@radix-ui/react-compose-refs" "1.0.1" 689 | "@radix-ui/react-context" "1.0.1" 690 | "@radix-ui/react-primitive" "1.0.3" 691 | "@radix-ui/react-use-callback-ref" "1.0.1" 692 | "@radix-ui/react-use-layout-effect" "1.0.1" 693 | "@radix-ui/react-use-rect" "1.0.1" 694 | "@radix-ui/react-use-size" "1.0.1" 695 | "@radix-ui/rect" "1.0.1" 696 | 697 | "@radix-ui/react-portal@1.0.3": 698 | version "1.0.3" 699 | resolved "https://registry.yarnpkg.com/@radix-ui/react-portal/-/react-portal-1.0.3.tgz#ffb961244c8ed1b46f039e6c215a6c4d9989bda1" 700 | integrity sha512-xLYZeHrWoPmA5mEKEfZZevoVRK/Q43GfzRXkWV6qawIWWK8t6ifIiLQdd7rmQ4Vk1bmI21XhqF9BN3jWf+phpA== 701 | dependencies: 702 | "@babel/runtime" "^7.13.10" 703 | "@radix-ui/react-primitive" "1.0.3" 704 | 705 | "@radix-ui/react-portal@1.0.4": 706 | version "1.0.4" 707 | resolved "https://registry.yarnpkg.com/@radix-ui/react-portal/-/react-portal-1.0.4.tgz#df4bfd353db3b1e84e639e9c63a5f2565fb00e15" 708 | integrity sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q== 709 | dependencies: 710 | "@babel/runtime" "^7.13.10" 711 | "@radix-ui/react-primitive" "1.0.3" 712 | 713 | "@radix-ui/react-presence@1.0.1": 714 | version "1.0.1" 715 | resolved "https://registry.yarnpkg.com/@radix-ui/react-presence/-/react-presence-1.0.1.tgz#491990ba913b8e2a5db1b06b203cb24b5cdef9ba" 716 | integrity sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg== 717 | dependencies: 718 | "@babel/runtime" "^7.13.10" 719 | "@radix-ui/react-compose-refs" "1.0.1" 720 | "@radix-ui/react-use-layout-effect" "1.0.1" 721 | 722 | "@radix-ui/react-primitive@1.0.3": 723 | version "1.0.3" 724 | resolved "https://registry.yarnpkg.com/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz#d49ea0f3f0b2fe3ab1cb5667eb03e8b843b914d0" 725 | integrity sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g== 726 | dependencies: 727 | "@babel/runtime" "^7.13.10" 728 | "@radix-ui/react-slot" "1.0.2" 729 | 730 | "@radix-ui/react-roving-focus@1.0.4": 731 | version "1.0.4" 732 | resolved "https://registry.yarnpkg.com/@radix-ui/react-roving-focus/-/react-roving-focus-1.0.4.tgz#e90c4a6a5f6ac09d3b8c1f5b5e81aab2f0db1974" 733 | integrity sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ== 734 | dependencies: 735 | "@babel/runtime" "^7.13.10" 736 | "@radix-ui/primitive" "1.0.1" 737 | "@radix-ui/react-collection" "1.0.3" 738 | "@radix-ui/react-compose-refs" "1.0.1" 739 | "@radix-ui/react-context" "1.0.1" 740 | "@radix-ui/react-direction" "1.0.1" 741 | "@radix-ui/react-id" "1.0.1" 742 | "@radix-ui/react-primitive" "1.0.3" 743 | "@radix-ui/react-use-callback-ref" "1.0.1" 744 | "@radix-ui/react-use-controllable-state" "1.0.1" 745 | 746 | "@radix-ui/react-select@^1.2.0": 747 | version "1.2.2" 748 | resolved "https://registry.yarnpkg.com/@radix-ui/react-select/-/react-select-1.2.2.tgz#caa981fa0d672cf3c1b2a5240135524e69b32181" 749 | integrity sha512-zI7McXr8fNaSrUY9mZe4x/HC0jTLY9fWNhO1oLWYMQGDXuV4UCivIGTxwioSzO0ZCYX9iSLyWmAh/1TOmX3Cnw== 750 | dependencies: 751 | "@babel/runtime" "^7.13.10" 752 | "@radix-ui/number" "1.0.1" 753 | "@radix-ui/primitive" "1.0.1" 754 | "@radix-ui/react-collection" "1.0.3" 755 | "@radix-ui/react-compose-refs" "1.0.1" 756 | "@radix-ui/react-context" "1.0.1" 757 | "@radix-ui/react-direction" "1.0.1" 758 | "@radix-ui/react-dismissable-layer" "1.0.4" 759 | "@radix-ui/react-focus-guards" "1.0.1" 760 | "@radix-ui/react-focus-scope" "1.0.3" 761 | "@radix-ui/react-id" "1.0.1" 762 | "@radix-ui/react-popper" "1.1.2" 763 | "@radix-ui/react-portal" "1.0.3" 764 | "@radix-ui/react-primitive" "1.0.3" 765 | "@radix-ui/react-slot" "1.0.2" 766 | "@radix-ui/react-use-callback-ref" "1.0.1" 767 | "@radix-ui/react-use-controllable-state" "1.0.1" 768 | "@radix-ui/react-use-layout-effect" "1.0.1" 769 | "@radix-ui/react-use-previous" "1.0.1" 770 | "@radix-ui/react-visually-hidden" "1.0.3" 771 | aria-hidden "^1.1.1" 772 | react-remove-scroll "2.5.5" 773 | 774 | "@radix-ui/react-slider@^1.1.0": 775 | version "1.1.2" 776 | resolved "https://registry.yarnpkg.com/@radix-ui/react-slider/-/react-slider-1.1.2.tgz#330ff2a0e1f6c19aace76590004f229a7e8fbe6c" 777 | integrity sha512-NKs15MJylfzVsCagVSWKhGGLNR1W9qWs+HtgbmjjVUB3B9+lb3PYoXxVju3kOrpf0VKyVCtZp+iTwVoqpa1Chw== 778 | dependencies: 779 | "@babel/runtime" "^7.13.10" 780 | "@radix-ui/number" "1.0.1" 781 | "@radix-ui/primitive" "1.0.1" 782 | "@radix-ui/react-collection" "1.0.3" 783 | "@radix-ui/react-compose-refs" "1.0.1" 784 | "@radix-ui/react-context" "1.0.1" 785 | "@radix-ui/react-direction" "1.0.1" 786 | "@radix-ui/react-primitive" "1.0.3" 787 | "@radix-ui/react-use-controllable-state" "1.0.1" 788 | "@radix-ui/react-use-layout-effect" "1.0.1" 789 | "@radix-ui/react-use-previous" "1.0.1" 790 | "@radix-ui/react-use-size" "1.0.1" 791 | 792 | "@radix-ui/react-slot@1.0.2": 793 | version "1.0.2" 794 | resolved "https://registry.yarnpkg.com/@radix-ui/react-slot/-/react-slot-1.0.2.tgz#a9ff4423eade67f501ffb32ec22064bc9d3099ab" 795 | integrity sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg== 796 | dependencies: 797 | "@babel/runtime" "^7.13.10" 798 | "@radix-ui/react-compose-refs" "1.0.1" 799 | 800 | "@radix-ui/react-toast@^1.1.1": 801 | version "1.1.5" 802 | resolved "https://registry.yarnpkg.com/@radix-ui/react-toast/-/react-toast-1.1.5.tgz#f5788761c0142a5ae9eb97f0051fd3c48106d9e6" 803 | integrity sha512-fRLn227WHIBRSzuRzGJ8W+5YALxofH23y0MlPLddaIpLpCDqdE0NZlS2NRQDRiptfxDeeCjgFIpexB1/zkxDlw== 804 | dependencies: 805 | "@babel/runtime" "^7.13.10" 806 | "@radix-ui/primitive" "1.0.1" 807 | "@radix-ui/react-collection" "1.0.3" 808 | "@radix-ui/react-compose-refs" "1.0.1" 809 | "@radix-ui/react-context" "1.0.1" 810 | "@radix-ui/react-dismissable-layer" "1.0.5" 811 | "@radix-ui/react-portal" "1.0.4" 812 | "@radix-ui/react-presence" "1.0.1" 813 | "@radix-ui/react-primitive" "1.0.3" 814 | "@radix-ui/react-use-callback-ref" "1.0.1" 815 | "@radix-ui/react-use-controllable-state" "1.0.1" 816 | "@radix-ui/react-use-layout-effect" "1.0.1" 817 | "@radix-ui/react-visually-hidden" "1.0.3" 818 | 819 | "@radix-ui/react-use-callback-ref@1.0.1": 820 | version "1.0.1" 821 | resolved "https://registry.yarnpkg.com/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz#f4bb1f27f2023c984e6534317ebc411fc181107a" 822 | integrity sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ== 823 | dependencies: 824 | "@babel/runtime" "^7.13.10" 825 | 826 | "@radix-ui/react-use-controllable-state@1.0.1": 827 | version "1.0.1" 828 | resolved "https://registry.yarnpkg.com/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz#ecd2ced34e6330caf89a82854aa2f77e07440286" 829 | integrity sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA== 830 | dependencies: 831 | "@babel/runtime" "^7.13.10" 832 | "@radix-ui/react-use-callback-ref" "1.0.1" 833 | 834 | "@radix-ui/react-use-escape-keydown@1.0.3": 835 | version "1.0.3" 836 | resolved "https://registry.yarnpkg.com/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz#217b840c250541609c66f67ed7bab2b733620755" 837 | integrity sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg== 838 | dependencies: 839 | "@babel/runtime" "^7.13.10" 840 | "@radix-ui/react-use-callback-ref" "1.0.1" 841 | 842 | "@radix-ui/react-use-layout-effect@1.0.1": 843 | version "1.0.1" 844 | resolved "https://registry.yarnpkg.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz#be8c7bc809b0c8934acf6657b577daf948a75399" 845 | integrity sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ== 846 | dependencies: 847 | "@babel/runtime" "^7.13.10" 848 | 849 | "@radix-ui/react-use-previous@1.0.1": 850 | version "1.0.1" 851 | resolved "https://registry.yarnpkg.com/@radix-ui/react-use-previous/-/react-use-previous-1.0.1.tgz#b595c087b07317a4f143696c6a01de43b0d0ec66" 852 | integrity sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw== 853 | dependencies: 854 | "@babel/runtime" "^7.13.10" 855 | 856 | "@radix-ui/react-use-rect@1.0.1": 857 | version "1.0.1" 858 | resolved "https://registry.yarnpkg.com/@radix-ui/react-use-rect/-/react-use-rect-1.0.1.tgz#fde50b3bb9fd08f4a1cd204572e5943c244fcec2" 859 | integrity sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw== 860 | dependencies: 861 | "@babel/runtime" "^7.13.10" 862 | "@radix-ui/rect" "1.0.1" 863 | 864 | "@radix-ui/react-use-size@1.0.1": 865 | version "1.0.1" 866 | resolved "https://registry.yarnpkg.com/@radix-ui/react-use-size/-/react-use-size-1.0.1.tgz#1c5f5fea940a7d7ade77694bb98116fb49f870b2" 867 | integrity sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g== 868 | dependencies: 869 | "@babel/runtime" "^7.13.10" 870 | "@radix-ui/react-use-layout-effect" "1.0.1" 871 | 872 | "@radix-ui/react-visually-hidden@1.0.3": 873 | version "1.0.3" 874 | resolved "https://registry.yarnpkg.com/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.0.3.tgz#51aed9dd0fe5abcad7dee2a234ad36106a6984ac" 875 | integrity sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA== 876 | dependencies: 877 | "@babel/runtime" "^7.13.10" 878 | "@radix-ui/react-primitive" "1.0.3" 879 | 880 | "@radix-ui/rect@1.0.1": 881 | version "1.0.1" 882 | resolved "https://registry.yarnpkg.com/@radix-ui/rect/-/rect-1.0.1.tgz#bf8e7d947671996da2e30f4904ece343bc4a883f" 883 | integrity sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ== 884 | dependencies: 885 | "@babel/runtime" "^7.13.10" 886 | 887 | "@tldraw/editor@2.1.4": 888 | version "2.1.4" 889 | resolved "https://registry.yarnpkg.com/@tldraw/editor/-/editor-2.1.4.tgz#084a2270aed85f9eeae8d770cc9dc3d4a5ea9d6d" 890 | integrity sha512-zeifkXS//2X/oonr2YYIIrRt6PRwri6c60sPzx0djhNK5LC9b0um8Lu1lLcIZip468WEeBYpcc9cPui1OXi7qQ== 891 | dependencies: 892 | "@tldraw/state" "2.1.4" 893 | "@tldraw/store" "2.1.4" 894 | "@tldraw/tlschema" "2.1.4" 895 | "@tldraw/utils" "2.1.4" 896 | "@tldraw/validate" "2.1.4" 897 | "@types/core-js" "^2.5.5" 898 | "@use-gesture/react" "^10.2.27" 899 | classnames "^2.3.2" 900 | core-js "^3.31.1" 901 | eventemitter3 "^4.0.7" 902 | idb "^7.1.1" 903 | is-plain-object "^5.0.0" 904 | lodash.throttle "^4.1.1" 905 | lodash.uniq "^4.5.0" 906 | nanoid "4.0.2" 907 | 908 | "@tldraw/state@2.1.4": 909 | version "2.1.4" 910 | resolved "https://registry.yarnpkg.com/@tldraw/state/-/state-2.1.4.tgz#a16495e0b4dfcc2a51ccd3f0dbc30cc067e46b5b" 911 | integrity sha512-eLgeIz76hobnOhvBobeo3iYhEpsNVH7ozUYyH4VIYFfNy9TuRi7klAJ55bA86iCNAnBIgqhXvsCn5VDlVu9rTA== 912 | 913 | "@tldraw/store@2.1.4": 914 | version "2.1.4" 915 | resolved "https://registry.yarnpkg.com/@tldraw/store/-/store-2.1.4.tgz#8f65c7ef45de55e8d7a11897495bb1a0610d6c83" 916 | integrity sha512-g9jYNObGVgd4TXKDCSLm4Hs0xKYPVQVq6hSGL6zY26EYvpa7RV1JQ6vc+gO3da/NtaYsLBJ0UoXpb61e/hyumQ== 917 | dependencies: 918 | "@tldraw/state" "2.1.4" 919 | "@tldraw/utils" "2.1.4" 920 | lodash.isequal "^4.5.0" 921 | nanoid "4.0.2" 922 | 923 | "@tldraw/tlschema@2.1.4": 924 | version "2.1.4" 925 | resolved "https://registry.yarnpkg.com/@tldraw/tlschema/-/tlschema-2.1.4.tgz#8907aab828b3f905f31d4e4065d5431f20c7611d" 926 | integrity sha512-IRb7AJmsvMFQl2G+BXB3eWdWX053KwLryHq+UI4FmJ/Xl0M6td9b3XZcv33UpwRrhsZISM97xRKCuglLuKu9nA== 927 | dependencies: 928 | "@tldraw/state" "2.1.4" 929 | "@tldraw/store" "2.1.4" 930 | "@tldraw/utils" "2.1.4" 931 | "@tldraw/validate" "2.1.4" 932 | nanoid "4.0.2" 933 | 934 | "@tldraw/utils@2.1.4": 935 | version "2.1.4" 936 | resolved "https://registry.yarnpkg.com/@tldraw/utils/-/utils-2.1.4.tgz#0d67015e2e2643aa2a4c0a14d7e3e4e8f460bc78" 937 | integrity sha512-C1py+hHpLdqTLWraua4f4U1FRonQtwzTJozeOpKZbmBaYT5x6I6WtNKBZpAIY752HCbj0CnoMDf7oY8Mf1TkpA== 938 | 939 | "@tldraw/validate@2.1.4": 940 | version "2.1.4" 941 | resolved "https://registry.yarnpkg.com/@tldraw/validate/-/validate-2.1.4.tgz#20825698d695c5fd7de7ad9a0f497a853b7f9f00" 942 | integrity sha512-m1GUyCzaInw1USaMVaIPSnYbEbPPusNcpi91ql05DCDUnHO28XI+C7LNBQ+kWk2Z7LNtvrtCwD3N80xaSEPIzg== 943 | dependencies: 944 | "@tldraw/utils" "2.1.4" 945 | 946 | "@types/babel__core@^7.20.5": 947 | version "7.20.5" 948 | resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" 949 | integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== 950 | dependencies: 951 | "@babel/parser" "^7.20.7" 952 | "@babel/types" "^7.20.7" 953 | "@types/babel__generator" "*" 954 | "@types/babel__template" "*" 955 | "@types/babel__traverse" "*" 956 | 957 | "@types/babel__generator@*": 958 | version "7.6.8" 959 | resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab" 960 | integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== 961 | dependencies: 962 | "@babel/types" "^7.0.0" 963 | 964 | "@types/babel__template@*": 965 | version "7.4.4" 966 | resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" 967 | integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== 968 | dependencies: 969 | "@babel/parser" "^7.1.0" 970 | "@babel/types" "^7.0.0" 971 | 972 | "@types/babel__traverse@*": 973 | version "7.20.5" 974 | resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.5.tgz#7b7502be0aa80cc4ef22978846b983edaafcd4dd" 975 | integrity sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ== 976 | dependencies: 977 | "@babel/types" "^7.20.7" 978 | 979 | "@types/core-js@^2.5.5": 980 | version "2.5.8" 981 | resolved "https://registry.yarnpkg.com/@types/core-js/-/core-js-2.5.8.tgz#d5c6ec44f2f3328653dce385ae586bd8261f8e85" 982 | integrity sha512-VgnAj6tIAhJhZdJ8/IpxdatM8G4OD3VWGlp6xIxUGENZlpbob9Ty4VVdC1FIEp0aK6DBscDDjyzy5FB60TuNqg== 983 | 984 | "@types/gh-pages@^6": 985 | version "6.1.0" 986 | resolved "https://registry.yarnpkg.com/@types/gh-pages/-/gh-pages-6.1.0.tgz#63c33b489f3a7618b136897ffb007076b47fe0b7" 987 | integrity sha512-Ma9bmKkE+WUtywENLC1rSLXTW66cJHJMWX2RQrJTMKhYM8o+73bRJ1ebfo3RWXUcG+HW3khky2nhVaN7nCsa3Q== 988 | 989 | "@types/node@^20.12.8": 990 | version "20.12.8" 991 | resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.8.tgz#35897bf2bfe3469847ab04634636de09552e8256" 992 | integrity sha512-NU0rJLJnshZWdE/097cdCBbyW1h4hEg0xpovcoAQYHl8dnEyp/NAOiE45pvc+Bd1Dt+2r94v2eGFpQJ4R7g+2w== 993 | dependencies: 994 | undici-types "~5.26.4" 995 | 996 | "@types/prop-types@*": 997 | version "15.7.12" 998 | resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.12.tgz#12bb1e2be27293c1406acb6af1c3f3a1481d98c6" 999 | integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q== 1000 | 1001 | "@types/react-dom@^18.2.7": 1002 | version "18.3.0" 1003 | resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.0.tgz#0cbc818755d87066ab6ca74fbedb2547d74a82b0" 1004 | integrity sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg== 1005 | dependencies: 1006 | "@types/react" "*" 1007 | 1008 | "@types/react@*", "@types/react@^18.2.15": 1009 | version "18.3.1" 1010 | resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.1.tgz#fed43985caa834a2084d002e4771e15dfcbdbe8e" 1011 | integrity sha512-V0kuGBX3+prX+DQ/7r2qsv1NsdfnCLnTgnRJ1pYnxykBhGMz+qj+box5lq7XsO5mtZsBqpjwwTu/7wszPfMBcw== 1012 | dependencies: 1013 | "@types/prop-types" "*" 1014 | csstype "^3.0.2" 1015 | 1016 | "@use-gesture/core@10.3.1": 1017 | version "10.3.1" 1018 | resolved "https://registry.yarnpkg.com/@use-gesture/core/-/core-10.3.1.tgz#976c9421e905f0079d49822cfd5c2e56b808fc56" 1019 | integrity sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw== 1020 | 1021 | "@use-gesture/react@^10.2.27": 1022 | version "10.3.1" 1023 | resolved "https://registry.yarnpkg.com/@use-gesture/react/-/react-10.3.1.tgz#17a743a894d9bd9a0d1980c618f37f0164469867" 1024 | integrity sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g== 1025 | dependencies: 1026 | "@use-gesture/core" "10.3.1" 1027 | 1028 | "@vitejs/plugin-react@^4.0.3": 1029 | version "4.2.1" 1030 | resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz#744d8e4fcb120fc3dbaa471dadd3483f5a304bb9" 1031 | integrity sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ== 1032 | dependencies: 1033 | "@babel/core" "^7.23.5" 1034 | "@babel/plugin-transform-react-jsx-self" "^7.23.3" 1035 | "@babel/plugin-transform-react-jsx-source" "^7.23.3" 1036 | "@types/babel__core" "^7.20.5" 1037 | react-refresh "^0.14.0" 1038 | 1039 | ansi-styles@^3.2.1: 1040 | version "3.2.1" 1041 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 1042 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 1043 | dependencies: 1044 | color-convert "^1.9.0" 1045 | 1046 | aria-hidden@^1.1.1: 1047 | version "1.2.4" 1048 | resolved "https://registry.yarnpkg.com/aria-hidden/-/aria-hidden-1.2.4.tgz#b78e383fdbc04d05762c78b4a25a501e736c4522" 1049 | integrity sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A== 1050 | dependencies: 1051 | tslib "^2.0.0" 1052 | 1053 | array-union@^1.0.1: 1054 | version "1.0.2" 1055 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" 1056 | integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== 1057 | dependencies: 1058 | array-uniq "^1.0.1" 1059 | 1060 | array-uniq@^1.0.1: 1061 | version "1.0.3" 1062 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" 1063 | integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== 1064 | 1065 | async@^3.2.4: 1066 | version "3.2.5" 1067 | resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" 1068 | integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== 1069 | 1070 | balanced-match@^1.0.0: 1071 | version "1.0.2" 1072 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 1073 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 1074 | 1075 | brace-expansion@^1.1.7: 1076 | version "1.1.11" 1077 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 1078 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 1079 | dependencies: 1080 | balanced-match "^1.0.0" 1081 | concat-map "0.0.1" 1082 | 1083 | browserslist@^4.22.2: 1084 | version "4.23.0" 1085 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" 1086 | integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== 1087 | dependencies: 1088 | caniuse-lite "^1.0.30001587" 1089 | electron-to-chromium "^1.4.668" 1090 | node-releases "^2.0.14" 1091 | update-browserslist-db "^1.0.13" 1092 | 1093 | caniuse-lite@^1.0.30001587: 1094 | version "1.0.30001616" 1095 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001616.tgz#4342712750d35f71ebba9fcac65e2cf8870013c3" 1096 | integrity sha512-RHVYKov7IcdNjVHJFNY/78RdG4oGVjbayxv8u5IO74Wv7Hlq4PnJE6mo/OjFijjVFNy5ijnCt6H3IIo4t+wfEw== 1097 | 1098 | canvas-size@^1.2.6: 1099 | version "1.2.6" 1100 | resolved "https://registry.yarnpkg.com/canvas-size/-/canvas-size-1.2.6.tgz#1eaa6b56167cf2a70fa4021680829d2073b45706" 1101 | integrity sha512-x2iVHOrZ5x9V0Hwx6kBz+Yxf/VCAII+jrD6WLjJbytJLozHq/oDJjEva432Os0eHxWMFR0vYlLJwTr6QxyxQqw== 1102 | 1103 | chalk@^2.4.2: 1104 | version "2.4.2" 1105 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 1106 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 1107 | dependencies: 1108 | ansi-styles "^3.2.1" 1109 | escape-string-regexp "^1.0.5" 1110 | supports-color "^5.3.0" 1111 | 1112 | classnames@^2.3.2: 1113 | version "2.5.1" 1114 | resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b" 1115 | integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow== 1116 | 1117 | color-convert@^1.9.0: 1118 | version "1.9.3" 1119 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 1120 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 1121 | dependencies: 1122 | color-name "1.1.3" 1123 | 1124 | color-name@1.1.3: 1125 | version "1.1.3" 1126 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 1127 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== 1128 | 1129 | commander@^11.0.0: 1130 | version "11.1.0" 1131 | resolved "https://registry.yarnpkg.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906" 1132 | integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== 1133 | 1134 | commondir@^1.0.1: 1135 | version "1.0.1" 1136 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" 1137 | integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== 1138 | 1139 | concat-map@0.0.1: 1140 | version "0.0.1" 1141 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 1142 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 1143 | 1144 | convert-source-map@^2.0.0: 1145 | version "2.0.0" 1146 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" 1147 | integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== 1148 | 1149 | core-js@^3.31.1: 1150 | version "3.37.0" 1151 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.37.0.tgz#d8dde58e91d156b2547c19d8a4efd5c7f6c426bb" 1152 | integrity sha512-fu5vHevQ8ZG4og+LXug8ulUtVxjOcEYvifJr7L5Bfq9GOztVqsKd9/59hUk2ZSbCrS3BqUr3EpaYGIYzq7g3Ug== 1153 | 1154 | csstype@^3.0.2: 1155 | version "3.1.3" 1156 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" 1157 | integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== 1158 | 1159 | debug@^4.1.0, debug@^4.3.1: 1160 | version "4.3.4" 1161 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 1162 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 1163 | dependencies: 1164 | ms "2.1.2" 1165 | 1166 | detect-node-es@^1.1.0: 1167 | version "1.1.0" 1168 | resolved "https://registry.yarnpkg.com/detect-node-es/-/detect-node-es-1.1.0.tgz#163acdf643330caa0b4cd7c21e7ee7755d6fa493" 1169 | integrity sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ== 1170 | 1171 | electron-to-chromium@^1.4.668: 1172 | version "1.4.756" 1173 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.756.tgz#7b872ed8c8c5bee571be771730225d6d2a37fe45" 1174 | integrity sha512-RJKZ9+vEBMeiPAvKNWyZjuYyUqMndcP1f335oHqn3BEQbs2NFtVrnK5+6Xg5wSM9TknNNpWghGDUCKGYF+xWXw== 1175 | 1176 | email-addresses@^5.0.0: 1177 | version "5.0.0" 1178 | resolved "https://registry.yarnpkg.com/email-addresses/-/email-addresses-5.0.0.tgz#7ae9e7f58eef7d5e3e2c2c2d3ea49b78dc854fa6" 1179 | integrity sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw== 1180 | 1181 | esbuild@^0.18.10: 1182 | version "0.18.20" 1183 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" 1184 | integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== 1185 | optionalDependencies: 1186 | "@esbuild/android-arm" "0.18.20" 1187 | "@esbuild/android-arm64" "0.18.20" 1188 | "@esbuild/android-x64" "0.18.20" 1189 | "@esbuild/darwin-arm64" "0.18.20" 1190 | "@esbuild/darwin-x64" "0.18.20" 1191 | "@esbuild/freebsd-arm64" "0.18.20" 1192 | "@esbuild/freebsd-x64" "0.18.20" 1193 | "@esbuild/linux-arm" "0.18.20" 1194 | "@esbuild/linux-arm64" "0.18.20" 1195 | "@esbuild/linux-ia32" "0.18.20" 1196 | "@esbuild/linux-loong64" "0.18.20" 1197 | "@esbuild/linux-mips64el" "0.18.20" 1198 | "@esbuild/linux-ppc64" "0.18.20" 1199 | "@esbuild/linux-riscv64" "0.18.20" 1200 | "@esbuild/linux-s390x" "0.18.20" 1201 | "@esbuild/linux-x64" "0.18.20" 1202 | "@esbuild/netbsd-x64" "0.18.20" 1203 | "@esbuild/openbsd-x64" "0.18.20" 1204 | "@esbuild/sunos-x64" "0.18.20" 1205 | "@esbuild/win32-arm64" "0.18.20" 1206 | "@esbuild/win32-ia32" "0.18.20" 1207 | "@esbuild/win32-x64" "0.18.20" 1208 | 1209 | escalade@^3.1.2: 1210 | version "3.1.2" 1211 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" 1212 | integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== 1213 | 1214 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 1215 | version "1.0.5" 1216 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 1217 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== 1218 | 1219 | eventemitter3@^4.0.7: 1220 | version "4.0.7" 1221 | resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" 1222 | integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== 1223 | 1224 | filename-reserved-regex@^2.0.0: 1225 | version "2.0.0" 1226 | resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" 1227 | integrity sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ== 1228 | 1229 | filenamify@^4.3.0: 1230 | version "4.3.0" 1231 | resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-4.3.0.tgz#62391cb58f02b09971c9d4f9d63b3cf9aba03106" 1232 | integrity sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg== 1233 | dependencies: 1234 | filename-reserved-regex "^2.0.0" 1235 | strip-outer "^1.0.1" 1236 | trim-repeated "^1.0.0" 1237 | 1238 | find-cache-dir@^3.3.1: 1239 | version "3.3.2" 1240 | resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" 1241 | integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== 1242 | dependencies: 1243 | commondir "^1.0.1" 1244 | make-dir "^3.0.2" 1245 | pkg-dir "^4.1.0" 1246 | 1247 | find-up@^4.0.0: 1248 | version "4.1.0" 1249 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" 1250 | integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== 1251 | dependencies: 1252 | locate-path "^5.0.0" 1253 | path-exists "^4.0.0" 1254 | 1255 | fs-extra@^11.1.1: 1256 | version "11.2.0" 1257 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" 1258 | integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== 1259 | dependencies: 1260 | graceful-fs "^4.2.0" 1261 | jsonfile "^6.0.1" 1262 | universalify "^2.0.0" 1263 | 1264 | fs.realpath@^1.0.0: 1265 | version "1.0.0" 1266 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1267 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== 1268 | 1269 | fsevents@~2.3.2: 1270 | version "2.3.3" 1271 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" 1272 | integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== 1273 | 1274 | gensync@^1.0.0-beta.2: 1275 | version "1.0.0-beta.2" 1276 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" 1277 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== 1278 | 1279 | get-nonce@^1.0.0: 1280 | version "1.0.1" 1281 | resolved "https://registry.yarnpkg.com/get-nonce/-/get-nonce-1.0.1.tgz#fdf3f0278073820d2ce9426c18f07481b1e0cdf3" 1282 | integrity sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q== 1283 | 1284 | gh-pages@^6.1.1: 1285 | version "6.1.1" 1286 | resolved "https://registry.yarnpkg.com/gh-pages/-/gh-pages-6.1.1.tgz#e80af927a081cb480657fde5a0b87ea2e77d6c74" 1287 | integrity sha512-upnohfjBwN5hBP9w2dPE7HO5JJTHzSGMV1JrLrHvNuqmjoYHg6TBrCcnEoorjG/e0ejbuvnwyKMdTyM40PEByw== 1288 | dependencies: 1289 | async "^3.2.4" 1290 | commander "^11.0.0" 1291 | email-addresses "^5.0.0" 1292 | filenamify "^4.3.0" 1293 | find-cache-dir "^3.3.1" 1294 | fs-extra "^11.1.1" 1295 | globby "^6.1.0" 1296 | 1297 | glob@^7.0.3: 1298 | version "7.2.3" 1299 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" 1300 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== 1301 | dependencies: 1302 | fs.realpath "^1.0.0" 1303 | inflight "^1.0.4" 1304 | inherits "2" 1305 | minimatch "^3.1.1" 1306 | once "^1.3.0" 1307 | path-is-absolute "^1.0.0" 1308 | 1309 | globals@^11.1.0: 1310 | version "11.12.0" 1311 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 1312 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 1313 | 1314 | globby@^6.1.0: 1315 | version "6.1.0" 1316 | resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" 1317 | integrity sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw== 1318 | dependencies: 1319 | array-union "^1.0.1" 1320 | glob "^7.0.3" 1321 | object-assign "^4.0.1" 1322 | pify "^2.0.0" 1323 | pinkie-promise "^2.0.0" 1324 | 1325 | graceful-fs@^4.1.6, graceful-fs@^4.2.0: 1326 | version "4.2.11" 1327 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" 1328 | integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== 1329 | 1330 | has-flag@^3.0.0: 1331 | version "3.0.0" 1332 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 1333 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== 1334 | 1335 | hotkeys-js@^3.11.2: 1336 | version "3.13.7" 1337 | resolved "https://registry.yarnpkg.com/hotkeys-js/-/hotkeys-js-3.13.7.tgz#0188d8e2fca16a3f1d66541b48de0bb9df613726" 1338 | integrity sha512-ygFIdTqqwG4fFP7kkiYlvayZppeIQX2aPpirsngkv1xM1lP0piDY5QEh68nQnIKvz64hfocxhBaD/uK3sSK1yQ== 1339 | 1340 | idb@^7.1.1: 1341 | version "7.1.1" 1342 | resolved "https://registry.yarnpkg.com/idb/-/idb-7.1.1.tgz#d910ded866d32c7ced9befc5bfdf36f572ced72b" 1343 | integrity sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ== 1344 | 1345 | inflight@^1.0.4: 1346 | version "1.0.6" 1347 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1348 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== 1349 | dependencies: 1350 | once "^1.3.0" 1351 | wrappy "1" 1352 | 1353 | inherits@2: 1354 | version "2.0.4" 1355 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 1356 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 1357 | 1358 | invariant@^2.2.4: 1359 | version "2.2.4" 1360 | resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" 1361 | integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== 1362 | dependencies: 1363 | loose-envify "^1.0.0" 1364 | 1365 | is-plain-object@^5.0.0: 1366 | version "5.0.0" 1367 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" 1368 | integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== 1369 | 1370 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: 1371 | version "4.0.0" 1372 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 1373 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 1374 | 1375 | jsesc@^2.5.1: 1376 | version "2.5.2" 1377 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" 1378 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 1379 | 1380 | json5@^2.2.3: 1381 | version "2.2.3" 1382 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" 1383 | integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== 1384 | 1385 | jsonfile@^6.0.1: 1386 | version "6.1.0" 1387 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" 1388 | integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== 1389 | dependencies: 1390 | universalify "^2.0.0" 1391 | optionalDependencies: 1392 | graceful-fs "^4.1.6" 1393 | 1394 | locate-path@^5.0.0: 1395 | version "5.0.0" 1396 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" 1397 | integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== 1398 | dependencies: 1399 | p-locate "^4.1.0" 1400 | 1401 | lodash.isequal@^4.5.0: 1402 | version "4.5.0" 1403 | resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" 1404 | integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== 1405 | 1406 | lodash.throttle@^4.1.1: 1407 | version "4.1.1" 1408 | resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" 1409 | integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ== 1410 | 1411 | lodash.uniq@^4.5.0: 1412 | version "4.5.0" 1413 | resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" 1414 | integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== 1415 | 1416 | loose-envify@^1.0.0, loose-envify@^1.1.0: 1417 | version "1.4.0" 1418 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 1419 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 1420 | dependencies: 1421 | js-tokens "^3.0.0 || ^4.0.0" 1422 | 1423 | lru-cache@^5.1.1: 1424 | version "5.1.1" 1425 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" 1426 | integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== 1427 | dependencies: 1428 | yallist "^3.0.2" 1429 | 1430 | lz-string@^1.4.4: 1431 | version "1.5.0" 1432 | resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" 1433 | integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== 1434 | 1435 | make-dir@^3.0.2: 1436 | version "3.1.0" 1437 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" 1438 | integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== 1439 | dependencies: 1440 | semver "^6.0.0" 1441 | 1442 | minimatch@^3.1.1: 1443 | version "3.1.2" 1444 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 1445 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 1446 | dependencies: 1447 | brace-expansion "^1.1.7" 1448 | 1449 | ms@2.1.2: 1450 | version "2.1.2" 1451 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1452 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1453 | 1454 | nanoid@4.0.2: 1455 | version "4.0.2" 1456 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-4.0.2.tgz#140b3c5003959adbebf521c170f282c5e7f9fb9e" 1457 | integrity sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw== 1458 | 1459 | nanoid@^3.3.7: 1460 | version "3.3.7" 1461 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" 1462 | integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== 1463 | 1464 | node-releases@^2.0.14: 1465 | version "2.0.14" 1466 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" 1467 | integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== 1468 | 1469 | object-assign@^4.0.1: 1470 | version "4.1.1" 1471 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1472 | integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== 1473 | 1474 | once@^1.3.0: 1475 | version "1.4.0" 1476 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1477 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== 1478 | dependencies: 1479 | wrappy "1" 1480 | 1481 | p-limit@^2.2.0: 1482 | version "2.3.0" 1483 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" 1484 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 1485 | dependencies: 1486 | p-try "^2.0.0" 1487 | 1488 | p-locate@^4.1.0: 1489 | version "4.1.0" 1490 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" 1491 | integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== 1492 | dependencies: 1493 | p-limit "^2.2.0" 1494 | 1495 | p-try@^2.0.0: 1496 | version "2.2.0" 1497 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 1498 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 1499 | 1500 | p5@^1.9.3: 1501 | version "1.9.3" 1502 | resolved "https://registry.yarnpkg.com/p5/-/p5-1.9.3.tgz#bc0da17a392113c066f0eac749c38f14517ce07b" 1503 | integrity sha512-RnLMqejKJ9ZmBlUpCnVLYF1UnV/NnC13MfOSZdvJXTRH1eQkBQkUVCw5rkyRWE6chI4t5KvIJsZZnFzmGJEgag== 1504 | 1505 | path-exists@^4.0.0: 1506 | version "4.0.0" 1507 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" 1508 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 1509 | 1510 | path-is-absolute@^1.0.0: 1511 | version "1.0.1" 1512 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1513 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== 1514 | 1515 | picocolors@^1.0.0: 1516 | version "1.0.0" 1517 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 1518 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 1519 | 1520 | pify@^2.0.0: 1521 | version "2.3.0" 1522 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 1523 | integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== 1524 | 1525 | pinkie-promise@^2.0.0: 1526 | version "2.0.1" 1527 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 1528 | integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== 1529 | dependencies: 1530 | pinkie "^2.0.0" 1531 | 1532 | pinkie@^2.0.0: 1533 | version "2.0.4" 1534 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 1535 | integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== 1536 | 1537 | pkg-dir@^4.1.0: 1538 | version "4.2.0" 1539 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" 1540 | integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== 1541 | dependencies: 1542 | find-up "^4.0.0" 1543 | 1544 | postcss@^8.4.27: 1545 | version "8.4.38" 1546 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e" 1547 | integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== 1548 | dependencies: 1549 | nanoid "^3.3.7" 1550 | picocolors "^1.0.0" 1551 | source-map-js "^1.2.0" 1552 | 1553 | react-dom@^18.2.0: 1554 | version "18.3.1" 1555 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4" 1556 | integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== 1557 | dependencies: 1558 | loose-envify "^1.1.0" 1559 | scheduler "^0.23.2" 1560 | 1561 | react-refresh@^0.14.0: 1562 | version "0.14.2" 1563 | resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.2.tgz#3833da01ce32da470f1f936b9d477da5c7028bf9" 1564 | integrity sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA== 1565 | 1566 | react-remove-scroll-bar@^2.3.3: 1567 | version "2.3.6" 1568 | resolved "https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz#3e585e9d163be84a010180b18721e851ac81a29c" 1569 | integrity sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g== 1570 | dependencies: 1571 | react-style-singleton "^2.2.1" 1572 | tslib "^2.0.0" 1573 | 1574 | react-remove-scroll@2.5.5: 1575 | version "2.5.5" 1576 | resolved "https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz#1e31a1260df08887a8a0e46d09271b52b3a37e77" 1577 | integrity sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw== 1578 | dependencies: 1579 | react-remove-scroll-bar "^2.3.3" 1580 | react-style-singleton "^2.2.1" 1581 | tslib "^2.1.0" 1582 | use-callback-ref "^1.3.0" 1583 | use-sidecar "^1.1.2" 1584 | 1585 | react-style-singleton@^2.2.1: 1586 | version "2.2.1" 1587 | resolved "https://registry.yarnpkg.com/react-style-singleton/-/react-style-singleton-2.2.1.tgz#f99e420492b2d8f34d38308ff660b60d0b1205b4" 1588 | integrity sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g== 1589 | dependencies: 1590 | get-nonce "^1.0.0" 1591 | invariant "^2.2.4" 1592 | tslib "^2.0.0" 1593 | 1594 | react@^18.2.0: 1595 | version "18.3.1" 1596 | resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891" 1597 | integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== 1598 | dependencies: 1599 | loose-envify "^1.1.0" 1600 | 1601 | regenerator-runtime@^0.14.0: 1602 | version "0.14.1" 1603 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" 1604 | integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== 1605 | 1606 | rollup@^3.27.1: 1607 | version "3.29.4" 1608 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981" 1609 | integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw== 1610 | optionalDependencies: 1611 | fsevents "~2.3.2" 1612 | 1613 | scheduler@^0.23.2: 1614 | version "0.23.2" 1615 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3" 1616 | integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== 1617 | dependencies: 1618 | loose-envify "^1.1.0" 1619 | 1620 | semver@^6.0.0, semver@^6.3.1: 1621 | version "6.3.1" 1622 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" 1623 | integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== 1624 | 1625 | source-map-js@^1.2.0: 1626 | version "1.2.0" 1627 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" 1628 | integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== 1629 | 1630 | strip-outer@^1.0.1: 1631 | version "1.0.1" 1632 | resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" 1633 | integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== 1634 | dependencies: 1635 | escape-string-regexp "^1.0.2" 1636 | 1637 | supports-color@^5.3.0: 1638 | version "5.5.0" 1639 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1640 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1641 | dependencies: 1642 | has-flag "^3.0.0" 1643 | 1644 | tldraw@^2.1.1: 1645 | version "2.1.4" 1646 | resolved "https://registry.yarnpkg.com/tldraw/-/tldraw-2.1.4.tgz#a237eca5dde62d2b2ab176942e16994cd7cf3ac7" 1647 | integrity sha512-ApmZW7HcP4w2ixJyvGkE3ZJyQ7gu8Fgc6qTiGVbu7zyOBo+0bABahOTf1dMY5xM+BLIwyWf+znlazAmtqKMb3Q== 1648 | dependencies: 1649 | "@radix-ui/react-alert-dialog" "^1.0.5" 1650 | "@radix-ui/react-context-menu" "^2.1.5" 1651 | "@radix-ui/react-dialog" "^1.0.5" 1652 | "@radix-ui/react-dropdown-menu" "^2.0.6" 1653 | "@radix-ui/react-popover" "^1.0.7" 1654 | "@radix-ui/react-select" "^1.2.0" 1655 | "@radix-ui/react-slider" "^1.1.0" 1656 | "@radix-ui/react-toast" "^1.1.1" 1657 | "@tldraw/editor" "2.1.4" 1658 | "@tldraw/store" "2.1.4" 1659 | canvas-size "^1.2.6" 1660 | classnames "^2.3.2" 1661 | hotkeys-js "^3.11.2" 1662 | lz-string "^1.4.4" 1663 | 1664 | to-fast-properties@^2.0.0: 1665 | version "2.0.0" 1666 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 1667 | integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== 1668 | 1669 | trim-repeated@^1.0.0: 1670 | version "1.0.0" 1671 | resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" 1672 | integrity sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg== 1673 | dependencies: 1674 | escape-string-regexp "^1.0.2" 1675 | 1676 | tslib@^2.0.0, tslib@^2.1.0: 1677 | version "2.6.2" 1678 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" 1679 | integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== 1680 | 1681 | typescript@^5.0.2: 1682 | version "5.4.5" 1683 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" 1684 | integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== 1685 | 1686 | undici-types@~5.26.4: 1687 | version "5.26.5" 1688 | resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" 1689 | integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== 1690 | 1691 | universalify@^2.0.0: 1692 | version "2.0.1" 1693 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" 1694 | integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== 1695 | 1696 | update-browserslist-db@^1.0.13: 1697 | version "1.0.15" 1698 | resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.15.tgz#60ed9f8cba4a728b7ecf7356f641a31e3a691d97" 1699 | integrity sha512-K9HWH62x3/EalU1U6sjSZiylm9C8tgq2mSvshZpqc7QE69RaA2qjhkW2HlNA0tFpEbtyFz7HTqbSdN4MSwUodA== 1700 | dependencies: 1701 | escalade "^3.1.2" 1702 | picocolors "^1.0.0" 1703 | 1704 | use-callback-ref@^1.3.0: 1705 | version "1.3.2" 1706 | resolved "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.3.2.tgz#6134c7f6ff76e2be0b56c809b17a650c942b1693" 1707 | integrity sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA== 1708 | dependencies: 1709 | tslib "^2.0.0" 1710 | 1711 | use-sidecar@^1.1.2: 1712 | version "1.1.2" 1713 | resolved "https://registry.yarnpkg.com/use-sidecar/-/use-sidecar-1.1.2.tgz#2f43126ba2d7d7e117aa5855e5d8f0276dfe73c2" 1714 | integrity sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw== 1715 | dependencies: 1716 | detect-node-es "^1.1.0" 1717 | tslib "^2.0.0" 1718 | 1719 | vite@^4.4.5: 1720 | version "4.5.3" 1721 | resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.3.tgz#d88a4529ea58bae97294c7e2e6f0eab39a50fb1a" 1722 | integrity sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg== 1723 | dependencies: 1724 | esbuild "^0.18.10" 1725 | postcss "^8.4.27" 1726 | rollup "^3.27.1" 1727 | optionalDependencies: 1728 | fsevents "~2.3.2" 1729 | 1730 | wrappy@1: 1731 | version "1.0.2" 1732 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1733 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== 1734 | 1735 | yallist@^3.0.2: 1736 | version "3.1.1" 1737 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" 1738 | integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== 1739 | --------------------------------------------------------------------------------