From 8c5ce75c852c53db1afd83fcf812971176e4ee2b Mon Sep 17 00:00:00 2001 From: Sarthak Agrawal Date: Sat, 10 Oct 2026 15:55:31 +0530 Subject: [PATCH] feat: replace Precise footer loaders with SaaS Maker StudioFooter (framework-free) SPA and generated public pages render from @saas-maker/ui v0.1.15 (footer.css/js vendored in public/). Removes ai-chat-footer, project-strip, newsletter-capture and feedback-launcher loaders and the floating feedback launcher. Co-Authored-By: Claude Sonnet 5.5 --- index.html | 49 - package.json | 3 +- pnpm-lock.yaml | 7474 ++++++++++------- ...ion-to-software-engineering-knowledge.html | 14 +- ...-useful-guest-mode-technical-learning.html | 14 +- ...-assistant-should-respond-to-learners.html | 14 +- ...coding-interview-into-a-learning-plan.html | 14 +- public/articles/index.html | 14 +- ...usal-understanding-in-technical-study.html | 14 +- ...ce-of-mastery-in-software-engineering.html | 14 +- ...earning-needs-an-inspectable-artifact.html | 14 +- public/changelog.html | 14 +- .../concepts/ab-testing-engineering.html | 14 +- .../agent-communication-interfaces.html | 14 +- .../concepts/agent-environment-contracts.html | 14 +- public/curriculum/concepts/agent-loops.html | 14 +- .../concepts/agent-memory-context.html | 14 +- .../concepts/agent-observability.html | 14 +- .../agent-permissions-sandboxing.html | 14 +- .../concepts/agent-run-lifecycle.html | 14 +- .../concepts/agent-scope-control.html | 14 +- .../concepts/agent-work-state-handoffs.html | 14 +- .../concepts/ai-regression-testing.html | 14 +- public/curriculum/concepts/api-design.html | 14 +- public/curriculum/concepts/api-keys.html | 14 +- public/curriculum/concepts/array-hashing.html | 14 +- public/curriculum/concepts/auth-systems.html | 14 +- .../automated-debugging-remediation.html | 14 +- public/curriculum/concepts/b-tree.html | 14 +- .../curriculum/concepts/background-jobs.html | 14 +- public/curriculum/concepts/backtracking.html | 14 +- .../concepts/bayesian-inference.html | 14 +- .../concepts/bias-variance-overfitting.html | 14 +- public/curriculum/concepts/binary-search.html | 14 +- .../curriculum/concepts/bit-manipulation.html | 14 +- public/curriculum/concepts/bm25.html | 14 +- .../concepts/booking-inventory.html | 14 +- .../concepts/browser-computer-use-agents.html | 14 +- .../concepts/brute-force-vector-db.html | 14 +- public/curriculum/concepts/buffer-pool.html | 14 +- public/curriculum/concepts/caching.html | 14 +- public/curriculum/concepts/cap-theorem.html | 14 +- .../concepts/capacity-estimation.html | 14 +- .../concepts/cdn-edge-delivery.html | 14 +- public/curriculum/concepts/chunking.html | 14 +- .../concepts/cicd-developer-environments.html | 14 +- .../concepts/classical-distributions.html | 14 +- public/curriculum/concepts/click-models.html | 14 +- .../concepts/cloud-infrastructure.html | 14 +- .../concepts/code-review-systems.html | 14 +- .../curriculum/concepts/codebase-graphs.html | 14 +- .../concepts/coding-agent-benchmarks.html | 14 +- .../concepts/coding-agent-systems.html | 14 +- .../concepts/collaboration-productivity.html | 14 +- .../curriculum/concepts/columnar-storage.html | 14 +- public/curriculum/concepts/combinatorics.html | 14 +- public/curriculum/concepts/command-chain.html | 14 +- public/curriculum/concepts/communication.html | 14 +- public/curriculum/concepts/compaction.html | 14 +- .../concepts/complexity-analysis.html | 14 +- .../compute-memory-storage-hierarchy.html | 14 +- .../concepts/concurrency-design.html | 14 +- .../concepts/conflict-resolution.html | 14 +- public/curriculum/concepts/consensus.html | 14 +- .../concepts/consistent-hashing.html | 14 +- .../concepts/containers-kubernetes.html | 14 +- .../curriculum/concepts/context-packing.html | 14 +- .../concepts/continuous-batching.html | 14 +- .../concepts/covariance-correlation.html | 14 +- .../concepts/curse-of-dimensionality.html | 14 +- .../concepts/customer-obsession.html | 14 +- .../concepts/data-representation.html | 14 +- .../concepts/decorator-structural.html | 14 +- .../concepts/dependency-blast-radius.html | 14 +- .../concepts/derivatives-and-gradients.html | 14 +- .../concepts/descriptive-statistics.html | 14 +- .../curriculum/concepts/disk-based-ann.html | 14 +- .../distributed-failure-recovery.html | 14 +- .../concepts/distributed-infra.html | 14 +- .../distributed-workflows-temporal.html | 14 +- public/curriculum/concepts/dp-1d.html | 14 +- public/curriculum/concepts/dp-2d.html | 14 +- .../concepts/durable-agent-execution.html | 14 +- .../concepts/ecommerce-payments.html | 14 +- .../concepts/eigenvalues-decomposition.html | 14 +- public/curriculum/concepts/embeddings.html | 14 +- .../concepts/estimation-confidence.html | 14 +- .../concepts/event-streaming-kafka.html | 14 +- .../evidence-backed-verification.html | 14 +- .../concepts/factory-creational.html | 14 +- .../concepts/failure-and-learning.html | 14 +- .../concepts/flashattention-kernels.html | 14 +- public/curriculum/concepts/game-design.html | 14 +- .../curriculum/concepts/gpu-utilization.html | 14 +- public/curriculum/concepts/graphs.html | 14 +- public/curriculum/concepts/greedy.html | 14 +- .../hallucination-failure-detection.html | 14 +- .../concepts/harness-evaluation.html | 14 +- public/curriculum/concepts/heap.html | 14 +- public/curriculum/concepts/hnsw.html | 14 +- .../curriculum/concepts/http-lifecycle.html | 14 +- .../concepts/human-computer-interaction.html | 14 +- .../concepts/human-review-systems.html | 14 +- public/curriculum/concepts/hybrid-search.html | 14 +- .../concepts/hypothesis-testing.html | 14 +- .../curriculum/concepts/ide-cli-tooling.html | 14 +- public/curriculum/concepts/idempotency.html | 14 +- .../concepts/image-video-generation.html | 14 +- .../independent-agent-verification.html | 14 +- .../concepts/index-updates-tombstones.html | 14 +- .../concepts/inference-cost-latency.html | 14 +- .../concepts/inference-engines.html | 14 +- .../concepts/inference-hardware.html | 14 +- .../concepts/information-entropy.html | 14 +- .../concepts/infrastructure-automation.html | 14 +- .../concepts/innovation-and-creativity.html | 14 +- .../concepts/interactive-2d-3d-systems.html | 14 +- public/curriculum/concepts/intervals.html | 14 +- .../curriculum/concepts/inverted-index.html | 14 +- .../curriculum/concepts/isolation-levels.html | 14 +- public/curriculum/concepts/ivf.html | 14 +- .../curriculum/concepts/join-algorithms.html | 14 +- .../concepts/kv-cache-paged-attention.html | 14 +- public/curriculum/concepts/landing-pages.html | 14 +- .../concepts/leadership-and-influence.html | 14 +- .../curriculum/concepts/learning-to-rank.html | 14 +- public/curriculum/concepts/linked-list.html | 14 +- public/curriculum/concepts/llm-evals.html | 14 +- .../curriculum/concepts/load-balancing.html | 14 +- .../concepts/local-on-device-inference.html | 14 +- .../concepts/location-transport.html | 14 +- .../long-running-scheduled-agents.html | 14 +- public/curriculum/concepts/lsm-tree.html | 14 +- public/curriculum/concepts/math-geometry.html | 14 +- .../matrices-and-transformations.html | 14 +- .../concepts/matrix-rank-basis.html | 14 +- .../concepts/maximum-likelihood.html | 14 +- .../curriculum/concepts/mcp-integrations.html | 14 +- .../curriculum/concepts/message-queues.html | 14 +- .../concepts/messaging-realtime.html | 14 +- .../concepts/metadata-filtering.html | 14 +- .../concepts/minimum-spanning-tree.html | 14 +- public/curriculum/concepts/ml-adamw.html | 14 +- public/curriculum/concepts/ml-backprop.html | 14 +- .../concepts/ml-browser-runtime.html | 14 +- .../curriculum/concepts/ml-checkpointing.html | 14 +- .../concepts/ml-data-engineering.html | 14 +- public/curriculum/concepts/ml-embeddings.html | 14 +- public/curriculum/concepts/ml-evaluation.html | 14 +- .../concepts/ml-gradient-descent.html | 14 +- .../concepts/ml-language-modeling.html | 14 +- public/curriculum/concepts/ml-lora.html | 14 +- public/curriculum/concepts/ml-math.html | 14 +- public/curriculum/concepts/ml-multi-head.html | 14 +- .../curriculum/concepts/ml-pretraining.html | 14 +- .../curriculum/concepts/ml-rl-alignment.html | 14 +- public/curriculum/concepts/ml-sampling.html | 14 +- .../concepts/ml-self-attention.html | 14 +- .../curriculum/concepts/ml-softmax-xent.html | 14 +- .../curriculum/concepts/ml-tokenization.html | 14 +- public/curriculum/concepts/ml-training.html | 14 +- .../concepts/ml-transformer-block.html | 14 +- public/curriculum/concepts/ml-webgpu.html | 14 +- .../concepts/model-quantization.html | 14 +- public/curriculum/concepts/model-routing.html | 14 +- .../concepts/momentum-backtest.html | 14 +- .../concepts/monitoring-analytics.html | 14 +- .../curriculum/concepts/monotonic-stack.html | 14 +- .../concepts/multi-agent-coordination.html | 14 +- .../concepts/multimodal-models.html | 14 +- .../concepts/multivariable-optimization.html | 14 +- .../network-protocol-engineering.html | 14 +- public/curriculum/concepts/normalization.html | 14 +- .../concepts/numerical-stability.html | 14 +- .../curriculum/concepts/object-modeling.html | 14 +- .../curriculum/concepts/object-storage.html | 14 +- .../curriculum/concepts/observer-pattern.html | 14 +- .../concepts/open-weight-models.html | 14 +- .../concepts/operating-system-mechanics.html | 14 +- .../ownership-and-accountability.html | 14 +- public/curriculum/concepts/pagination.html | 14 +- .../curriculum/concepts/pca-projection.html | 14 +- .../platform-scheduling-orchestration.html | 14 +- .../concepts/portfolio-risk-metrics.html | 14 +- .../concepts/pose-motion-tracking.html | 14 +- public/curriculum/concepts/positioning.html | 14 +- public/curriculum/concepts/prefix-sums.html | 14 +- .../concepts/probability-fundamentals.html | 14 +- .../problem-solving-and-decision-making.html | 14 +- .../concepts/product-analytics.html | 14 +- .../concepts/product-quantization.html | 14 +- .../concepts/program-memory-model.html | 14 +- .../concepts/prompt-versioning.html | 14 +- .../quality-cost-latency-measurement.html | 14 +- .../query-execution-optimization.html | 14 +- .../curriculum/concepts/query-rewriting.html | 14 +- .../curriculum/concepts/queueing-theory.html | 14 +- public/curriculum/concepts/quickselect.html | 14 +- .../concepts/rag-system-design.html | 14 +- public/curriculum/concepts/rag.html | 14 +- .../curriculum/concepts/random-variables.html | 14 +- .../concepts/random-walks-markov.html | 14 +- .../curriculum/concepts/ranking-metrics.html | 14 +- .../concepts/rate-limiter-design.html | 14 +- public/curriculum/concepts/rate-limiting.html | 14 +- .../concepts/recall-latency-tradeoffs.html | 14 +- .../concepts/recursion-and-induction.html | 14 +- .../concepts/regression-basics.html | 14 +- .../concepts/reliability-fault-tolerance.html | 14 +- public/curriculum/concepts/replication.html | 14 +- .../repository-instruction-topology.html | 14 +- .../concepts/repository-intelligence.html | 14 +- .../concepts/requirements-scoping.html | 14 +- public/curriculum/concepts/reranking.html | 14 +- .../retries-and-circuit-breakers.html | 14 +- public/curriculum/concepts/retries-dlq.html | 14 +- .../concepts/returns-volatility.html | 14 +- .../curriculum/concepts/robotics-systems.html | 14 +- .../runtime-performance-engineering.html | 14 +- .../curriculum/concepts/sampling-and-clt.html | 14 +- .../sandbox-execution-environments.html | 14 +- .../curriculum/concepts/search-discovery.html | 14 +- public/curriculum/concepts/search-evals.html | 14 +- .../concepts/search-platform-design.html | 14 +- .../curriculum/concepts/secondary-index.html | 14 +- .../security-isolation-boundaries.html | 14 +- public/curriculum/concepts/seo.html | 14 +- public/curriculum/concepts/sharding.html | 14 +- public/curriculum/concepts/shortest-path.html | 14 +- .../curriculum/concepts/sliding-window.html | 14 +- public/curriculum/concepts/social-media.html | 14 +- .../software-supply-chain-health.html | 14 +- public/curriculum/concepts/sorting.html | 14 +- .../concepts/spatial-interfaces.html | 14 +- .../concepts/speculative-decoding.html | 14 +- public/curriculum/concepts/stack.html | 14 +- .../curriculum/concepts/state-management.html | 14 +- .../concepts/static-dynamic-analysis.html | 14 +- .../stationarity-autocorrelation.html | 14 +- .../concepts/storage-retrieval.html | 14 +- .../curriculum/concepts/strategy-pattern.html | 14 +- .../curriculum/concepts/streaming-media.html | 14 +- .../curriculum/concepts/string-matching.html | 14 +- .../concepts/structured-outputs.html | 14 +- .../concepts/teamwork-and-collaboration.html | 14 +- .../concepts/testing-infrastructure.html | 14 +- public/curriculum/concepts/tf-idf.html | 14 +- .../time-management-and-prioritization.html | 14 +- public/curriculum/concepts/tokenization.html | 14 +- public/curriculum/concepts/tool-calling.html | 14 +- .../concepts/tool-use-evaluations.html | 14 +- public/curriculum/concepts/top-k-pruning.html | 14 +- .../concepts/topk-vector-search.html | 14 +- .../curriculum/concepts/tracing-replay.html | 14 +- .../concepts/transaction-processing.html | 14 +- public/curriculum/concepts/trees.html | 14 +- public/curriculum/concepts/tries.html | 14 +- public/curriculum/concepts/two-pointers.html | 14 +- public/curriculum/concepts/union-find.html | 14 +- .../concepts/unique-id-generation.html | 14 +- .../concepts/ux-interface-design.html | 14 +- .../concepts/vector-quantization.html | 14 +- .../concepts/vector-similarity.html | 14 +- .../concepts/vectors-and-spaces.html | 14 +- public/curriculum/concepts/vision-models.html | 14 +- .../concepts/voice-audio-systems.html | 14 +- public/curriculum/concepts/wal.html | 14 +- .../concepts/warehouses-lakehouses.html | 14 +- .../concepts/web-mobile-engineering.html | 14 +- .../concepts/web-security-basics.html | 14 +- public/curriculum/concepts/webhooks.html | 14 +- public/curriculum/index.html | 14 +- .../roadmaps/agent-systems-12w.html | 14 +- .../roadmaps/ai-infra-12-month.html | 14 +- .../roadmaps/ai-models-training-12w.html | 14 +- .../roadmaps/ai-reliability-12w.html | 14 +- .../roadmaps/ai-search-infra-90-day.html | 14 +- .../roadmaps/application-engineering-12w.html | 14 +- .../roadmaps/behavioral-practice.html | 14 +- public/curriculum/roadmaps/db-disk-first.html | 14 +- .../roadmaps/developer-tools-12w.html | 14 +- .../roadmaps/distributed-systems-12w.html | 14 +- public/curriculum/roadmaps/dsa-practice.html | 14 +- .../roadmaps/harness-engineering.html | 14 +- public/curriculum/roadmaps/hld-practice.html | 14 +- .../roadmaps/inference-serving-12w.html | 14 +- .../infrastructure-platforms-12w.html | 14 +- public/curriculum/roadmaps/lld-practice.html | 14 +- .../roadmaps/math-rating-climb-30d.html | 14 +- .../curriculum/roadmaps/math-stack-12w.html | 14 +- .../roadmaps/multimodal-spatial-12w.html | 14 +- .../curriculum/roadmaps/prob-stats-30d.html | 14 +- public/curriculum/roadmaps/reset-9-day.html | 14 +- .../curriculum/roadmaps/retrieval-30-day.html | 14 +- public/curriculum/roadmaps/runtime.html | 14 +- public/curriculum/roadmaps/swe-landscape.html | 14 +- .../roadmaps/systems-foundations-12w.html | 14 +- .../curriculum/roadmaps/trace-a-tensor.html | 14 +- public/curriculum/styles.css | 16 +- public/curriculum/tracks/agent-systems.html | 14 +- public/curriculum/tracks/ai-reliability.html | 14 +- public/curriculum/tracks/ai-systems.html | 14 +- .../tracks/application-engineering.html | 14 +- public/curriculum/tracks/backend.html | 14 +- public/curriculum/tracks/behavioral.html | 14 +- public/curriculum/tracks/databases.html | 14 +- public/curriculum/tracks/developer-tools.html | 14 +- .../tracks/distributed-systems.html | 14 +- public/curriculum/tracks/dsa.html | 14 +- public/curriculum/tracks/go-to-market.html | 14 +- .../curriculum/tracks/inference-serving.html | 14 +- .../tracks/infrastructure-platforms.html | 14 +- public/curriculum/tracks/mathematics.html | 14 +- .../curriculum/tracks/multimodal-spatial.html | 14 +- public/curriculum/tracks/search-ir.html | 14 +- public/curriculum/tracks/system-design.html | 14 +- .../tracks/systems-foundations.html | 14 +- public/curriculum/tracks/vector-db.html | 14 +- public/footer.css | 1 + public/footer.js | 1 + public/system-design/cloud-file-storage.html | 14 +- public/system-design/index.html | 14 +- .../system-design/llm-inference-10k-rps.html | 14 +- .../notification-delivery-service.html | 14 +- .../system-design/ride-sharing-platform.html | 14 +- .../ticket-booking-platform.html | 14 +- .../video-streaming-platform.html | 14 +- public/system-design/web-crawler.html | 14 +- scripts/generate-public-curriculum.mjs | 67 +- src/App.tsx | 4 - src/components/Layout.tsx | 78 +- src/components/StudioFooter.tsx | 65 + src/components/saasmaker-feedback.test.tsx | 224 - src/components/saasmaker-feedback.tsx | 201 - src/data/public-curriculum.test.ts | 20 +- src/index.css | 14 +- 336 files changed, 5565 insertions(+), 7160 deletions(-) create mode 100644 public/footer.css create mode 100644 public/footer.js create mode 100644 src/components/StudioFooter.tsx delete mode 100644 src/components/saasmaker-feedback.test.tsx delete mode 100644 src/components/saasmaker-feedback.tsx diff --git a/index.html b/index.html index 56a81fd..40fb663 100644 --- a/index.html +++ b/index.html @@ -316,54 +316,5 @@

Explore the curriculum

- diff --git a/package.json b/package.json index a7bc52d..2af8ecf 100644 --- a/package.json +++ b/package.json @@ -60,13 +60,14 @@ "quality": "pnpm format:check && pnpm lint && pnpm typecheck && pnpm test:coverage && pnpm quality:unused && pnpm quality:complexity && pnpm quality:duplication && pnpm quality:cycles && pnpm quality:dependencies && pnpm quality:suppressions && pnpm docs:validate && pnpm build && pnpm size && pnpm quality:hygiene" }, "dependencies": { - "@saas-maker/app-health": "https://github.com/sass-maker/app-health/releases/download/node-v0.4.0/saas-maker-app-health-0.4.0.tgz", "@ai-sdk/openai-compatible": "2.0.41", "@cloudflare/realtimekit": "2.0.1", "@cloudflare/realtimekit-react": "2.0.1", "@excalidraw/excalidraw": "0.18.1", "@monaco-editor/react": "4.7.0", "@radix-ui/react-tooltip": "^1.2.16", + "@saas-maker/app-health": "https://github.com/sass-maker/app-health/releases/download/node-v0.4.0/saas-maker-app-health-0.4.0.tgz", + "@saas-maker/ui": "github:sass-maker/ui-library#v0.1.15&path:/packages/ui", "ai": "6.0.168", "clsx": "^2.1.1", "fflate": "^0.8.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 797eb9f..4ab94c2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -49,6 +49,9 @@ importers: '@saas-maker/app-health': specifier: https://github.com/sass-maker/app-health/releases/download/node-v0.4.0/saas-maker-app-health-0.4.0.tgz version: https://github.com/sass-maker/app-health/releases/download/node-v0.4.0/saas-maker-app-health-0.4.0.tgz + '@saas-maker/ui': + specifier: github:sass-maker/ui-library#v0.1.15&path:/packages/ui + version: https://codeload.github.com/sass-maker/ui-library/tar.gz/af95cd6b4aa4bb2004343655bb495255e9f51c8b#path:/packages/ui(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(tailwindcss@4.3.3) ai: specifier: 6.0.168 version: 6.0.168(zod@4.4.3) @@ -1466,6 +1469,9 @@ packages: '@protobuf-ts/runtime@2.11.1': resolution: {integrity: sha512-KuDaT1IfHkugM2pyz+FwiY80ejWrkH1pAtOBOZFuR6SXEFTsnb/jiQWQ1rCIrcKx2BtyxnxW6BWwsVSA/Ie+WQ==} + '@radix-ui/number@1.1.3': + resolution: {integrity: sha512-Road2bidD0uu/1BGDOWNdPI06g0lIRy6IF9GZcIrDK2KGItfor8IQwQa+yM2ERgHM1MmHxaxpTzk0/Jp42lNfA==} + '@radix-ui/primitive@1.0.0': resolution: {integrity: sha512-3e7rn8FDMin4CgeL7Z/49smCA3rFYY3Ha2rUQ7HRWFadS5iCRw08ZgVT1LaNTCNqgvrUiyczLflrVrF0SRQtNA==} @@ -1475,8 +1481,8 @@ packages: '@radix-ui/primitive@1.1.7': resolution: {integrity: sha512-rqWnm76nYT8HoNNqEjpgJ7Pw/DrBj5iBTrmEPo6HTX5+VJyBNOqTdv4g89G63HuR5g0AaENoAcH7Is5fF2kZ8Q==} - '@radix-ui/react-arrow@1.1.15': - resolution: {integrity: sha512-v4zggRcjadnI+ClKDuijlQEW4tw3NoaeHc/PwpKnLoLLKNUG4InLegkstooLcRIUWCs+8L22dGURCVuFfOKfnA==} + '@radix-ui/react-accessible-icon@1.1.15': + resolution: {integrity: sha512-WTQwcAvQf5sOcuUyi90lKPbhwcvQ+j55cjrSmeaN+L2vKU3DooOvlKw2MDeiJ5IkV5N905KW0/fGojKOBhD11A==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1488,8 +1494,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-arrow@1.1.2': - resolution: {integrity: sha512-G+KcpzXHq24iH0uGG/pF8LyzpFJYGD4RfLjCIBfGdSLXvjLHST31RUiRVrupIBMvIppMgSzQ6l66iAxl03tdlg==} + '@radix-ui/react-accordion@1.2.20': + resolution: {integrity: sha512-jDhG9FvAEnlhnjrsINbNXcUa4G+L1KqSkJSunkbKEzFRcAb52jvM0PjPxPRvhe1HNc5F5yc0yzzWeeqlH4yBIg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1501,65 +1507,60 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-collection@1.0.1': - resolution: {integrity: sha512-uuiFbs+YCKjn3X1DTSx9G7BHApu4GHbi3kgiwsnFUbOKCrwejAJv4eE4Vc8C0Oaxt9T0aV4ox0WCOdx+39Xo+g==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - - '@radix-ui/react-compose-refs@1.0.0': - resolution: {integrity: sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - - '@radix-ui/react-compose-refs@1.1.1': - resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==} + '@radix-ui/react-alert-dialog@1.1.23': + resolution: {integrity: sha512-VAYOiQRqj3GPpYJE0I9J+X8Ip05cyVlNdKOFeiGS2Ou1HHGfpl0BxOyZm6nmVDyU+W+NF3/XLzmjHmVGydhwgA==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-compose-refs@1.1.5': - resolution: {integrity: sha512-+48PbAAbq3didjJxa+OaWY2ZwgAKsNiRGyeHKszblZMQ+kcpd9pAaT11cMkGEie0vsOi3QdeTE6d5Fe3Gn61kA==} + '@radix-ui/react-arrow@1.1.15': + resolution: {integrity: sha512-v4zggRcjadnI+ClKDuijlQEW4tw3NoaeHc/PwpKnLoLLKNUG4InLegkstooLcRIUWCs+8L22dGURCVuFfOKfnA==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-context@1.0.0': - resolution: {integrity: sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - - '@radix-ui/react-context@1.1.1': - resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==} + '@radix-ui/react-arrow@1.1.2': + resolution: {integrity: sha512-G+KcpzXHq24iH0uGG/pF8LyzpFJYGD4RfLjCIBfGdSLXvjLHST31RUiRVrupIBMvIppMgSzQ6l66iAxl03tdlg==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-context@1.2.2': - resolution: {integrity: sha512-RHCUGwKHDr0hDGg4X7ma4JG4/+12qxw8rkh5QKdDldlCvtja6nUx1Ef/8HVrJze81lEsgLQlqjzjGNHantgnQA==} + '@radix-ui/react-aspect-ratio@1.1.15': + resolution: {integrity: sha512-fy+dyVR+90nelK8rqIznFlxzx7uPcGbhxH8Nfr2bHb4UfSe+e3hklOC0luK0hDwVwnRX7xTRySpsrQVeW+/oNQ==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-direction@1.0.0': - resolution: {integrity: sha512-2HV05lGUgYcA6xgLQ4BKPDmtL+QbIZYH5fCOTAOOcJ5O0QbWS3i9lKaurLzliYUDhORI2Qr3pyjhJh44lKA3rQ==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - - '@radix-ui/react-dismissable-layer@1.1.19': - resolution: {integrity: sha512-8g4pfOL9HoKKLWGiypT+dphVqjFfmcXO5GBnhsG6zI+lxAx/8feQpr+1LSN8Re3hiZ+XkLNS4O9ztK11/LzQ6w==} + '@radix-ui/react-avatar@1.2.6': + resolution: {integrity: sha512-4ULOTJ/mqy2hT9GlWa/MFHxHSvH3nJzHnZM1waNsc5Bonv7i70aNenghXmD97S6OJ81ekXONGGt4nT1r0PfEdA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1571,8 +1572,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-dismissable-layer@1.1.5': - resolution: {integrity: sha512-E4TywXY6UsXNRhFrECa5HAvE5/4BFcGyfTyK36gP+pAW1ed7UTK4vKwdr53gAJYwqbfCWC6ATvJa3J3R/9+Qrg==} + '@radix-ui/react-checkbox@1.3.11': + resolution: {integrity: sha512-Gnptr9pDDQxD3hgq2dtPbtrp/c2qH1mBwIzw3X/ivrMb2e1t0jMTi606fVEqFPaQR1ggXIVQWKj3P2WW9v7zGQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1584,17 +1585,27 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-focus-guards@1.1.1': - resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==} + '@radix-ui/react-collapsible@1.1.20': + resolution: {integrity: sha512-mcGesGplBnzN2sbvJETzpCNfSMyPnb29q1GRLU+Ib7bJrpIG2ywmRoh2V5VbA2uNvKikKUlVbAPks7JDjz4A8Q==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-focus-scope@1.1.2': - resolution: {integrity: sha512-zxwE80FCU7lcXUGWkdt6XpTTCKPitG1XKOwViTxHVKIJhZl9MvIl2dVHeZENCWD9+EdWv05wlaEkRXUykU27RA==} + '@radix-ui/react-collection@1.0.1': + resolution: {integrity: sha512-uuiFbs+YCKjn3X1DTSx9G7BHApu4GHbi3kgiwsnFUbOKCrwejAJv4eE4Vc8C0Oaxt9T0aV4ox0WCOdx+39Xo+g==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-collection@1.1.15': + resolution: {integrity: sha512-9W+B9NPF0NaaPh/1NJd3+KqsnlLqU9H7T2rvww+fp+T/evVXdNAyYcnfRQZFOjkR1ajQp3yORlqnI8soawLvNA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1606,13 +1617,13 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-id@1.0.0': - resolution: {integrity: sha512-Q6iAB/U7Tq3NTolBBQbHTgclPmGWE3OlktGGqrClPozSw4vkQ1DfQAOtzgRPecKsMdJINE05iaoDUG8tRzCBjw==} + '@radix-ui/react-compose-refs@1.0.0': + resolution: {integrity: sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 - '@radix-ui/react-id@1.1.0': - resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==} + '@radix-ui/react-compose-refs@1.1.1': + resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1620,8 +1631,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-id@1.1.4': - resolution: {integrity: sha512-TMQp2llA+RYn7JcjnrMnz7wN4pcVttPZnRZo52PLQsoLVKzNlVwUeHmfePgTgRluXFvlD3GD5g5MOVVTJCO0qA==} + '@radix-ui/react-compose-refs@1.1.5': + resolution: {integrity: sha512-+48PbAAbq3didjJxa+OaWY2ZwgAKsNiRGyeHKszblZMQ+kcpd9pAaT11cMkGEie0vsOi3QdeTE6d5Fe3Gn61kA==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1629,8 +1640,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-popover@1.1.6': - resolution: {integrity: sha512-NQouW0x4/GnkFJ/pRqsIS3rM/k97VzKnVb2jB7Gq7VEGPy5g7uNV1ykySFt7eWSp3i2uSGFwaJcvIRJBAHmmFg==} + '@radix-ui/react-context-menu@2.3.7': + resolution: {integrity: sha512-CtXP35dxaB5T3zXSd+E3uHe/QpXcpYnZmxp6OaIbfthtfW4wyb77M23BG+bwIJDtsMwEP/YssdsmNyZu7jhWew==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1642,34 +1653,31 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-popper@1.2.2': - resolution: {integrity: sha512-Rvqc3nOpwseCyj/rgjlJDYAgyfw7OC1tTkKn2ivhaMGcYt8FSBlahHOZak2i3QwkRXUXgGgzeEe2RuqeEHuHgA==} + '@radix-ui/react-context@1.0.0': + resolution: {integrity: sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-context@1.1.1': + resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==} peerDependencies: '@types/react': '*' - '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-popper@1.3.7': - resolution: {integrity: sha512-UsJrrd7w4wuKKTdvd/DNERVlwSlUcyXzjhyDwBk+3aPOsCjOY6ZSbxuw8E6lZTjjfP8Cpd0J8VVkrYUWyGYXyg==} + '@radix-ui/react-context@1.2.2': + resolution: {integrity: sha512-RHCUGwKHDr0hDGg4X7ma4JG4/+12qxw8rkh5QKdDldlCvtja6nUx1Ef/8HVrJze81lEsgLQlqjzjGNHantgnQA==} peerDependencies: '@types/react': '*' - '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-portal@1.1.17': - resolution: {integrity: sha512-vKQLcWypUnwZVvfV7UkGahH2g6ySe8M8R+zYBwPrv5byZ9QAW6cQVvNKo7GgmD+p8aYb6D9JBuvy8/WhOno2wQ==} + '@radix-ui/react-dialog@1.1.23': + resolution: {integrity: sha512-Ksw4WeROkO4rC9k/onilX/Ao2Cr1ku1unMNH+XSCcP4jSXYu7HDsg9n4ojMjVb22XpYjAQ9qfrFlVbru1vXDUA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1681,8 +1689,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-portal@1.1.4': - resolution: {integrity: sha512-sn2O9k1rPFYVyKd5LAJfo96JlSGVFpa1fS6UuBJfrZadudiw5tAmru+n1x7aMRQ84qDM71Zh1+SzK5QwU0tJfA==} + '@radix-ui/react-dialog@1.2.0': + resolution: {integrity: sha512-l5CX8HdNL+9cc4s7HkNyplumSA3FIx68sg9dttBHKr286fRBwq1MBniDVTeI/tkof92/APntMQvC1YG1Khb0Cg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1694,14 +1702,22 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-presence@1.0.0': - resolution: {integrity: sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w==} + '@radix-ui/react-direction@1.0.0': + resolution: {integrity: sha512-2HV05lGUgYcA6xgLQ4BKPDmtL+QbIZYH5fCOTAOOcJ5O0QbWS3i9lKaurLzliYUDhORI2Qr3pyjhJh44lKA3rQ==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - '@radix-ui/react-presence@1.1.10': - resolution: {integrity: sha512-3wyzCQ6+ubRA+D4uv9m95JYLXxmOHp05qjrkjeA7uKHHtjpPggQzc6DAb0URl7j67oR0K2foO4ip27TiX037Bw==} + '@radix-ui/react-direction@1.1.4': + resolution: {integrity: sha512-5pzg4FGQNpExhnhT2zlrP1wZFaYCd1K0nYWoFAdcYoYK868IEigqMX3B3f8yIoRlAhAeDWciLI6ZdCKHF9P4Vg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-dismissable-layer@1.1.19': + resolution: {integrity: sha512-8g4pfOL9HoKKLWGiypT+dphVqjFfmcXO5GBnhsG6zI+lxAx/8feQpr+1LSN8Re3hiZ+XkLNS4O9ztK11/LzQ6w==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1713,8 +1729,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-presence@1.1.2': - resolution: {integrity: sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==} + '@radix-ui/react-dismissable-layer@1.1.20': + resolution: {integrity: sha512-35WHRrycfnj2m4LvPiKMKHGLM3Y2WvUA744CkRdxjs1BGDX1c8PVMfmiSGTUwnHRbqdtIoxveYTXvcJSt7VfgQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1726,14 +1742,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-primitive@1.0.1': - resolution: {integrity: sha512-fHbmislWVkZaIdeF6GZxF0A/NH/3BjrGIYj+Ae6eTmTCr7EB0RQAAVEiqsXK6p3/JcRqVSBQoceZroj30Jj3XA==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - - '@radix-ui/react-primitive@2.0.2': - resolution: {integrity: sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==} + '@radix-ui/react-dismissable-layer@1.1.5': + resolution: {integrity: sha512-E4TywXY6UsXNRhFrECa5HAvE5/4BFcGyfTyK36gP+pAW1ed7UTK4vKwdr53gAJYwqbfCWC6ATvJa3J3R/9+Qrg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1745,8 +1755,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-primitive@2.1.10': - resolution: {integrity: sha512-MucOnzh6hR5mid6VpkbglRAMYMjKLqRnGBbjXkzjK52fuQDd1qbkx78a5P40mkcnVXJdEVxm26E9OPAiUq7nBg==} + '@radix-ui/react-dropdown-menu@2.1.24': + resolution: {integrity: sha512-geq8l2rJkxvkXsT9RMgtUE3P8pITFpTsvYpbySi1IH4fZEABD/Gp85myayFgxk0ktljGMJnCbeFkyTusvSvv7g==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1758,19 +1768,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-roving-focus@1.0.2': - resolution: {integrity: sha512-HLK+CqD/8pN6GfJm3U+cqpqhSKYAWiOJDe+A+8MfxBnOue39QEeMa43csUn2CXCHQT0/mewh1LrrG4tfkM9DMA==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - - '@radix-ui/react-slot@1.0.1': - resolution: {integrity: sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - - '@radix-ui/react-slot@1.1.2': - resolution: {integrity: sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==} + '@radix-ui/react-focus-guards@1.1.1': + resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1778,8 +1777,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-slot@1.3.3': - resolution: {integrity: sha512-qx7oqnYbxnK9kYI9m317qmFmEgo6ywqWvbTogdj7cL9p3/yx4M48p7Rnw5z3H890cL/ow/EeWJsuTykeZVXP5Q==} + '@radix-ui/react-focus-guards@1.1.6': + resolution: {integrity: sha512-RNOJjfZMTyBM6xYmV3IVGXkPjIhcBAuv48POevAXwrGJhkWZ9p1rFoIS1JFooPuT193AZmRsCPhpoVJxx6OPoQ==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1787,14 +1786,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-tabs@1.0.2': - resolution: {integrity: sha512-gOUwh+HbjCuL0UCo8kZ+kdUEG8QtpdO4sMQduJ34ZEz0r4922g9REOBM+vIsfwtGxSug4Yb1msJMJYN2Bk8TpQ==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - - '@radix-ui/react-tooltip@1.2.16': - resolution: {integrity: sha512-6EamKFRRnlpdadndbZ6LMwycfwkwPte1B42hs6QA0gYhjaOKqW4PZ4pjaW9UrlDX5eVt/OjncE7BFTPL5nmZhg==} + '@radix-ui/react-focus-scope@1.1.16': + resolution: {integrity: sha512-wmRZ2WWLvmt6KHy2rNPOdPUjwq5xOHY02+m+udwJTn0aNIox/rkskAvJTyTLGhPK6KgrUjlJUJpgmx/+wFiFIQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1806,77 +1799,65 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-use-callback-ref@1.0.0': - resolution: {integrity: sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - - '@radix-ui/react-use-callback-ref@1.1.0': - resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} + '@radix-ui/react-focus-scope@1.1.2': + resolution: {integrity: sha512-zxwE80FCU7lcXUGWkdt6XpTTCKPitG1XKOwViTxHVKIJhZl9MvIl2dVHeZENCWD9+EdWv05wlaEkRXUykU27RA==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true - - '@radix-ui/react-use-callback-ref@1.1.4': - resolution: {integrity: sha512-R6OUY2e2fA6Yn6s+VSx5KBV6Nx8LQEhu+cz7LCej18rQ1HLyg9PSC9jP/ZNx0o6FAIK9c0F1kHylzSxKsdlkrQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': + '@types/react-dom': optional: true - '@radix-ui/react-use-controllable-state@1.0.0': - resolution: {integrity: sha512-FohDoZvk3mEXh9AWAVyRTYR4Sq7/gavuofglmiXB2g1aKyboUD4YtgWxKj8O5n+Uak52gXQ4wKz5IFST4vtJHg==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - - '@radix-ui/react-use-controllable-state@1.1.0': - resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} + '@radix-ui/react-focus-scope@1.2.0': + resolution: {integrity: sha512-I5S7vsAOozx2lWSBAyuXjWIJ/A8qx4fjbv6115WoaRYQSb1yZDaeNHonUAQzXyE8oD+0whJHbQRl4HIE2gQ0Xw==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true - - '@radix-ui/react-use-controllable-state@1.2.6': - resolution: {integrity: sha512-uEQJGT97ZA/TgP/Hydw47lHu+/vQj6z/0jA+WeTbK1o9Rx45GImjpD0tc3W5ad3D6XTSR6e1yEO0FvGq6WQfVQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': + '@types/react-dom': optional: true - '@radix-ui/react-use-effect-event@0.0.5': - resolution: {integrity: sha512-7cshFL8HGS/7HEiHH+9kL9HBwp2sa9yX18Knwek6KYWmXwM7pegMgta2AXMQKI+rq3JnfSj9x8wYqFMTdG1Jgg==} + '@radix-ui/react-form@0.1.16': + resolution: {integrity: sha512-Q4TLEn2A7TAypxwmd6R9EwrlXDvkfYSDMrq9/887AXAGh+G1rH+kYJKSTv+Si9Y0JPKTwKYv6PviAJosysNimA==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-use-escape-keydown@1.1.0': - resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==} + '@radix-ui/react-hover-card@1.1.23': + resolution: {integrity: sha512-H8qONfZd3ltrU3+jHCIgITbWo6e1iTKvP9DHdrvYbX48ooRM5FjEDTn16AMwdfuOGkWdZEhpl3PLL/Wk/AnHDQ==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-use-layout-effect@1.0.0': - resolution: {integrity: sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==} + '@radix-ui/react-id@1.0.0': + resolution: {integrity: sha512-Q6iAB/U7Tq3NTolBBQbHTgclPmGWE3OlktGGqrClPozSw4vkQ1DfQAOtzgRPecKsMdJINE05iaoDUG8tRzCBjw==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 - '@radix-ui/react-use-layout-effect@1.1.0': - resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==} + '@radix-ui/react-id@1.1.0': + resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1884,8 +1865,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-layout-effect@1.1.4': - resolution: {integrity: sha512-K20DkRkUwDnxEYMBPcg3Y6voLkEy5p5QQmszZgLngKKiC7dzBR/aEuK3w1qlx2JWDUNH6FluahYdgR3BP+QbYw==} + '@radix-ui/react-id@1.1.4': + resolution: {integrity: sha512-TMQp2llA+RYn7JcjnrMnz7wN4pcVttPZnRZo52PLQsoLVKzNlVwUeHmfePgTgRluXFvlD3GD5g5MOVVTJCO0qA==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1893,44 +1874,60 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-rect@1.1.0': - resolution: {integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==} + '@radix-ui/react-label@2.1.15': + resolution: {integrity: sha512-o/rdYEwZTTo5tjknnPeyQFU45kUC4i/XyeDPP+HGyi6XqpOP6Zf5Ya5vh/Yfe9Id5JiuWnnAx2XqIeD3UYZt0g==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-use-rect@1.1.4': - resolution: {integrity: sha512-cSOCh6JlkmfjLyNcLiu2nB4v+nm+dkZ+Q5KHWk/soo4U7ZLiEQFKHK9/YmtBHjfCEaU43IBKQOc4/uJmCaiCTQ==} + '@radix-ui/react-menu@2.1.24': + resolution: {integrity: sha512-uW7RVuU6Lp/ZtfeY4b3kL32zccgEWvPv1+cf17ubYzHa9cL8AHokmk36cG/XEiH/smbQvumnieXX9j/e9RqJWA==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-use-size@1.1.0': - resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==} + '@radix-ui/react-menubar@1.1.24': + resolution: {integrity: sha512-eeVs0vf7cuqXaM0qLQCPcufImiJNVBXdJDLu7ZGYl2732UH23Qat/foNGrr6vYV3/DdTsBqASoggUFgH14OcZA==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-use-size@1.1.4': - resolution: {integrity: sha512-D3anSY15EJoxrihpsXI6SMrmmonnQtR2ni7arO+Lfdg3O95b9hNXxONk8jA5C8ANdF/h5HMAxejgs8PWJ6rlhw==} + '@radix-ui/react-navigation-menu@1.2.22': + resolution: {integrity: sha512-ou7iLEJ+yrhQndkkA4U21XIdS/CS45F4iXIkTZcb6/Ne9EMsOuDudVmCwmDnfFZZ+y1FZqXRNSIgBy+YMvZVZg==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-visually-hidden@1.2.11': - resolution: {integrity: sha512-NFS86RYYZb4/exihaESBGOpMJFz8MGLAfu3mOBSGByVnVPC9JPASfYubxd/8KbkQK0sYAv8lVQDEQukDX/qXvQ==} + '@radix-ui/react-one-time-password-field@0.1.16': + resolution: {integrity: sha512-Tj9P6ntAJEw52oq/F0AGknXR4XncxEt7XU47O3xJQOiWfLzEy3d9gtgKfvjSzGxzHkfL+VzvxGu2KTFsloJqXw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1942,2196 +1939,3262 @@ packages: '@types/react-dom': optional: true - '@radix-ui/rect@1.1.0': - resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==} + '@radix-ui/react-password-toggle-field@0.1.11': + resolution: {integrity: sha512-4gvFnmDXu3dgj21CqsufzIameRvlRd4SBqaWhcrlrNhRo0Y5i/49AmRJYe1fdAM3G2VNBbmin4b0D6cdQocwgw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-popover@1.1.23': + resolution: {integrity: sha512-mw58MrBlyHWFisTOYignD0vf/3gdcgAR+9of1s9G/38CbFiUwH1nCDkc0AUM9IrXFgN5Ue8n45j9WCgyM1sbiQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-popover@1.1.6': + resolution: {integrity: sha512-NQouW0x4/GnkFJ/pRqsIS3rM/k97VzKnVb2jB7Gq7VEGPy5g7uNV1ykySFt7eWSp3i2uSGFwaJcvIRJBAHmmFg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-popper@1.2.2': + resolution: {integrity: sha512-Rvqc3nOpwseCyj/rgjlJDYAgyfw7OC1tTkKn2ivhaMGcYt8FSBlahHOZak2i3QwkRXUXgGgzeEe2RuqeEHuHgA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-popper@1.3.7': + resolution: {integrity: sha512-UsJrrd7w4wuKKTdvd/DNERVlwSlUcyXzjhyDwBk+3aPOsCjOY6ZSbxuw8E6lZTjjfP8Cpd0J8VVkrYUWyGYXyg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-portal@1.1.17': + resolution: {integrity: sha512-vKQLcWypUnwZVvfV7UkGahH2g6ySe8M8R+zYBwPrv5byZ9QAW6cQVvNKo7GgmD+p8aYb6D9JBuvy8/WhOno2wQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-portal@1.1.18': + resolution: {integrity: sha512-ygFIJ+QXNKf72AAq8x3hd22+ws7pYpmc1S0E4kW0Je+qD4qEb3FvxeKVQRGrVDMOkQaYfsB+Qs+KDh81a1gAOw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-portal@1.1.4': + resolution: {integrity: sha512-sn2O9k1rPFYVyKd5LAJfo96JlSGVFpa1fS6UuBJfrZadudiw5tAmru+n1x7aMRQ84qDM71Zh1+SzK5QwU0tJfA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-presence@1.0.0': + resolution: {integrity: sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-presence@1.1.10': + resolution: {integrity: sha512-3wyzCQ6+ubRA+D4uv9m95JYLXxmOHp05qjrkjeA7uKHHtjpPggQzc6DAb0URl7j67oR0K2foO4ip27TiX037Bw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-presence@1.1.11': + resolution: {integrity: sha512-Z7/atlkab36Z8hm+V8zYc79r0W+tiOB1o0tun1By94JyadkekLQmtEAnBSP9XKXBNQsStoStS4+gX10JpS5akA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-presence@1.1.2': + resolution: {integrity: sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-primitive@1.0.1': + resolution: {integrity: sha512-fHbmislWVkZaIdeF6GZxF0A/NH/3BjrGIYj+Ae6eTmTCr7EB0RQAAVEiqsXK6p3/JcRqVSBQoceZroj30Jj3XA==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-primitive@2.0.2': + resolution: {integrity: sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-primitive@2.1.10': + resolution: {integrity: sha512-MucOnzh6hR5mid6VpkbglRAMYMjKLqRnGBbjXkzjK52fuQDd1qbkx78a5P40mkcnVXJdEVxm26E9OPAiUq7nBg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-primitive@2.1.11': + resolution: {integrity: sha512-RzcaSw5aKl0OPhBJ1wbolKSF6nVvN+0o/QLeIVq+09npiPdnCkPggy2k6gI6yetxl4ZyrlBPYFgCB8BQJZwXcQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-progress@1.1.16': + resolution: {integrity: sha512-5XnomAsoZZCY+KNTxbIghpGqPruZvKFNlvcAljVAOdDRDsH4/OZQxhtwo5wdtoDM5R6MhJBb2sPnDuRFep3lzg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-radio-group@1.4.7': + resolution: {integrity: sha512-cgYFEkntCxppHZgtSZ+7vh0wbZQ+IC7PPMw8DSnRG27B6kDd32/Zw0OJt7dGDigCoprMuWHjg2PvUn3PYvPFoQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-roving-focus@1.0.2': + resolution: {integrity: sha512-HLK+CqD/8pN6GfJm3U+cqpqhSKYAWiOJDe+A+8MfxBnOue39QEeMa43csUn2CXCHQT0/mewh1LrrG4tfkM9DMA==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-roving-focus@1.1.19': + resolution: {integrity: sha512-V9jI6hDjT7l3jsCQD9bLNvDLM3tH/gdbOTp7Tefp3hbbgCGQoK7tUvrWiRlcoBHIZ809ElXwNQwVo0B98LuTXQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-scroll-area@1.2.18': + resolution: {integrity: sha512-Zn5Cd171wxsO3Dfg8HaW6RifTb9CYTKQJHs/G4+LN1GfmJpaQMZQyQxMprVPHpaz7QY4l9BxK2JwQuzHsXC8nA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-select@2.3.7': + resolution: {integrity: sha512-WFGImkmbzcfxeIwq/+4HvRN0pizBwbwQUED4I13ezQsDdfl38ZntN6TmR8XaSzPBqoCToe8rF75j6NPNDSzhbg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-separator@1.1.15': + resolution: {integrity: sha512-jOLO4lssEzWpoDu7G+Ze4VjwMRUBt291pnZD0gmalREZipnTX3wadQo7Fy48GCTfe14/YRN6rw/rOJqrE85Wxw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-slider@1.4.7': + resolution: {integrity: sha512-mTSLf1GC/C0moWjTbvCM6Qn/gBjvlFt1azuWF2v7MN5C3Zq2U2J2lN3ZEYkpujuOU5Ro7A28wkviSxaKnG0BYg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-slot@1.0.1': + resolution: {integrity: sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-slot@1.1.2': + resolution: {integrity: sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-slot@1.3.3': + resolution: {integrity: sha512-qx7oqnYbxnK9kYI9m317qmFmEgo6ywqWvbTogdj7cL9p3/yx4M48p7Rnw5z3H890cL/ow/EeWJsuTykeZVXP5Q==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-slot@1.4.0': + resolution: {integrity: sha512-IuMVHZ+Ah5fkctu3X3qeFrV/ZrBcuWuDTFUUPfS/L5hvoTjzhp/HdWGE14CsQombPdEidsa33HVlYZXi49PZ1Q==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-switch@1.3.7': + resolution: {integrity: sha512-48tB/4dn2UVLBCYhTu9AuR63IHl73l/qLbLgxd86noTUor4/K4LFDAcYjK+isP5313qxaFpjPVogE7+Y0/V3Kw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-tabs@1.0.2': + resolution: {integrity: sha512-gOUwh+HbjCuL0UCo8kZ+kdUEG8QtpdO4sMQduJ34ZEz0r4922g9REOBM+vIsfwtGxSug4Yb1msJMJYN2Bk8TpQ==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-tabs@1.1.21': + resolution: {integrity: sha512-UKxJlZid7FVtsk/WTxj4i4uSEgj2Au+KBbS7SQyTlzMhhn+86Cz3tISZdTa87bfEfcuvZezf2ZsxD4xuEKtkog==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-toast@1.2.23': + resolution: {integrity: sha512-ofhyAsYaocRGOs/n0XWdUOSVzEAG6BfrMVM8z0c0kLEWY38w/0WuMFPTJP/HVaZPYkMvHZoKIIhNcjbTCBILPg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-toggle-group@1.1.19': + resolution: {integrity: sha512-OtnwuSVjd1Ofi+AdnvhsjQdyuhCDwYs1w9RyB5BN/OavXOVQo42SYqQjwUnbPnaiPFBpQ9aX70dWeee+v2oBLA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-toggle@1.1.18': + resolution: {integrity: sha512-7lonPlKfSacd20GlOBx2ltuVKz9oqWYZz+oMQyOltw6t1y2nyftj2ZmwwUHYn49kqfDWcp8dNZm5NgV+5Z+mug==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-toolbar@1.1.19': + resolution: {integrity: sha512-Ph0IvtYw4VB12ZnZg+YtrGs8yJQsnizwo/zu0R4Y/nWugtJzA7Pg1eWeuDR9+LSqn+xjamss+UOSOJJJ4gx8jw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-tooltip@1.2.16': + resolution: {integrity: sha512-6EamKFRRnlpdadndbZ6LMwycfwkwPte1B42hs6QA0gYhjaOKqW4PZ4pjaW9UrlDX5eVt/OjncE7BFTPL5nmZhg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-use-callback-ref@1.0.0': + resolution: {integrity: sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-use-callback-ref@1.1.0': + resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-callback-ref@1.1.4': + resolution: {integrity: sha512-R6OUY2e2fA6Yn6s+VSx5KBV6Nx8LQEhu+cz7LCej18rQ1HLyg9PSC9jP/ZNx0o6FAIK9c0F1kHylzSxKsdlkrQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-controllable-state@1.0.0': + resolution: {integrity: sha512-FohDoZvk3mEXh9AWAVyRTYR4Sq7/gavuofglmiXB2g1aKyboUD4YtgWxKj8O5n+Uak52gXQ4wKz5IFST4vtJHg==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-use-controllable-state@1.1.0': + resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-controllable-state@1.2.6': + resolution: {integrity: sha512-uEQJGT97ZA/TgP/Hydw47lHu+/vQj6z/0jA+WeTbK1o9Rx45GImjpD0tc3W5ad3D6XTSR6e1yEO0FvGq6WQfVQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-effect-event@0.0.5': + resolution: {integrity: sha512-7cshFL8HGS/7HEiHH+9kL9HBwp2sa9yX18Knwek6KYWmXwM7pegMgta2AXMQKI+rq3JnfSj9x8wYqFMTdG1Jgg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-escape-keydown@1.1.0': + resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-escape-keydown@1.1.5': + resolution: {integrity: sha512-ge3ipobwSXTj4JyVtswQ7qZj0ZHdtbGuOno/LrgAAeSxtsJ6Vs4Gz5IkPH2bmqpjcLUFoqGhA/mueuIf63UXlA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-is-hydrated@0.1.3': + resolution: {integrity: sha512-umO/aJ+82CpOnhDZUTbILCQf7kU/g0iv+oGs/Q8jw7IkhWBzaEP4sA268PhFAJTFetbwp3ICc6ktpI4TqtxcIw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-layout-effect@1.0.0': + resolution: {integrity: sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-use-layout-effect@1.1.0': + resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-layout-effect@1.1.4': + resolution: {integrity: sha512-K20DkRkUwDnxEYMBPcg3Y6voLkEy5p5QQmszZgLngKKiC7dzBR/aEuK3w1qlx2JWDUNH6FluahYdgR3BP+QbYw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-previous@1.1.4': + resolution: {integrity: sha512-XoSLhbRbqxFtgJoi2fNHA3C6pDlY34x508vUpUGoFZfvePfHXHbE1lC4FYFMnJWgiCRroSTw6fOsXQoVS9RwZg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-rect@1.1.0': + resolution: {integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-rect@1.1.4': + resolution: {integrity: sha512-cSOCh6JlkmfjLyNcLiu2nB4v+nm+dkZ+Q5KHWk/soo4U7ZLiEQFKHK9/YmtBHjfCEaU43IBKQOc4/uJmCaiCTQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-size@1.1.0': + resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-size@1.1.4': + resolution: {integrity: sha512-D3anSY15EJoxrihpsXI6SMrmmonnQtR2ni7arO+Lfdg3O95b9hNXxONk8jA5C8ANdF/h5HMAxejgs8PWJ6rlhw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-visually-hidden@1.2.11': + resolution: {integrity: sha512-NFS86RYYZb4/exihaESBGOpMJFz8MGLAfu3mOBSGByVnVPC9JPASfYubxd/8KbkQK0sYAv8lVQDEQukDX/qXvQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/rect@1.1.0': + resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==} + + '@radix-ui/rect@1.1.3': + resolution: {integrity: sha512-JtyZR+mqgBibTo8xea3B6ZRmzZiM/YeVBtUkas6zMuXjAlfIFIW2FgqeM9eLyvEaYX66vr6DJMK+4U6LV0KhNw==} + + '@renovatebot/pep440@4.2.1': + resolution: {integrity: sha512-2FK1hF93Fuf1laSdfiEmJvSJPVIDHEUTz68D3Fi9s0IZrrpaEcj6pTFBTbYvsgC5du4ogrtf5re7yMMvrKNgkw==} + engines: {node: ^20.9.0 || ^22.11.0 || ^24, pnpm: ^10.0.0} + + '@rolldown/binding-android-arm64@1.1.5': + resolution: {integrity: sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@rolldown/binding-darwin-arm64@1.1.5': + resolution: {integrity: sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@rolldown/binding-darwin-x64@1.1.5': + resolution: {integrity: sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@rolldown/binding-freebsd-x64@1.1.5': + resolution: {integrity: sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@rolldown/binding-linux-arm-gnueabihf@1.1.5': + resolution: {integrity: sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@rolldown/binding-linux-arm64-gnu@1.1.5': + resolution: {integrity: sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-arm64-musl@1.1.5': + resolution: {integrity: sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rolldown/binding-linux-ppc64-gnu@1.1.5': + resolution: {integrity: sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-s390x-gnu@1.1.5': + resolution: {integrity: sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-x64-gnu@1.1.5': + resolution: {integrity: sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-x64-musl@1.1.5': + resolution: {integrity: sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rolldown/binding-openharmony-arm64@1.1.5': + resolution: {integrity: sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@rolldown/binding-wasm32-wasi@1.1.5': + resolution: {integrity: sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [wasm32] + + '@rolldown/binding-win32-arm64-msvc@1.1.5': + resolution: {integrity: sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@rolldown/binding-win32-x64-msvc@1.1.5': + resolution: {integrity: sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + + '@rolldown/pluginutils@1.0.1': + resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==} + + '@rollup/pluginutils@5.4.0': + resolution: {integrity: sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/rollup-android-arm-eabi@4.62.2': + resolution: {integrity: sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.62.2': + resolution: {integrity: sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.62.2': + resolution: {integrity: sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.62.2': + resolution: {integrity: sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.62.2': + resolution: {integrity: sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.62.2': + resolution: {integrity: sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.62.2': + resolution: {integrity: sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm-musleabihf@4.62.2': + resolution: {integrity: sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA==} + cpu: [arm] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-arm64-gnu@4.62.2': + resolution: {integrity: sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm64-musl@4.62.2': + resolution: {integrity: sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-loong64-gnu@4.62.2': + resolution: {integrity: sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg==} + cpu: [loong64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-loong64-musl@4.62.2': + resolution: {integrity: sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ==} + cpu: [loong64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-ppc64-gnu@4.62.2': + resolution: {integrity: sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-ppc64-musl@4.62.2': + resolution: {integrity: sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w==} + cpu: [ppc64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-riscv64-gnu@4.62.2': + resolution: {integrity: sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-riscv64-musl@4.62.2': + resolution: {integrity: sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q==} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-s390x-gnu@4.62.2': + resolution: {integrity: sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-gnu@4.62.2': + resolution: {integrity: sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-musl@4.62.2': + resolution: {integrity: sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg==} + cpu: [x64] + os: [linux] + libc: [musl] - '@radix-ui/rect@1.1.3': - resolution: {integrity: sha512-JtyZR+mqgBibTo8xea3B6ZRmzZiM/YeVBtUkas6zMuXjAlfIFIW2FgqeM9eLyvEaYX66vr6DJMK+4U6LV0KhNw==} + '@rollup/rollup-openbsd-x64@4.62.2': + resolution: {integrity: sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg==} + cpu: [x64] + os: [openbsd] - '@renovatebot/pep440@4.2.1': - resolution: {integrity: sha512-2FK1hF93Fuf1laSdfiEmJvSJPVIDHEUTz68D3Fi9s0IZrrpaEcj6pTFBTbYvsgC5du4ogrtf5re7yMMvrKNgkw==} - engines: {node: ^20.9.0 || ^22.11.0 || ^24, pnpm: ^10.0.0} + '@rollup/rollup-openharmony-arm64@4.62.2': + resolution: {integrity: sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA==} + cpu: [arm64] + os: [openharmony] - '@rolldown/binding-android-arm64@1.1.5': - resolution: {integrity: sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==} - engines: {node: ^20.19.0 || >=22.12.0} + '@rollup/rollup-win32-arm64-msvc@4.62.2': + resolution: {integrity: sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.62.2': + resolution: {integrity: sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.62.2': + resolution: {integrity: sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.62.2': + resolution: {integrity: sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA==} + cpu: [x64] + os: [win32] + + '@saas-maker/app-health@https://github.com/sass-maker/app-health/releases/download/node-v0.4.0/saas-maker-app-health-0.4.0.tgz': + resolution: {tarball: https://github.com/sass-maker/app-health/releases/download/node-v0.4.0/saas-maker-app-health-0.4.0.tgz} + version: 0.4.0 + peerDependencies: + express: '>=4.19.0 <6' + hono: '>=4.10.0 <5' + peerDependenciesMeta: + express: + optional: true + hono: + optional: true + + '@saas-maker/ui@https://codeload.github.com/sass-maker/ui-library/tar.gz/af95cd6b4aa4bb2004343655bb495255e9f51c8b#path:/packages/ui': + resolution: {path: /packages/ui, tarball: https://codeload.github.com/sass-maker/ui-library/tar.gz/af95cd6b4aa4bb2004343655bb495255e9f51c8b} + version: 0.1.15 + peerDependencies: + react: '>=19' + react-dom: '>=19' + tailwindcss: '>=4.3' + + '@sindresorhus/is@7.2.0': + resolution: {integrity: sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==} + engines: {node: '>=18'} + + '@size-limit/file@11.2.0': + resolution: {integrity: sha512-OZHE3putEkQ/fgzz3Tp/0hSmfVo3wyTpOJSRNm6AmcwX4Nm9YtTfbQQ/hZRwbBFR23S7x2Sd9EbqYzngKwbRoA==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + size-limit: 11.2.0 + + '@speed-highlight/core@1.2.17': + resolution: {integrity: sha512-Z92FwKpCtfaW1V0jTU/fh3QzYEZN8wDwrzRIBoADCJfn4mJCNcJN/XegifX7BDrQ8/h9Xh/JnbyMchL0FqXrkg==} + + '@standard-schema/spec@1.1.0': + resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} + + '@tailwindcss/node@4.3.3': + resolution: {integrity: sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==} + + '@tailwindcss/oxide-android-arm64@4.3.3': + resolution: {integrity: sha512-Y85A2gmPSkl5Ve5qR86GL4HT509cFqQh1aes9p3sSkyTPwt0Pppf3GkwGe4JPACcRYjgJIEhQgM6dBClnr0NYw==} + engines: {node: '>= 20'} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.1.5': - resolution: {integrity: sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==} - engines: {node: ^20.19.0 || >=22.12.0} + '@tailwindcss/oxide-darwin-arm64@4.3.3': + resolution: {integrity: sha512-BiaWatpBcERQFDlOjRDpIVXuFK5PJez5SA4JMg6VYZdBYU+qKfV/vqjcIs+IYmtitf1xYQZTwXvU/8y4lfZUGw==} + engines: {node: '>= 20'} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.1.5': - resolution: {integrity: sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==} - engines: {node: ^20.19.0 || >=22.12.0} + '@tailwindcss/oxide-darwin-x64@4.3.3': + resolution: {integrity: sha512-fAeUqfV5ndhxRwai8cXGzdLvul9utWOmeTkv69unv4ZXixjn61Z+p9lCWdwOwA3TYboG3BwdVuN/RDjhBRl0mw==} + engines: {node: '>= 20'} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.1.5': - resolution: {integrity: sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==} - engines: {node: ^20.19.0 || >=22.12.0} + '@tailwindcss/oxide-freebsd-x64@4.3.3': + resolution: {integrity: sha512-iyf5bV6+wnAlflVeEy7R25dupxTNECZN5QMI0qNT6eT+EgaGdZcKhGkr5SdoaWiLJ3spLqIY9VCeSGrwmtg4kw==} + engines: {node: '>= 20'} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.1.5': - resolution: {integrity: sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==} - engines: {node: ^20.19.0 || >=22.12.0} + '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.3': + resolution: {integrity: sha512-aAYUprJAJQWWbRrPvtjdroZ56Md+JM8pMiopS6xGEwDfLhqj+2ver2p4nU4Mb3CRqcMmNBjo8KkUgcxhkzVQGQ==} + engines: {node: '>= 20'} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.1.5': - resolution: {integrity: sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==} - engines: {node: ^20.19.0 || >=22.12.0} + '@tailwindcss/oxide-linux-arm64-gnu@4.3.3': + resolution: {integrity: sha512-nDxldcEENOxZRzC2uu9jrutZdAAQtb+8WWDCSnWL1zvBk1+FN+x6MtDViPB5AJMfttVCUhehGWus3XBPgatM/w==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@tailwindcss/oxide-linux-arm64-musl@4.3.3': + resolution: {integrity: sha512-Md44bD6veX/PC5iyF8cDVnw4HBIANZepRZZ7a8DQOvkfo5WUBwcp6iAuCUz23u+4SUkhJlD3eL7hNdW8ezd/kA==} + engines: {node: '>= 20'} cpu: [arm64] os: [linux] + libc: [musl] + + '@tailwindcss/oxide-linux-x64-gnu@4.3.3': + resolution: {integrity: sha512-tx7us1muwOKAKWao2v/GaafFeQboE6aj88vC6ziN2NCGcRm8gWUhwjzg+YdVB1e4boAtdtma4L43onunI6NS4w==} + engines: {node: '>= 20'} + cpu: [x64] + os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-musl@1.1.5': - resolution: {integrity: sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - libc: [musl] + '@tailwindcss/oxide-linux-x64-musl@4.3.3': + resolution: {integrity: sha512-SJxX60smvHgasZoBy11dX6YRjXJFovwWBoedhbQPOBzgFWBHGB+TVPWB9BxzR7TTxU8FQZAI2AyiNCMzFm8Img==} + engines: {node: '>= 20'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@tailwindcss/oxide-wasm32-wasi@4.3.3': + resolution: {integrity: sha512-jx1+rPhY/5Ympkktd656HBWEBLxP7dH06losBLjjf5vgCODXvi9KhtftWcMIwTFIDqBr7cRnQkdLnAG+IOlGvQ==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + bundledDependencies: + - '@napi-rs/wasm-runtime' + - '@emnapi/core' + - '@emnapi/runtime' + - '@tybys/wasm-util' + - '@emnapi/wasi-threads' + - tslib + + '@tailwindcss/oxide-win32-arm64-msvc@4.3.3': + resolution: {integrity: sha512-3rc292Ca2ceK6Ulcc/bAVnTs/3nDtoPhyEKlgPv+yQJQi/JS/AMJlqzxvlDacL1nekbrcf6bTqp/jV4qgnPxNQ==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [win32] + + '@tailwindcss/oxide-win32-x64-msvc@4.3.3': + resolution: {integrity: sha512-yJ0pwIVc/nYeGoV02WtsN8KYyLQv7kyI2wDnkezyJlGGjkd4QLwDGAwl47YpPJeuI0M0ObaXGSPjvWDPeTPggw==} + engines: {node: '>= 20'} + cpu: [x64] + os: [win32] + + '@tailwindcss/oxide@4.3.3': + resolution: {integrity: sha512-krXjAikiaFSPaK/FkAQT5UTx3VormQaiZ5hBFlJZ9UFQGB/rwg1MZIhHAG9smMQRTdyJxP6Qt5MwMtdyU5FWrA==} + engines: {node: '>= 20'} + + '@tailwindcss/vite@4.3.3': + resolution: {integrity: sha512-yYU8cogLeSh/ms2jh8Fj7jaba/EWa7Ja6GoUqYZaraEuCI5YS6ms6ObZgjjedm+jm6XZjdNRWBpPP6Z86oOxcw==} + peerDependencies: + vite: ^5.2.0 || ^6 || ^7 || ^8 + + '@tanstack/react-store@0.11.2': + resolution: {integrity: sha512-oj5O5DmiMWE+ih+SioX2ayC1kbK7d3fpLx0B75fPJr9nY3zU+hoW010yr64qXsY/9fyiLVE2bn5mGNV3owm8RQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + '@tanstack/react-table@9.2.4': + resolution: {integrity: sha512-Rzp1Q4e0/nIgEjmISYR5HeEgLTNtrG+C7NFZf/AbCxPO5hg+zC3yNGwcoECigUk8SFzzvhXbd2rFdtP2ZiGrfA==} + engines: {node: '>=20'} + peerDependencies: + react: '>=18' + + '@tanstack/store@0.11.2': + resolution: {integrity: sha512-sJ4mjol8uQsHV0gOJzzjwXfh2Fwm+Sz0+8deqiTm4jGbMdjzNSW+xZCFm0kUa870uhd8yi+DpKnZb5Kc4apa0Q==} + + '@tanstack/table-core@9.2.4': + resolution: {integrity: sha512-GwdDyGGr6UXAtubF14yAwcXvdaogqfsQgIk89Suebjxob/Rjq2xvfmXsjDF1rQmKmhHsJm9TOY7myxv3i6geJw==} + engines: {node: '>=20'} + + '@ts-morph/common@0.11.1': + resolution: {integrity: sha512-7hWZS0NRpEsNV8vWJzg7FEz6V8MaLNeJOmwmghqUXTpzk16V1LLZhdo+4QvE/+zv4cVci0OviuJFnqhEfoV3+g==} + + '@tybys/wasm-util@0.10.3': + resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==} + + '@types/chai@5.2.3': + resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} + + '@types/d3-array@3.2.2': + resolution: {integrity: sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==} + + '@types/d3-axis@3.0.6': + resolution: {integrity: sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==} + + '@types/d3-brush@3.0.6': + resolution: {integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==} + + '@types/d3-chord@3.0.6': + resolution: {integrity: sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==} + + '@types/d3-color@3.1.3': + resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==} + + '@types/d3-contour@3.0.6': + resolution: {integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==} + + '@types/d3-delaunay@6.0.4': + resolution: {integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==} + + '@types/d3-dispatch@3.0.7': + resolution: {integrity: sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==} + + '@types/d3-drag@3.0.7': + resolution: {integrity: sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==} + + '@types/d3-dsv@3.0.7': + resolution: {integrity: sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==} + + '@types/d3-ease@3.0.2': + resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==} + + '@types/d3-fetch@3.0.7': + resolution: {integrity: sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==} + + '@types/d3-force@3.0.10': + resolution: {integrity: sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==} + + '@types/d3-format@3.0.4': + resolution: {integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==} + + '@types/d3-geo@3.1.0': + resolution: {integrity: sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==} + + '@types/d3-hierarchy@3.1.7': + resolution: {integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==} + + '@types/d3-interpolate@3.0.4': + resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==} + + '@types/d3-path@3.1.1': + resolution: {integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==} + + '@types/d3-polygon@3.0.2': + resolution: {integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==} + + '@types/d3-quadtree@3.0.6': + resolution: {integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==} + + '@types/d3-random@3.0.3': + resolution: {integrity: sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==} + + '@types/d3-scale-chromatic@3.1.0': + resolution: {integrity: sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==} + + '@types/d3-scale@4.0.9': + resolution: {integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==} + + '@types/d3-selection@3.0.11': + resolution: {integrity: sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==} + + '@types/d3-shape@3.1.8': + resolution: {integrity: sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==} + + '@types/d3-time-format@4.0.3': + resolution: {integrity: sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==} + + '@types/d3-time@3.0.4': + resolution: {integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==} + + '@types/d3-timer@3.0.2': + resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==} - '@rolldown/binding-linux-ppc64-gnu@1.1.5': - resolution: {integrity: sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [ppc64] - os: [linux] - libc: [glibc] + '@types/d3-transition@3.0.9': + resolution: {integrity: sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==} - '@rolldown/binding-linux-s390x-gnu@1.1.5': - resolution: {integrity: sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [s390x] - os: [linux] - libc: [glibc] + '@types/d3-zoom@3.0.8': + resolution: {integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==} - '@rolldown/binding-linux-x64-gnu@1.1.5': - resolution: {integrity: sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - libc: [glibc] + '@types/d3@7.4.3': + resolution: {integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==} - '@rolldown/binding-linux-x64-musl@1.1.5': - resolution: {integrity: sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - libc: [musl] + '@types/debug@4.1.13': + resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} - '@rolldown/binding-openharmony-arm64@1.1.5': - resolution: {integrity: sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [openharmony] + '@types/deep-eql@4.0.2': + resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} - '@rolldown/binding-wasm32-wasi@1.1.5': - resolution: {integrity: sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [wasm32] + '@types/emscripten@1.41.5': + resolution: {integrity: sha512-cMQm7pxu6BxtHyqJ7mQZ2kXWV5SLmugybFdHCBbJ5eHzOo6VhBckEgAT3//rP5FwPHNPeEiq4SmQ5ucBwsOo4Q==} - '@rolldown/binding-win32-arm64-msvc@1.1.5': - resolution: {integrity: sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [win32] + '@types/estree-jsx@1.0.5': + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} - '@rolldown/binding-win32-x64-msvc@1.1.5': - resolution: {integrity: sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [win32] + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - '@rolldown/pluginutils@1.0.1': - resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==} + '@types/estree@1.0.9': + resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} - '@rollup/pluginutils@5.4.0': - resolution: {integrity: sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true + '@types/geojson@7946.0.16': + resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} - '@rollup/rollup-android-arm-eabi@4.62.2': - resolution: {integrity: sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg==} - cpu: [arm] - os: [android] + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - '@rollup/rollup-android-arm64@4.62.2': - resolution: {integrity: sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw==} - cpu: [arm64] - os: [android] + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@rollup/rollup-darwin-arm64@4.62.2': - resolution: {integrity: sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A==} - cpu: [arm64] - os: [darwin] + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} - '@rollup/rollup-darwin-x64@4.62.2': - resolution: {integrity: sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA==} - cpu: [x64] - os: [darwin] + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@rollup/rollup-freebsd-arm64@4.62.2': - resolution: {integrity: sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw==} - cpu: [arm64] - os: [freebsd] + '@types/node@20.11.0': + resolution: {integrity: sha512-o9bjXmDNcF7GbM4CNQpmi+TutCgap/K3w1JyKgxAjqx41zp9qlIAVFi0IhCNsJcXolEqLWhbFbEeL0PvYm4pcQ==} - '@rollup/rollup-freebsd-x64@4.62.2': - resolution: {integrity: sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg==} - cpu: [x64] - os: [freebsd] + '@types/node@25.6.0': + resolution: {integrity: sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==} - '@rollup/rollup-linux-arm-gnueabihf@4.62.2': - resolution: {integrity: sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg==} - cpu: [arm] - os: [linux] - libc: [glibc] + '@types/node@26.1.1': + resolution: {integrity: sha512-nxAkRSVkN1Y0JC1W8ky/fTfkGsMmcrRsbx+3XoZE+rMOX71kLYTV7fLXpqud1GpbpP5TuffXFqfX7fH2GgZREw==} - '@rollup/rollup-linux-arm-musleabihf@4.62.2': - resolution: {integrity: sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA==} - cpu: [arm] - os: [linux] - libc: [musl] + '@types/react-dom@19.2.3': + resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} + peerDependencies: + '@types/react': ^19.2.0 - '@rollup/rollup-linux-arm64-gnu@4.62.2': - resolution: {integrity: sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA==} - cpu: [arm64] - os: [linux] - libc: [glibc] + '@types/react@19.2.17': + resolution: {integrity: sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==} - '@rollup/rollup-linux-arm64-musl@4.62.2': - resolution: {integrity: sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ==} - cpu: [arm64] - os: [linux] - libc: [musl] + '@types/sql.js@1.4.11': + resolution: {integrity: sha512-QXIx38p2ZThJaK9vP5ZdqdlRe1FG9I8SmCZOS7FHfB/2qPAjZwkL7/vlfPg6N/oWHuuOaGg/P/IRwfP2W0kWVQ==} - '@rollup/rollup-linux-loong64-gnu@4.62.2': - resolution: {integrity: sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg==} - cpu: [loong64] - os: [linux] - libc: [glibc] + '@types/trusted-types@2.0.7': + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} - '@rollup/rollup-linux-loong64-musl@4.62.2': - resolution: {integrity: sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ==} - cpu: [loong64] - os: [linux] - libc: [musl] + '@types/unist@2.0.11': + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} - '@rollup/rollup-linux-ppc64-gnu@4.62.2': - resolution: {integrity: sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A==} - cpu: [ppc64] - os: [linux] - libc: [glibc] + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@rollup/rollup-linux-ppc64-musl@4.62.2': - resolution: {integrity: sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w==} - cpu: [ppc64] - os: [linux] - libc: [musl] + '@types/whatwg-mimetype@3.0.2': + resolution: {integrity: sha512-c2AKvDT8ToxLIOUlN51gTiHXflsfIFisS4pO7pDPoKouJCESkhZnEy623gwP9laCy5lnLDAw1vAzu2vM2YLOrA==} - '@rollup/rollup-linux-riscv64-gnu@4.62.2': - resolution: {integrity: sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg==} - cpu: [riscv64] - os: [linux] - libc: [glibc] + '@types/ws@8.18.1': + resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} - '@rollup/rollup-linux-riscv64-musl@4.62.2': - resolution: {integrity: sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q==} - cpu: [riscv64] - os: [linux] - libc: [musl] + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - '@rollup/rollup-linux-s390x-gnu@4.62.2': - resolution: {integrity: sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg==} - cpu: [s390x] - os: [linux] - libc: [glibc] + '@upsetjs/venn.js@2.0.0': + resolution: {integrity: sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw==} - '@rollup/rollup-linux-x64-gnu@4.62.2': - resolution: {integrity: sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A==} - cpu: [x64] - os: [linux] - libc: [glibc] + '@vercel/build-utils@14.0.5': + resolution: {integrity: sha512-ChbTraIvChbcFXMwDPLE8MoWpNGSRhJ2cXsE0V3iJQIVYDRgjFoT6JzWfkuc7w/3ojLLr8eMoae7M1v6OXoC5Q==} - '@rollup/rollup-linux-x64-musl@4.62.2': - resolution: {integrity: sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg==} - cpu: [x64] - os: [linux] - libc: [musl] + '@vercel/error-utils@2.2.1': + resolution: {integrity: sha512-9DhP8jP7raLML4hGsBemxX5fXuQnu5xxMV+HjGygGbzEmVK/+KyJ3QP2Cw7PdF0uXdb9N0Qa4c3tRGH34ZX6vw==} - '@rollup/rollup-openbsd-x64@4.62.2': - resolution: {integrity: sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg==} - cpu: [x64] - os: [openbsd] + '@vercel/nft@1.10.0': + resolution: {integrity: sha512-iLOW4fcsgkipfOh2Bw3wB38YDfxTlxr7+j4uFeui2OswkNT28jIitS/aMce7tS0mef1YPQ8zLIDYr3a0aahNrA==} + engines: {node: '>=20'} + hasBin: true - '@rollup/rollup-openharmony-arm64@4.62.2': - resolution: {integrity: sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA==} - cpu: [arm64] - os: [openharmony] + '@vercel/node@5.9.9': + resolution: {integrity: sha512-jaMocJLa+rP3WpwYrbx2kUpHObjXK/JZOsbtmodDMAtfXbwl7niPNcEbdYYj/fBPSX8yRUXBF3tQsasocbjD5Q==} - '@rollup/rollup-win32-arm64-msvc@4.62.2': - resolution: {integrity: sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg==} - cpu: [arm64] - os: [win32] + '@vercel/oidc@3.2.0': + resolution: {integrity: sha512-UycprH3T6n3jH0k44NHMa7pnFHGu/N05MjojYr+Mc6I7obkoLIJujSWwin1pCvdy/eOxrI/l3uDLQsmcrOb4ug==} + engines: {node: '>= 20'} - '@rollup/rollup-win32-ia32-msvc@4.62.2': - resolution: {integrity: sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q==} - cpu: [ia32] - os: [win32] + '@vercel/python-analysis@0.13.2': + resolution: {integrity: sha512-IEr5K2gvX143NBoQc1W4BWrdDWjZwxnIT6UrL5Y1dnyH7Cqc4AV00FIAddB1YpnIZBJwT4ZhE8QbgqBeO6C9Zw==} - '@rollup/rollup-win32-x64-gnu@4.62.2': - resolution: {integrity: sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg==} - cpu: [x64] - os: [win32] + '@vercel/static-config@3.4.1': + resolution: {integrity: sha512-kJKTyOg25JDRgDkHEkc+vWlvURxmSQkVKyRPO4EEGD/8HpJT+4u9Z/VGxwnCZ6zZBxYPpma283qBsHwY0gXjfw==} + + '@vitejs/plugin-react@6.0.4': + resolution: {integrity: sha512-XcCQz0TBpBgljhj0gMuuDj49i6Ytqh5q1osT/Gp5uAVJUCTWxyskk/l1jwYYiu2xcNHHipdMz40EGfM1VdamVg==} + engines: {node: ^20.19.0 || >=22.12.0} + peerDependencies: + '@rolldown/plugin-babel': ^0.1.7 || ^0.2.0 + babel-plugin-react-compiler: ^1.0.0 + vite: ^8.0.0 + peerDependenciesMeta: + '@rolldown/plugin-babel': + optional: true + babel-plugin-react-compiler: + optional: true - '@rollup/rollup-win32-x64-msvc@4.62.2': - resolution: {integrity: sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA==} - cpu: [x64] - os: [win32] + '@vitest/coverage-v8@4.1.10': + resolution: {integrity: sha512-IM49HmthevbgAO4anp1hwtoT9wYe59w0LR00gr+eagHE+ZJ5lK4sLPeO0ubgoJcwLk6dehU3R24N+FbEEKDc8g==} + peerDependencies: + '@vitest/browser': 4.1.10 + vitest: 4.1.10 + peerDependenciesMeta: + '@vitest/browser': + optional: true - '@saas-maker/app-health@https://github.com/sass-maker/app-health/releases/download/node-v0.4.0/saas-maker-app-health-0.4.0.tgz': - resolution: {tarball: https://github.com/sass-maker/app-health/releases/download/node-v0.4.0/saas-maker-app-health-0.4.0.tgz} - version: 0.4.0 + '@vitest/expect@4.1.10': + resolution: {integrity: sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA==} + + '@vitest/mocker@4.1.10': + resolution: {integrity: sha512-v0xaezt+DKEmKfaxg133ldzADrwLGd7Ze1MfQQTYfvs8OqZIwbxyxaYURivwV7sWy5fqn3rH5uOrSp07bp44Ow==} peerDependencies: - express: '>=4.19.0 <6' - hono: '>=4.10.0 <5' + msw: ^2.4.9 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: - express: + msw: optional: true - hono: + vite: optional: true - '@sindresorhus/is@7.2.0': - resolution: {integrity: sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==} - engines: {node: '>=18'} + '@vitest/pretty-format@4.1.10': + resolution: {integrity: sha512-W1HsjSH4MXQ9YfmmhLAoIYf1HRfekQCGngeIgcei6MP5QQGWUe0gkopdZQaVCFO+JDJMrAJGwa5pRpNpvy4P8Q==} - '@size-limit/file@11.2.0': - resolution: {integrity: sha512-OZHE3putEkQ/fgzz3Tp/0hSmfVo3wyTpOJSRNm6AmcwX4Nm9YtTfbQQ/hZRwbBFR23S7x2Sd9EbqYzngKwbRoA==} - engines: {node: ^18.0.0 || >=20.0.0} - peerDependencies: - size-limit: 11.2.0 + '@vitest/runner@4.1.10': + resolution: {integrity: sha512-IKI6kpIH+LmpROplyLwBBaCfMgOZOMsygVa6BARD6ahA04VRuJSa6OaVG7kRvSEMD870Vd91rSSw0eegtWyLGg==} - '@speed-highlight/core@1.2.17': - resolution: {integrity: sha512-Z92FwKpCtfaW1V0jTU/fh3QzYEZN8wDwrzRIBoADCJfn4mJCNcJN/XegifX7BDrQ8/h9Xh/JnbyMchL0FqXrkg==} + '@vitest/snapshot@4.1.10': + resolution: {integrity: sha512-xRkfOT1qpTAi/Ti4Y1LtfRc3kEuqxGw59eN2jN9pRWMtS/XDevekhcFSqvQqjUNGksfjMJu3Y+oJ+4Ypn2OaJw==} - '@standard-schema/spec@1.1.0': - resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} + '@vitest/spy@4.1.10': + resolution: {integrity: sha512-PLf/Ugvoq5wO/b4rwYCR1h2PSIdXz7wnkQFMiUpLdtM7l6pqVFcQIBEHyT1+l+cj7mNwAfZHzqXqDyjvOuwbDw==} - '@tailwindcss/node@4.3.3': - resolution: {integrity: sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==} + '@vitest/ui@4.1.10': + resolution: {integrity: sha512-EOUqfXHTXtpSHsyLHH40ts3Ue+hRhSGwzwzMlK0dTEOLSDYyOXLyr5JDGmHQWhN2DYI30gw6dVx3cdgM9FZl+Q==} + peerDependencies: + vitest: 4.1.10 - '@tailwindcss/oxide-android-arm64@4.3.3': - resolution: {integrity: sha512-Y85A2gmPSkl5Ve5qR86GL4HT509cFqQh1aes9p3sSkyTPwt0Pppf3GkwGe4JPACcRYjgJIEhQgM6dBClnr0NYw==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [android] + '@vitest/utils@4.1.10': + resolution: {integrity: sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA==} - '@tailwindcss/oxide-darwin-arm64@4.3.3': - resolution: {integrity: sha512-BiaWatpBcERQFDlOjRDpIVXuFK5PJez5SA4JMg6VYZdBYU+qKfV/vqjcIs+IYmtitf1xYQZTwXvU/8y4lfZUGw==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [darwin] + abbrev@3.0.1: + resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==} + engines: {node: ^18.17.0 || >=20.5.0} - '@tailwindcss/oxide-darwin-x64@4.3.3': - resolution: {integrity: sha512-fAeUqfV5ndhxRwai8cXGzdLvul9utWOmeTkv69unv4ZXixjn61Z+p9lCWdwOwA3TYboG3BwdVuN/RDjhBRl0mw==} - engines: {node: '>= 20'} - cpu: [x64] - os: [darwin] + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 - '@tailwindcss/oxide-freebsd-x64@4.3.3': - resolution: {integrity: sha512-iyf5bV6+wnAlflVeEy7R25dupxTNECZN5QMI0qNT6eT+EgaGdZcKhGkr5SdoaWiLJ3spLqIY9VCeSGrwmtg4kw==} - engines: {node: '>= 20'} - cpu: [x64] - os: [freebsd] + acorn@8.16.0: + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} + engines: {node: '>=0.4.0'} + hasBin: true - '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.3': - resolution: {integrity: sha512-aAYUprJAJQWWbRrPvtjdroZ56Md+JM8pMiopS6xGEwDfLhqj+2ver2p4nU4Mb3CRqcMmNBjo8KkUgcxhkzVQGQ==} - engines: {node: '>= 20'} - cpu: [arm] - os: [linux] + acorn@8.17.0: + resolution: {integrity: sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==} + engines: {node: '>=0.4.0'} + hasBin: true - '@tailwindcss/oxide-linux-arm64-gnu@4.3.3': - resolution: {integrity: sha512-nDxldcEENOxZRzC2uu9jrutZdAAQtb+8WWDCSnWL1zvBk1+FN+x6MtDViPB5AJMfttVCUhehGWus3XBPgatM/w==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [linux] - libc: [glibc] + agent-base@7.1.4: + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} + engines: {node: '>= 14'} - '@tailwindcss/oxide-linux-arm64-musl@4.3.3': - resolution: {integrity: sha512-Md44bD6veX/PC5iyF8cDVnw4HBIANZepRZZ7a8DQOvkfo5WUBwcp6iAuCUz23u+4SUkhJlD3eL7hNdW8ezd/kA==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [linux] - libc: [musl] + ai@6.0.168: + resolution: {integrity: sha512-2HqCJuO+1V2aV7vfYs5LFEUfxbkGX+5oa54q/gCCTL7KLTdbxcCu5D7TdLA5kwsrs3Szgjah9q6D9tpjHM3hUQ==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 - '@tailwindcss/oxide-linux-x64-gnu@4.3.3': - resolution: {integrity: sha512-tx7us1muwOKAKWao2v/GaafFeQboE6aj88vC6ziN2NCGcRm8gWUhwjzg+YdVB1e4boAtdtma4L43onunI6NS4w==} - engines: {node: '>= 20'} - cpu: [x64] - os: [linux] - libc: [glibc] + ajv@8.6.3: + resolution: {integrity: sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==} - '@tailwindcss/oxide-linux-x64-musl@4.3.3': - resolution: {integrity: sha512-SJxX60smvHgasZoBy11dX6YRjXJFovwWBoedhbQPOBzgFWBHGB+TVPWB9BxzR7TTxU8FQZAI2AyiNCMzFm8Img==} - engines: {node: '>= 20'} - cpu: [x64] - os: [linux] - libc: [musl] + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - '@tailwindcss/oxide-wasm32-wasi@4.3.3': - resolution: {integrity: sha512-jx1+rPhY/5Ympkktd656HBWEBLxP7dH06losBLjjf5vgCODXvi9KhtftWcMIwTFIDqBr7cRnQkdLnAG+IOlGvQ==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - bundledDependencies: - - '@napi-rs/wasm-runtime' - - '@emnapi/core' - - '@emnapi/runtime' - - '@tybys/wasm-util' - - '@emnapi/wasi-threads' - - tslib + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} - '@tailwindcss/oxide-win32-arm64-msvc@4.3.3': - resolution: {integrity: sha512-3rc292Ca2ceK6Ulcc/bAVnTs/3nDtoPhyEKlgPv+yQJQi/JS/AMJlqzxvlDacL1nekbrcf6bTqp/jV4qgnPxNQ==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [win32] + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - '@tailwindcss/oxide-win32-x64-msvc@4.3.3': - resolution: {integrity: sha512-yJ0pwIVc/nYeGoV02WtsN8KYyLQv7kyI2wDnkezyJlGGjkd4QLwDGAwl47YpPJeuI0M0ObaXGSPjvWDPeTPggw==} - engines: {node: '>= 20'} - cpu: [x64] - os: [win32] + aria-hidden@1.2.6: + resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} + engines: {node: '>=10'} - '@tailwindcss/oxide@4.3.3': - resolution: {integrity: sha512-krXjAikiaFSPaK/FkAQT5UTx3VormQaiZ5hBFlJZ9UFQGB/rwg1MZIhHAG9smMQRTdyJxP6Qt5MwMtdyU5FWrA==} - engines: {node: '>= 20'} + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} - '@tailwindcss/vite@4.3.3': - resolution: {integrity: sha512-yYU8cogLeSh/ms2jh8Fj7jaba/EWa7Ja6GoUqYZaraEuCI5YS6ms6ObZgjjedm+jm6XZjdNRWBpPP6Z86oOxcw==} - peerDependencies: - vite: ^5.2.0 || ^6 || ^7 || ^8 + ast-v8-to-istanbul@1.0.5: + resolution: {integrity: sha512-UPAgKJFSEGMWSDr3LX4tqnAb4f7KGT8O40Tyx8wbYmmZ/yn58lNCm8h3svs3eXgiGd5AXxz8NDOvXWvicq+rJA==} - '@ts-morph/common@0.11.1': - resolution: {integrity: sha512-7hWZS0NRpEsNV8vWJzg7FEz6V8MaLNeJOmwmghqUXTpzk16V1LLZhdo+4QvE/+zv4cVci0OviuJFnqhEfoV3+g==} + async-listen@3.0.0: + resolution: {integrity: sha512-V+SsTpDqkrWTimiotsyl33ePSjA5/KrithwupuvJ6ztsqPvGv6ge4OredFhPffVXiLN/QUWvE0XcqJaYgt6fOg==} + engines: {node: '>= 14'} - '@tybys/wasm-util@0.10.3': - resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==} + async-listen@3.0.1: + resolution: {integrity: sha512-cWMaNwUJnf37C/S5TfCkk/15MwbPRwVYALA2jtjkbHjCmAPiDXyNJy2q3p1KAZzDLHAWyarUWSujUoHR4pEgrA==} + engines: {node: '>= 14'} - '@types/chai@5.2.3': - resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} + async-sema@3.1.1: + resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} - '@types/d3-array@3.2.2': - resolution: {integrity: sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==} + babel-plugin-react-compiler@1.0.0: + resolution: {integrity: sha512-Ixm8tFfoKKIPYdCCKYTsqv+Fd4IJ0DQqMyEimo+pxUOMUR9cVPlwTrFt9Avu+3cb6Zp3mAzl+t1MrG2fxxKsxw==} - '@types/d3-axis@3.0.6': - resolution: {integrity: sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==} + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} - '@types/d3-brush@3.0.6': - resolution: {integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==} + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - '@types/d3-chord@3.0.6': - resolution: {integrity: sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==} + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} - '@types/d3-color@3.1.3': - resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==} + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - '@types/d3-contour@3.0.6': - resolution: {integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==} + bignumber.js@9.3.1: + resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} - '@types/d3-delaunay@6.0.4': - resolution: {integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==} + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} - '@types/d3-dispatch@3.0.7': - resolution: {integrity: sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==} + bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - '@types/d3-drag@3.0.7': - resolution: {integrity: sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==} + blake3-wasm@2.1.5: + resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} - '@types/d3-dsv@3.0.7': - resolution: {integrity: sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==} + bowser@2.14.1: + resolution: {integrity: sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==} - '@types/d3-ease@3.0.2': - resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==} + brace-expansion@1.1.21: + resolution: {integrity: sha512-9zeA+KLZNNzglF2TPKRQEDyx6Yby7daAkuy8MiPzpXPsYDWi/DRM8jmwUDxokQjYqBpv5DgPiwD4h4ZZSy1Ujw==} - '@types/d3-fetch@3.0.7': - resolution: {integrity: sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==} + brace-expansion@5.0.12: + resolution: {integrity: sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==} + engines: {node: 20 || >=22} - '@types/d3-force@3.0.10': - resolution: {integrity: sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==} + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} - '@types/d3-format@3.0.4': - resolution: {integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==} + browser-fs-access@0.29.1: + resolution: {integrity: sha512-LSvVX5e21LRrXqVMhqtAwj5xPgDb+fXAIH80NsnCQ9xuZPs2xWsOREi24RKgZa1XOiQRbcmVrv87+ulOKsgjxw==} + + buffer-equal-constant-time@1.0.1: + resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} + + buffer-image-size@0.6.4: + resolution: {integrity: sha512-nEh+kZOPY1w+gcCMobZ6ETUp9WfibndnosbpwB1iJk/8Gt5ZF2bhS6+B6bPYz424KtwsR6Rflc3tCz1/ghX2dQ==} + engines: {node: '>=4.0'} - '@types/d3-geo@3.1.0': - resolution: {integrity: sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==} + bytes-iec@3.1.1: + resolution: {integrity: sha512-fey6+4jDK7TFtFg/klGSvNKJctyU7n2aQdnM+CO0ruLPbqqMOM8Tio0Pc+deqUeVKX1tL5DQep1zQ7+37aTAsA==} + engines: {node: '>= 0.8'} - '@types/d3-hierarchy@3.1.7': - resolution: {integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==} + canvas-roundrect-polyfill@0.0.1: + resolution: {integrity: sha512-yWq+R3U3jE+coOeEb3a3GgE2j/0MMiDKM/QpLb6h9ihf5fGY9UXtvK9o4vNqjWXoZz7/3EaSVU3IX53TvFFUOw==} - '@types/d3-interpolate@3.0.4': - resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==} + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - '@types/d3-path@3.1.1': - resolution: {integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==} + chai@6.2.2: + resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} + engines: {node: '>=18'} - '@types/d3-polygon@3.0.2': - resolution: {integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==} + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} - '@types/d3-quadtree@3.0.6': - resolution: {integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==} + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - '@types/d3-random@3.0.3': - resolution: {integrity: sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==} + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - '@types/d3-scale-chromatic@3.1.0': - resolution: {integrity: sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==} + character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} - '@types/d3-scale@4.0.9': - resolution: {integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==} + chevrotain-allstar@0.3.1: + resolution: {integrity: sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==} + peerDependencies: + chevrotain: ^11.0.0 - '@types/d3-selection@3.0.11': - resolution: {integrity: sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==} + chevrotain-allstar@0.4.1: + resolution: {integrity: sha512-PvVJm3oGqrveUVW2Vt/eZGeiAIsJszYweUcYwcskg9e+IubNYKKD+rHHem7A6XVO22eDAL+inxNIGAzZ/VIWlA==} + peerDependencies: + chevrotain: ^12.0.0 - '@types/d3-shape@3.1.8': - resolution: {integrity: sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==} + chevrotain@11.0.3: + resolution: {integrity: sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==} - '@types/d3-time-format@4.0.3': - resolution: {integrity: sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==} + chevrotain@12.0.0: + resolution: {integrity: sha512-csJvb+6kEiQaqo1woTdSAuOWdN0WTLIydkKrBnS+V5gZz0oqBrp4kQ35519QgK6TpBThiG3V1vNSHlIkv4AglQ==} + engines: {node: '>=22.0.0'} - '@types/d3-time@3.0.4': - resolution: {integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==} + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} - '@types/d3-timer@3.0.2': - resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==} + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} - '@types/d3-transition@3.0.9': - resolution: {integrity: sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==} + chownr@3.0.0: + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + engines: {node: '>=18'} - '@types/d3-zoom@3.0.8': - resolution: {integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==} + citty@0.2.2: + resolution: {integrity: sha512-+6vJA3L98yv+IdfKGZHBNiGW5KHn22e/JwID0Strsz8h4S/csAu/OuICwxrg44k5MRiZHWIo8XXuJgQTriRP4w==} - '@types/d3@7.4.3': - resolution: {integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==} + cjs-module-lexer@1.2.3: + resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} - '@types/debug@4.1.13': - resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} + class-variance-authority@0.7.1: + resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} - '@types/deep-eql@4.0.2': - resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} + clsx@1.1.1: + resolution: {integrity: sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==} + engines: {node: '>=6'} - '@types/emscripten@1.41.5': - resolution: {integrity: sha512-cMQm7pxu6BxtHyqJ7mQZ2kXWV5SLmugybFdHCBbJ5eHzOo6VhBckEgAT3//rP5FwPHNPeEiq4SmQ5ucBwsOo4Q==} + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} - '@types/estree-jsx@1.0.5': - resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + cmdk@1.1.1: + resolution: {integrity: sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==} + peerDependencies: + react: ^18 || ^19 || ^19.0.0-rc + react-dom: ^18 || ^19 || ^19.0.0-rc - '@types/estree@1.0.8': - resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + code-block-writer@10.1.1: + resolution: {integrity: sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw==} - '@types/estree@1.0.9': - resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - '@types/geojson@7946.0.16': - resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} + commander@15.0.0: + resolution: {integrity: sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==} + engines: {node: '>=22.12.0'} - '@types/hast@3.0.4': - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} - '@types/mdast@4.0.4': - resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} - '@types/ms@2.1.0': - resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - '@types/node@20.11.0': - resolution: {integrity: sha512-o9bjXmDNcF7GbM4CNQpmi+TutCgap/K3w1JyKgxAjqx41zp9qlIAVFi0IhCNsJcXolEqLWhbFbEeL0PvYm4pcQ==} + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} - '@types/node@25.6.0': - resolution: {integrity: sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==} + consola@3.4.2: + resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} + engines: {node: ^14.18.0 || >=16.10.0} - '@types/node@26.1.1': - resolution: {integrity: sha512-nxAkRSVkN1Y0JC1W8ky/fTfkGsMmcrRsbx+3XoZE+rMOX71kLYTV7fLXpqud1GpbpP5TuffXFqfX7fH2GgZREw==} + convert-hrtime@3.0.0: + resolution: {integrity: sha512-7V+KqSvMiHp8yWDuwfww06XleMWVVB9b9tURBx+G7UTADuo5hYPuowKloz4OzOqbPezxgo+fdQ1522WzPG4OeA==} + engines: {node: '>=8'} - '@types/react-dom@19.2.3': - resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} - peerDependencies: - '@types/react': ^19.2.0 + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - '@types/react@19.2.17': - resolution: {integrity: sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==} + cookie@1.1.1: + resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} + engines: {node: '>=18'} - '@types/sql.js@1.4.11': - resolution: {integrity: sha512-QXIx38p2ZThJaK9vP5ZdqdlRe1FG9I8SmCZOS7FHfB/2qPAjZwkL7/vlfPg6N/oWHuuOaGg/P/IRwfP2W0kWVQ==} + core-js@3.49.0: + resolution: {integrity: sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==} - '@types/trusted-types@2.0.7': - resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + cose-base@1.0.3: + resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==} - '@types/unist@2.0.11': - resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + cose-base@2.2.0: + resolution: {integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==} - '@types/unist@3.0.3': - resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + crc-32@0.3.0: + resolution: {integrity: sha512-kucVIjOmMc1f0tv53BJ/5WIX+MGLcKuoBhnGqQrgKJNqLByb/sVMWfW/Aw6hw0jgcqjJ2pi9E5y32zOIpaUlsA==} + engines: {node: '>=0.8'} - '@types/whatwg-mimetype@3.0.2': - resolution: {integrity: sha512-c2AKvDT8ToxLIOUlN51gTiHXflsfIFisS4pO7pDPoKouJCESkhZnEy623gwP9laCy5lnLDAw1vAzu2vM2YLOrA==} + cross-env@7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true - '@types/ws@8.18.1': - resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} - '@ungap/structured-clone@1.3.0': - resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} - '@upsetjs/venn.js@2.0.0': - resolution: {integrity: sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw==} + cytoscape-cose-bilkent@4.1.0: + resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==} + peerDependencies: + cytoscape: ^3.2.0 - '@vercel/build-utils@14.0.5': - resolution: {integrity: sha512-ChbTraIvChbcFXMwDPLE8MoWpNGSRhJ2cXsE0V3iJQIVYDRgjFoT6JzWfkuc7w/3ojLLr8eMoae7M1v6OXoC5Q==} + cytoscape-fcose@2.2.0: + resolution: {integrity: sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==} + peerDependencies: + cytoscape: ^3.2.0 - '@vercel/error-utils@2.2.1': - resolution: {integrity: sha512-9DhP8jP7raLML4hGsBemxX5fXuQnu5xxMV+HjGygGbzEmVK/+KyJ3QP2Cw7PdF0uXdb9N0Qa4c3tRGH34ZX6vw==} + cytoscape@3.33.2: + resolution: {integrity: sha512-sj4HXd3DokGhzZAdjDejGvTPLqlt84vNFN8m7bGsOzDY5DyVcxIb2ejIXat2Iy7HxWhdT/N1oKyheJ5YdpsGuw==} + engines: {node: '>=0.10'} - '@vercel/nft@1.10.0': - resolution: {integrity: sha512-iLOW4fcsgkipfOh2Bw3wB38YDfxTlxr7+j4uFeui2OswkNT28jIitS/aMce7tS0mef1YPQ8zLIDYr3a0aahNrA==} - engines: {node: '>=20'} - hasBin: true + d3-array@2.12.1: + resolution: {integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==} - '@vercel/node@5.9.9': - resolution: {integrity: sha512-jaMocJLa+rP3WpwYrbx2kUpHObjXK/JZOsbtmodDMAtfXbwl7niPNcEbdYYj/fBPSX8yRUXBF3tQsasocbjD5Q==} + d3-array@3.2.4: + resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} + engines: {node: '>=12'} - '@vercel/oidc@3.2.0': - resolution: {integrity: sha512-UycprH3T6n3jH0k44NHMa7pnFHGu/N05MjojYr+Mc6I7obkoLIJujSWwin1pCvdy/eOxrI/l3uDLQsmcrOb4ug==} - engines: {node: '>= 20'} + d3-axis@3.0.0: + resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} + engines: {node: '>=12'} - '@vercel/python-analysis@0.13.2': - resolution: {integrity: sha512-IEr5K2gvX143NBoQc1W4BWrdDWjZwxnIT6UrL5Y1dnyH7Cqc4AV00FIAddB1YpnIZBJwT4ZhE8QbgqBeO6C9Zw==} + d3-brush@3.0.0: + resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} + engines: {node: '>=12'} - '@vercel/static-config@3.4.1': - resolution: {integrity: sha512-kJKTyOg25JDRgDkHEkc+vWlvURxmSQkVKyRPO4EEGD/8HpJT+4u9Z/VGxwnCZ6zZBxYPpma283qBsHwY0gXjfw==} + d3-chord@3.0.1: + resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} + engines: {node: '>=12'} - '@vitejs/plugin-react@6.0.4': - resolution: {integrity: sha512-XcCQz0TBpBgljhj0gMuuDj49i6Ytqh5q1osT/Gp5uAVJUCTWxyskk/l1jwYYiu2xcNHHipdMz40EGfM1VdamVg==} - engines: {node: ^20.19.0 || >=22.12.0} - peerDependencies: - '@rolldown/plugin-babel': ^0.1.7 || ^0.2.0 - babel-plugin-react-compiler: ^1.0.0 - vite: ^8.0.0 - peerDependenciesMeta: - '@rolldown/plugin-babel': - optional: true - babel-plugin-react-compiler: - optional: true + d3-color@3.1.0: + resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} + engines: {node: '>=12'} - '@vitest/coverage-v8@4.1.10': - resolution: {integrity: sha512-IM49HmthevbgAO4anp1hwtoT9wYe59w0LR00gr+eagHE+ZJ5lK4sLPeO0ubgoJcwLk6dehU3R24N+FbEEKDc8g==} - peerDependencies: - '@vitest/browser': 4.1.10 - vitest: 4.1.10 - peerDependenciesMeta: - '@vitest/browser': - optional: true + d3-contour@4.0.2: + resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==} + engines: {node: '>=12'} - '@vitest/expect@4.1.10': - resolution: {integrity: sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA==} + d3-delaunay@6.0.4: + resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==} + engines: {node: '>=12'} - '@vitest/mocker@4.1.10': - resolution: {integrity: sha512-v0xaezt+DKEmKfaxg133ldzADrwLGd7Ze1MfQQTYfvs8OqZIwbxyxaYURivwV7sWy5fqn3rH5uOrSp07bp44Ow==} - peerDependencies: - msw: ^2.4.9 - vite: ^6.0.0 || ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - msw: - optional: true - vite: - optional: true + d3-dispatch@3.0.1: + resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} + engines: {node: '>=12'} - '@vitest/pretty-format@4.1.10': - resolution: {integrity: sha512-W1HsjSH4MXQ9YfmmhLAoIYf1HRfekQCGngeIgcei6MP5QQGWUe0gkopdZQaVCFO+JDJMrAJGwa5pRpNpvy4P8Q==} + d3-drag@3.0.0: + resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} + engines: {node: '>=12'} - '@vitest/runner@4.1.10': - resolution: {integrity: sha512-IKI6kpIH+LmpROplyLwBBaCfMgOZOMsygVa6BARD6ahA04VRuJSa6OaVG7kRvSEMD870Vd91rSSw0eegtWyLGg==} + d3-dsv@3.0.1: + resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} + engines: {node: '>=12'} + hasBin: true - '@vitest/snapshot@4.1.10': - resolution: {integrity: sha512-xRkfOT1qpTAi/Ti4Y1LtfRc3kEuqxGw59eN2jN9pRWMtS/XDevekhcFSqvQqjUNGksfjMJu3Y+oJ+4Ypn2OaJw==} + d3-ease@3.0.1: + resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} + engines: {node: '>=12'} - '@vitest/spy@4.1.10': - resolution: {integrity: sha512-PLf/Ugvoq5wO/b4rwYCR1h2PSIdXz7wnkQFMiUpLdtM7l6pqVFcQIBEHyT1+l+cj7mNwAfZHzqXqDyjvOuwbDw==} + d3-fetch@3.0.1: + resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} + engines: {node: '>=12'} - '@vitest/ui@4.1.10': - resolution: {integrity: sha512-EOUqfXHTXtpSHsyLHH40ts3Ue+hRhSGwzwzMlK0dTEOLSDYyOXLyr5JDGmHQWhN2DYI30gw6dVx3cdgM9FZl+Q==} - peerDependencies: - vitest: 4.1.10 + d3-force@3.0.0: + resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} + engines: {node: '>=12'} - '@vitest/utils@4.1.10': - resolution: {integrity: sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA==} + d3-format@3.1.2: + resolution: {integrity: sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==} + engines: {node: '>=12'} - abbrev@3.0.1: - resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==} - engines: {node: ^18.17.0 || >=20.5.0} + d3-geo@3.1.1: + resolution: {integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==} + engines: {node: '>=12'} - acorn-import-attributes@1.9.5: - resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} - peerDependencies: - acorn: ^8 + d3-hierarchy@3.1.2: + resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} + engines: {node: '>=12'} - acorn@8.16.0: - resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} - engines: {node: '>=0.4.0'} - hasBin: true + d3-interpolate@3.0.1: + resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} + engines: {node: '>=12'} - acorn@8.17.0: - resolution: {integrity: sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==} - engines: {node: '>=0.4.0'} - hasBin: true + d3-path@1.0.9: + resolution: {integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==} - agent-base@7.1.4: - resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} - engines: {node: '>= 14'} + d3-path@3.1.0: + resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} + engines: {node: '>=12'} - ai@6.0.168: - resolution: {integrity: sha512-2HqCJuO+1V2aV7vfYs5LFEUfxbkGX+5oa54q/gCCTL7KLTdbxcCu5D7TdLA5kwsrs3Szgjah9q6D9tpjHM3hUQ==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.25.76 || ^4.1.8 + d3-polygon@3.0.1: + resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} + engines: {node: '>=12'} - ajv@8.6.3: - resolution: {integrity: sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==} + d3-quadtree@3.0.1: + resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} + engines: {node: '>=12'} - any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + d3-random@3.0.1: + resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} + engines: {node: '>=12'} - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} + d3-sankey@0.12.3: + resolution: {integrity: sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==} - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + d3-scale-chromatic@3.1.0: + resolution: {integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==} + engines: {node: '>=12'} - aria-hidden@1.2.6: - resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} - engines: {node: '>=10'} + d3-scale@4.0.2: + resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} + engines: {node: '>=12'} - assertion-error@2.0.1: - resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + d3-selection@3.0.0: + resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} engines: {node: '>=12'} - ast-v8-to-istanbul@1.0.5: - resolution: {integrity: sha512-UPAgKJFSEGMWSDr3LX4tqnAb4f7KGT8O40Tyx8wbYmmZ/yn58lNCm8h3svs3eXgiGd5AXxz8NDOvXWvicq+rJA==} + d3-shape@1.3.7: + resolution: {integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==} - async-listen@3.0.0: - resolution: {integrity: sha512-V+SsTpDqkrWTimiotsyl33ePSjA5/KrithwupuvJ6ztsqPvGv6ge4OredFhPffVXiLN/QUWvE0XcqJaYgt6fOg==} - engines: {node: '>= 14'} + d3-shape@3.2.0: + resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} + engines: {node: '>=12'} - async-listen@3.0.1: - resolution: {integrity: sha512-cWMaNwUJnf37C/S5TfCkk/15MwbPRwVYALA2jtjkbHjCmAPiDXyNJy2q3p1KAZzDLHAWyarUWSujUoHR4pEgrA==} - engines: {node: '>= 14'} + d3-time-format@4.1.0: + resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} + engines: {node: '>=12'} - async-sema@3.1.1: - resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} + d3-time@3.1.0: + resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} + engines: {node: '>=12'} - babel-plugin-react-compiler@1.0.0: - resolution: {integrity: sha512-Ixm8tFfoKKIPYdCCKYTsqv+Fd4IJ0DQqMyEimo+pxUOMUR9cVPlwTrFt9Avu+3cb6Zp3mAzl+t1MrG2fxxKsxw==} + d3-timer@3.0.1: + resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} + engines: {node: '>=12'} - bail@2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + d3-transition@3.0.1: + resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} + engines: {node: '>=12'} + peerDependencies: + d3-selection: 2 - 3 - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + d3-zoom@3.0.0: + resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} + engines: {node: '>=12'} - balanced-match@4.0.4: - resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} - engines: {node: 18 || 20 || >=22} + d3@7.9.0: + resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} + engines: {node: '>=12'} - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dagre-d3-es@7.0.14: + resolution: {integrity: sha512-P4rFMVq9ESWqmOgK+dlXvOtLwYg0i7u0HBGJER0LZDJT2VHIPAMZ/riPxqJceWMStH5+E61QxFra9kIS3AqdMg==} - bignumber.js@9.3.1: - resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} + data-uri-to-buffer@4.0.1: + resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} + engines: {node: '>= 12'} - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} + dayjs@1.11.20: + resolution: {integrity: sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==} - bindings@1.5.0: - resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true - blake3-wasm@2.1.5: - resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} + decode-named-character-reference@1.3.0: + resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==} - bowser@2.14.1: - resolution: {integrity: sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==} + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} - brace-expansion@1.1.21: - resolution: {integrity: sha512-9zeA+KLZNNzglF2TPKRQEDyx6Yby7daAkuy8MiPzpXPsYDWi/DRM8jmwUDxokQjYqBpv5DgPiwD4h4ZZSy1Ujw==} + delaunator@5.1.0: + resolution: {integrity: sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ==} - brace-expansion@5.0.12: - resolution: {integrity: sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==} - engines: {node: 20 || >=22} + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} - browser-fs-access@0.29.1: - resolution: {integrity: sha512-LSvVX5e21LRrXqVMhqtAwj5xPgDb+fXAIH80NsnCQ9xuZPs2xWsOREi24RKgZa1XOiQRbcmVrv87+ulOKsgjxw==} + detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} - buffer-equal-constant-time@1.0.1: - resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} - buffer-image-size@0.6.4: - resolution: {integrity: sha512-nEh+kZOPY1w+gcCMobZ6ETUp9WfibndnosbpwB1iJk/8Gt5ZF2bhS6+B6bPYz424KtwsR6Rflc3tCz1/ghX2dQ==} - engines: {node: '>=4.0'} + dompurify@3.2.7: + resolution: {integrity: sha512-WhL/YuveyGXJaerVlMYGWhvQswa7myDG17P7Vu65EWC05o8vfeNbvNf4d/BOvH99+ZW+LlQsc1GDKMa1vNK6dw==} - bytes-iec@3.1.1: - resolution: {integrity: sha512-fey6+4jDK7TFtFg/klGSvNKJctyU7n2aQdnM+CO0ruLPbqqMOM8Tio0Pc+deqUeVKX1tL5DQep1zQ7+37aTAsA==} - engines: {node: '>= 0.8'} + dompurify@3.4.1: + resolution: {integrity: sha512-JahakDAIg1gyOm7dlgWSDjV4n7Ip2PKR55NIT6jrMfIgLFgWo81vdr1/QGqWtFNRqXP9UV71oVePtjqS2ebnPw==} - canvas-roundrect-polyfill@0.0.1: - resolution: {integrity: sha512-yWq+R3U3jE+coOeEb3a3GgE2j/0MMiDKM/QpLb6h9ihf5fGY9UXtvK9o4vNqjWXoZz7/3EaSVU3IX53TvFFUOw==} + dompurify@3.4.12: + resolution: {integrity: sha512-zQvGet8Z2sWbQhCmfFz/T5QWH2oBmjnqK3qvOjaqaNLrLEF912WamU+ohnTp0TCep/MFVHpdJuCZEdFOdTnEFg==} - ccount@2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + ecdsa-sig-formatter@1.0.11: + resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} - chai@6.2.2: - resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} - engines: {node: '>=18'} + edge-runtime@2.5.9: + resolution: {integrity: sha512-pk+k0oK0PVXdlT4oRp4lwh+unuKB7Ng4iZ2HB+EZ7QCEQizX360Rp/F4aRpgpRgdP2ufB35N+1KppHmYjqIGSg==} + engines: {node: '>=16'} + hasBin: true - character-entities-html4@2.1.0: - resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + enhanced-resolve@5.24.3: + resolution: {integrity: sha512-PwKooW9JUzh5chmYfHM3IQl5OkK2u2Nm011MgeZrss3JmFraUx/fqrf78kk8GUMYoibx/14MdwTl/1WKkG7TpQ==} + engines: {node: '>=10.13.0'} - character-entities-legacy@3.0.0: - resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + entities@7.0.1: + resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} + engines: {node: '>=0.12'} + + error-stack-parser-es@1.0.5: + resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==} + + es-module-lexer@1.4.1: + resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==} - character-entities@2.0.2: - resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + es-module-lexer@1.5.0: + resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==} - character-reference-invalid@2.0.1: - resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + es-module-lexer@2.3.1: + resolution: {integrity: sha512-shc1dbU90Yl/xq1QrC7QRtfcwURZuVRfPhZbDoldJ1cn1gzDvBaBWlv0eFolj5+0znnPJz5TXLxsN77X/12KTA==} - chevrotain-allstar@0.3.1: - resolution: {integrity: sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==} - peerDependencies: - chevrotain: ^11.0.0 + es6-promise-pool@2.5.0: + resolution: {integrity: sha512-VHErXfzR/6r/+yyzPKeBvO0lgjfC5cbDCQWjWwMZWSb6YU39TGIl51OUmCfWCq4ylMdJSB8zkz2vIuIeIxXApA==} + engines: {node: '>=0.10.0'} - chevrotain-allstar@0.4.1: - resolution: {integrity: sha512-PvVJm3oGqrveUVW2Vt/eZGeiAIsJszYweUcYwcskg9e+IubNYKKD+rHHem7A6XVO22eDAL+inxNIGAzZ/VIWlA==} - peerDependencies: - chevrotain: ^12.0.0 + esbuild@0.27.0: + resolution: {integrity: sha512-jd0f4NHbD6cALCyGElNpGAOtWxSq46l9X/sWB0Nzd5er4Kz2YTm+Vl0qKFT9KUJvD8+fiO8AvoHhFvEatfVixA==} + engines: {node: '>=18'} + hasBin: true - chevrotain@11.0.3: - resolution: {integrity: sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==} + esbuild@0.27.3: + resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} + engines: {node: '>=18'} + hasBin: true - chevrotain@12.0.0: - resolution: {integrity: sha512-csJvb+6kEiQaqo1woTdSAuOWdN0WTLIydkKrBnS+V5gZz0oqBrp4kQ35519QgK6TpBThiG3V1vNSHlIkv4AglQ==} - engines: {node: '>=22.0.0'} + esbuild@0.28.1: + resolution: {integrity: sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==} + engines: {node: '>=18'} + hasBin: true - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} - chokidar@4.0.3: - resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} - engines: {node: '>= 14.16.0'} + estree-util-is-identifier-name@3.0.0: + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} - chownr@3.0.0: - resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} - engines: {node: '>=18'} + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - citty@0.2.2: - resolution: {integrity: sha512-+6vJA3L98yv+IdfKGZHBNiGW5KHn22e/JwID0Strsz8h4S/csAu/OuICwxrg44k5MRiZHWIo8XXuJgQTriRP4w==} + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - cjs-module-lexer@1.2.3: - resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} - clsx@1.1.1: - resolution: {integrity: sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==} - engines: {node: '>=6'} + eventsource-parser@3.0.8: + resolution: {integrity: sha512-70QWGkr4snxr0OXLRWsFLeRBIRPuQOvt4s8QYjmUlmlkyTZkRqS7EDVRZtzU3TiyDbXSzaOeF0XUKy8PchzukQ==} + engines: {node: '>=18.0.0'} - clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} - engines: {node: '>=6'} + expect-type@1.4.0: + resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==} + engines: {node: '>=12.0.0'} - code-block-writer@10.1.1: - resolution: {integrity: sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw==} + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - comma-separated-tokens@2.0.3: - resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - commander@15.0.0: - resolution: {integrity: sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==} - engines: {node: '>=22.12.0'} + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} - commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} + fast-string-truncated-width@3.0.3: + resolution: {integrity: sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==} - commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} + fast-string-width@3.0.2: + resolution: {integrity: sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==} - commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} + fast-unique-numbers@8.0.13: + resolution: {integrity: sha512-7OnTFAVPefgw2eBJ1xj2PGGR9FwYzSUso9decayHgCDX4sJkHLdcsYTytTg+tYv+wKF3U8gJuSBz2jJpQV4u/g==} + engines: {node: '>=16.1.0'} - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + fast-wrap-ansi@0.2.2: + resolution: {integrity: sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==} - confbox@0.1.8: - resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + fastq@1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} - consola@3.4.2: - resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} - engines: {node: ^14.18.0 || >=16.10.0} + fd-package-json@2.0.0: + resolution: {integrity: sha512-jKmm9YtsNXN789RS/0mSzOC1NUq9mkVd65vbSSVsKdjGvYXBuE4oWe2QOEoFeRmJg+lPuZxpmrfFclNhoRMneQ==} - convert-hrtime@3.0.0: - resolution: {integrity: sha512-7V+KqSvMiHp8yWDuwfww06XleMWVVB9b9tURBx+G7UTADuo5hYPuowKloz4OzOqbPezxgo+fdQ1522WzPG4OeA==} - engines: {node: '>=8'} + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + fetch-blob@3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} + engines: {node: ^12.20 || >= 14.13} - cookie@1.1.1: - resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} - engines: {node: '>=18'} + fflate@0.4.9: + resolution: {integrity: sha512-zdxgIEddhfsyCaWpJ2SdXEP8ZMrKJ6+5jl4OupODcywU0IhRk6gdXuVGcPICyfx2H97hVK7xmJtRLPjkxAX8Vw==} - core-js@3.49.0: - resolution: {integrity: sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==} + fflate@0.8.3: + resolution: {integrity: sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==} - cose-base@1.0.3: - resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==} + file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - cose-base@2.2.0: - resolution: {integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==} + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} - crc-32@0.3.0: - resolution: {integrity: sha512-kucVIjOmMc1f0tv53BJ/5WIX+MGLcKuoBhnGqQrgKJNqLByb/sVMWfW/Aw6hw0jgcqjJ2pi9E5y32zOIpaUlsA==} - engines: {node: '>=0.8'} + flatted@3.4.3: + resolution: {integrity: sha512-/zipXxyO6rGvuNGDiULY9MvEGSkb2gaG4GGH4ygMi0ZZzyMHdUZBmntJmx5x1G2VuPytCwGN4xsJP6cw+sK+vQ==} - cross-env@7.0.3: - resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} - engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + formatly@0.3.0: + resolution: {integrity: sha512-9XNj/o4wrRFyhSMJOvsuyMwy8aUfBaZ1VrqHVfohyXf0Sw0e+yfKG+xZaY3arGCOMdwFsqObtzVOc1gU9KiT9w==} + engines: {node: '>=18.3.0'} hasBin: true - cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} - engines: {node: '>= 8'} - - csstype@3.2.3: - resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + formdata-polyfill@4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} + engines: {node: '>=12.20.0'} - cytoscape-cose-bilkent@4.1.0: - resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==} - peerDependencies: - cytoscape: ^3.2.0 + fractional-indexing@3.2.0: + resolution: {integrity: sha512-PcOxmqwYCW7O2ovKRU8OoQQj2yqTfEB/yeTYk4gPid6dN5ODRfU1hXd9tTVZzax/0NkO7AxpHykvZnT1aYp/BQ==} + engines: {node: ^14.13.1 || >=16.0.0} - cytoscape-fcose@2.2.0: - resolution: {integrity: sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==} - peerDependencies: - cytoscape: ^3.2.0 + fs-extra@11.1.1: + resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} + engines: {node: '>=14.14'} - cytoscape@3.33.2: - resolution: {integrity: sha512-sj4HXd3DokGhzZAdjDejGvTPLqlt84vNFN8m7bGsOzDY5DyVcxIb2ejIXat2Iy7HxWhdT/N1oKyheJ5YdpsGuw==} - engines: {node: '>=0.10'} + fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] - d3-array@2.12.1: - resolution: {integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==} + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] - d3-array@3.2.4: - resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} - engines: {node: '>=12'} + fuzzy@0.1.3: + resolution: {integrity: sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w==} + engines: {node: '>= 0.6.0'} - d3-axis@3.0.0: - resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} - engines: {node: '>=12'} + fzstd@0.1.1: + resolution: {integrity: sha512-dkuVSOKKwh3eas5VkJy1AW1vFpet8TA/fGmVA5krThl8YcOVE/8ZIoEA1+U1vEn5ckxxhLirSdY837azmbaNHA==} - d3-brush@3.0.0: - resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} - engines: {node: '>=12'} + gaxios@7.3.0: + resolution: {integrity: sha512-RB5vLV+vvQeoFPCX4QMK6/hjVkbIamPp1QSUD0CiZcnj12qbpiL+pLbYtgD+oZkWl0tl9z+o2Utp+MpM3QRhBA==} + engines: {node: '>=18'} - d3-chord@3.0.1: - resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} - engines: {node: '>=12'} + gcp-metadata@8.1.2: + resolution: {integrity: sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==} + engines: {node: '>=18'} - d3-color@3.1.0: - resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} - engines: {node: '>=12'} + get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} - d3-contour@4.0.2: - resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==} - engines: {node: '>=12'} + get-tsconfig@4.14.0: + resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==} - d3-delaunay@6.0.4: - resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==} - engines: {node: '>=12'} + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} - d3-dispatch@3.0.1: - resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} - engines: {node: '>=12'} + glob@13.0.6: + resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} + engines: {node: 18 || 20 || >=22} - d3-drag@3.0.0: - resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} - engines: {node: '>=12'} + glur@1.1.2: + resolution: {integrity: sha512-l+8esYHTKOx2G/Aao4lEQ0bnHWg4fWtJbVoZZT9Knxi01pB8C80BR85nONLFwkkQoFRCmXY+BUcGZN3yZ2QsRA==} - d3-dsv@3.0.1: - resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} - engines: {node: '>=12'} - hasBin: true + google-auth-library@10.9.1: + resolution: {integrity: sha512-i1ydyHrqcIxXkWh/uBmVkzCvIuq5yiK2ATndIe5XxKholrG/MTYP9xGYka4sQhrbIAgGjL2B6NOE7rFaiF3fXw==} + engines: {node: '>=18'} - d3-ease@3.0.1: - resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} - engines: {node: '>=12'} + google-logging-utils@1.1.3: + resolution: {integrity: sha512-eAmLkjDjAFCVXg7A1unxHsLf961m6y17QFqXqAXGj/gVkKFrEICfStRfwUlGNfeCEjNRa32JEWOUTlYXPyyKvA==} + engines: {node: '>=14'} - d3-fetch@3.0.1: - resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} - engines: {node: '>=12'} + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - d3-force@3.0.0: - resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} - engines: {node: '>=12'} + hachure-fill@0.5.2: + resolution: {integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==} - d3-format@3.1.2: - resolution: {integrity: sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==} - engines: {node: '>=12'} + happy-dom@20.11.1: + resolution: {integrity: sha512-XSt8tMzbW9ymE7687xztkO1ckR7qJNQ3LywY9vlYGhGi3zXrGBHuUo2Cl1ztZaICW+1eAGdkLbj6iwVqDT33kg==} + engines: {node: '>=20.0.0'} - d3-geo@3.1.1: - resolution: {integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==} - engines: {node: '>=12'} + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} - d3-hierarchy@3.1.2: - resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} - engines: {node: '>=12'} + hast-util-is-element@3.0.0: + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} - d3-interpolate@3.0.1: - resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} - engines: {node: '>=12'} + hast-util-to-jsx-runtime@2.3.6: + resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} - d3-path@1.0.9: - resolution: {integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==} + hast-util-to-text@4.0.2: + resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} - d3-path@3.1.0: - resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} - engines: {node: '>=12'} + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} - d3-polygon@3.0.1: - resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} - engines: {node: '>=12'} + highlight.js@11.11.1: + resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==} + engines: {node: '>=12.0.0'} - d3-quadtree@3.0.1: - resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} - engines: {node: '>=12'} + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - d3-random@3.0.1: - resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} - engines: {node: '>=12'} + html-url-attributes@3.0.1: + resolution: {integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==} - d3-sankey@0.12.3: - resolution: {integrity: sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==} + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} - d3-scale-chromatic@3.1.0: - resolution: {integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==} - engines: {node: '>=12'} + husky@9.1.7: + resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} + engines: {node: '>=18'} + hasBin: true - d3-scale@4.0.2: - resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} - engines: {node: '>=12'} + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} - d3-selection@3.0.0: - resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} - engines: {node: '>=12'} + image-blob-reduce@3.0.1: + resolution: {integrity: sha512-/VmmWgIryG/wcn4TVrV7cC4mlfUC/oyiKIfSg5eVM3Ten/c1c34RJhMYKCWTnoSMHSqXLt3tsrBR4Q2HInvN+Q==} - d3-shape@1.3.7: - resolution: {integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==} + immutable@4.3.9: + resolution: {integrity: sha512-ObHy4YN7ycwZOUCLI1/6svfyAFu7vL8RhAvVu/bh/RZW9EPlOyDaQ9jDQWCtdqzaXUjgXZCW1migtHE7YI7UGQ==} - d3-shape@3.2.0: - resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} - engines: {node: '>=12'} + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - d3-time-format@4.1.0: - resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} - engines: {node: '>=12'} + inline-style-parser@0.2.7: + resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==} - d3-time@3.1.0: - resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} - engines: {node: '>=12'} + internmap@1.0.1: + resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} - d3-timer@3.0.1: - resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} + internmap@2.0.3: + resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} engines: {node: '>=12'} - d3-transition@3.0.1: - resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} - engines: {node: '>=12'} - peerDependencies: - d3-selection: 2 - 3 + is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} - d3-zoom@3.0.0: - resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} - engines: {node: '>=12'} + is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} - d3@7.9.0: - resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} - engines: {node: '>=12'} + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} - dagre-d3-es@7.0.14: - resolution: {integrity: sha512-P4rFMVq9ESWqmOgK+dlXvOtLwYg0i7u0HBGJER0LZDJT2VHIPAMZ/riPxqJceWMStH5+E61QxFra9kIS3AqdMg==} + is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} - data-uri-to-buffer@4.0.1: - resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} - engines: {node: '>= 12'} + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} - dayjs@1.11.20: - resolution: {integrity: sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==} + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} - debug@4.4.3: - resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - decode-named-character-reference@1.3.0: - resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==} + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} - delaunator@5.1.0: - resolution: {integrity: sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ==} + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} - detect-libc@2.1.2: - resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + + istanbul-reports@3.2.0: + resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} engines: {node: '>=8'} - detect-node-es@1.1.0: - resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + hasBin: true - devlop@1.1.0: - resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + jiti@2.7.0: + resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} + hasBin: true - dompurify@3.2.7: - resolution: {integrity: sha512-WhL/YuveyGXJaerVlMYGWhvQswa7myDG17P7Vu65EWC05o8vfeNbvNf4d/BOvH99+ZW+LlQsc1GDKMa1vNK6dw==} + jose@6.2.8: + resolution: {integrity: sha512-Bsdjwm3Qsd/P0jR+BHDe3LytDfY7WBq2HmCCLIwuVRHMuEC9ae7/R474GIUdF1NgCyZjzVo/A9DOiOBtXq8ZoQ==} - dompurify@3.4.1: - resolution: {integrity: sha512-JahakDAIg1gyOm7dlgWSDjV4n7Ip2PKR55NIT6jrMfIgLFgWo81vdr1/QGqWtFNRqXP9UV71oVePtjqS2ebnPw==} + jotai-scope@0.7.2: + resolution: {integrity: sha512-Gwed97f3dDObrO43++2lRcgOqw4O2sdr4JCjP/7eHK1oPACDJ7xKHGScpJX9XaflU+KBHXF+VhwECnzcaQiShg==} + peerDependencies: + jotai: '>=2.9.2' + react: '>=17.0.0' - dompurify@3.4.12: - resolution: {integrity: sha512-zQvGet8Z2sWbQhCmfFz/T5QWH2oBmjnqK3qvOjaqaNLrLEF912WamU+ohnTp0TCep/MFVHpdJuCZEdFOdTnEFg==} + jotai@2.11.0: + resolution: {integrity: sha512-zKfoBBD1uDw3rljwHkt0fWuja1B76R7CjznuBO+mSX6jpsO1EBeWNRKpeaQho9yPI/pvCv4recGfgOXGxwPZvQ==} + engines: {node: '>=12.20.0'} + peerDependencies: + '@types/react': '>=17.0.0' + react: '>=17.0.0' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true - ecdsa-sig-formatter@1.0.11: - resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} + js-tokens@10.0.0: + resolution: {integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==} - edge-runtime@2.5.9: - resolution: {integrity: sha512-pk+k0oK0PVXdlT4oRp4lwh+unuKB7Ng4iZ2HB+EZ7QCEQizX360Rp/F4aRpgpRgdP2ufB35N+1KppHmYjqIGSg==} - engines: {node: '>=16'} + js-yaml@4.3.2: + resolution: {integrity: sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==} hasBin: true - enhanced-resolve@5.24.3: - resolution: {integrity: sha512-PwKooW9JUzh5chmYfHM3IQl5OkK2u2Nm011MgeZrss3JmFraUx/fqrf78kk8GUMYoibx/14MdwTl/1WKkG7TpQ==} - engines: {node: '>=10.13.0'} + jscpd-darwin-arm64@5.0.14: + resolution: {integrity: sha512-Ojjl79SBuj9tEW6WbjZ1a/1ZOR89dneH9yLQYQu8WyWaQownttnx7RYFEHU6aGhS4jIvwUEbr+1wxzFTb37cwg==} + cpu: [arm64] + os: [darwin] - entities@7.0.1: - resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} - engines: {node: '>=0.12'} + jscpd-darwin-x64@5.0.14: + resolution: {integrity: sha512-DxFg5XvjMZ81iVeqillnM5apqcGCfNTbroNF+mPLr7RkHLGH6mudLgtO+ILL/hfpZXy1bF9oIY5BSudPmN/k9A==} + cpu: [x64] + os: [darwin] + + jscpd-linux-arm64-gnu@5.0.14: + resolution: {integrity: sha512-1uw+XBHEt9pONXNICSp5HpaVWPjG6mQ6deDXaq9Yb0xCNJkX4/8gmn0vhzekIyZD2DspRYKPUolbDsqm/HEdYg==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + jscpd-linux-x64-gnu@5.0.14: + resolution: {integrity: sha512-dFTbyyrm+Z9pcXIVzJQCw8QAgiNqIiO69sm4AfA7/wFdPoizoVzjhaXsYXcSV4bs0aoPiWbNazg0J0HgslT/5A==} + cpu: [x64] + os: [linux] + libc: [glibc] + + jscpd-linux-x64-musl@5.0.14: + resolution: {integrity: sha512-SayS7qQJvixyy9eR0+UjepkTsUUwqvlsiuSxfIdHgG2qzqoh/thnkgiu4By8fsiiDpQONsQrRrZDwHRQ3GDrBQ==} + cpu: [x64] + os: [linux] + libc: [musl] - error-stack-parser-es@1.0.5: - resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==} + jscpd-windows-x64-msvc@5.0.14: + resolution: {integrity: sha512-DqjxlVkUanlahGgY2lY7Zkrau4BUTI+AwWky+bPGK4kSK2AIOaUziY9Q19u8b58idXmJA9FKK98Fuu4ajNXVjQ==} + cpu: [x64] + os: [win32] - es-module-lexer@1.4.1: - resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==} + jscpd@5.0.14: + resolution: {integrity: sha512-zge+FPZZAymt2Do5Z0+QHyIn4/XcUhrO/W7of9HcHZfx2AK8++dYhLA1uWtwXj47ml3Of8PbcUW4wUWvYMCc3w==} + engines: {node: '>=18'} + hasBin: true - es-module-lexer@1.5.0: - resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==} + json-bigint@1.0.0: + resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} - es-module-lexer@2.3.1: - resolution: {integrity: sha512-shc1dbU90Yl/xq1QrC7QRtfcwURZuVRfPhZbDoldJ1cn1gzDvBaBWlv0eFolj5+0znnPJz5TXLxsN77X/12KTA==} + json-schema-to-ts@1.6.4: + resolution: {integrity: sha512-pR4yQ9DHz6itqswtHCm26mw45FSNfQ9rEQjosaZErhn5J3J2sIViQiz8rDaezjKAhFGpmsoczYVBgGHzFw/stA==} - es6-promise-pool@2.5.0: - resolution: {integrity: sha512-VHErXfzR/6r/+yyzPKeBvO0lgjfC5cbDCQWjWwMZWSb6YU39TGIl51OUmCfWCq4ylMdJSB8zkz2vIuIeIxXApA==} - engines: {node: '>=0.10.0'} + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - esbuild@0.27.0: - resolution: {integrity: sha512-jd0f4NHbD6cALCyGElNpGAOtWxSq46l9X/sWB0Nzd5er4Kz2YTm+Vl0qKFT9KUJvD8+fiO8AvoHhFvEatfVixA==} - engines: {node: '>=18'} - hasBin: true + json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} - esbuild@0.27.3: - resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} - engines: {node: '>=18'} - hasBin: true + jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} - esbuild@0.28.1: - resolution: {integrity: sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==} - engines: {node: '>=18'} - hasBin: true + jsonfile@6.2.1: + resolution: {integrity: sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==} - escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} + jsonwebtoken@9.0.3: + resolution: {integrity: sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==} + engines: {node: '>=12', npm: '>=6'} - estree-util-is-identifier-name@3.0.0: - resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + jwa@2.0.1: + resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==} - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + jws@4.0.1: + resolution: {integrity: sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==} - estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + katex@0.16.45: + resolution: {integrity: sha512-pQpZbdBu7wCTmQUh7ufPmLr0pFoObnGUoL/yhtwJDgmmQpbkg/0HSVti25Fu4rmd1oCR6NGWe9vqTWuWv3GcNA==} + hasBin: true - etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} + khroma@2.1.0: + resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==} - eventsource-parser@3.0.8: - resolution: {integrity: sha512-70QWGkr4snxr0OXLRWsFLeRBIRPuQOvt4s8QYjmUlmlkyTZkRqS7EDVRZtzU3TiyDbXSzaOeF0XUKy8PchzukQ==} - engines: {node: '>=18.0.0'} + kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} - expect-type@1.4.0: - resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==} - engines: {node: '>=12.0.0'} + knip@6.29.0: + resolution: {integrity: sha512-A3kXqSBky1tWBAqiU9srdtu0Larhzkuyor0aD/gg+ToiqyBncCCs2Q60sLsxmcKhV0OsKss9LV0hMPpwLv711Q==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true - extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + langium@3.3.1: + resolution: {integrity: sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==} + engines: {node: '>=16.0.0'} - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + langium@4.2.2: + resolution: {integrity: sha512-JUshTRAfHI4/MF9dH2WupvjSXyn8JBuUEWazB8ZVJUtXutT0doDlAv1XKbZ1Pb5sMexa8FF4CFBc0iiul7gbUQ==} + engines: {node: '>=20.10.0', npm: '>=10.2.3'} - fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} - engines: {node: '>=8.6.0'} + layout-base@1.0.2: + resolution: {integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==} - fast-string-truncated-width@3.0.3: - resolution: {integrity: sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==} + layout-base@2.0.1: + resolution: {integrity: sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==} - fast-string-width@3.0.2: - resolution: {integrity: sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==} + lightningcss-android-arm64@1.32.0: + resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [android] - fast-unique-numbers@8.0.13: - resolution: {integrity: sha512-7OnTFAVPefgw2eBJ1xj2PGGR9FwYzSUso9decayHgCDX4sJkHLdcsYTytTg+tYv+wKF3U8gJuSBz2jJpQV4u/g==} - engines: {node: '>=16.1.0'} + lightningcss-android-arm64@1.33.0: + resolution: {integrity: sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [android] - fast-wrap-ansi@0.2.2: - resolution: {integrity: sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==} + lightningcss-darwin-arm64@1.32.0: + resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] - fastq@1.20.1: - resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} + lightningcss-darwin-arm64@1.33.0: + resolution: {integrity: sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] - fd-package-json@2.0.0: - resolution: {integrity: sha512-jKmm9YtsNXN789RS/0mSzOC1NUq9mkVd65vbSSVsKdjGvYXBuE4oWe2QOEoFeRmJg+lPuZxpmrfFclNhoRMneQ==} + lightningcss-darwin-x64@1.32.0: + resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] - fdir@6.5.0: - resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} - engines: {node: '>=12.0.0'} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true + lightningcss-darwin-x64@1.33.0: + resolution: {integrity: sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] - fetch-blob@3.2.0: - resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} - engines: {node: ^12.20 || >= 14.13} + lightningcss-freebsd-x64@1.32.0: + resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] - fflate@0.4.9: - resolution: {integrity: sha512-zdxgIEddhfsyCaWpJ2SdXEP8ZMrKJ6+5jl4OupODcywU0IhRk6gdXuVGcPICyfx2H97hVK7xmJtRLPjkxAX8Vw==} + lightningcss-freebsd-x64@1.33.0: + resolution: {integrity: sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] - fflate@0.8.3: - resolution: {integrity: sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==} + lightningcss-linux-arm-gnueabihf@1.32.0: + resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] - file-uri-to-path@1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + lightningcss-linux-arm-gnueabihf@1.33.0: + resolution: {integrity: sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} + lightningcss-linux-arm64-gnu@1.32.0: + resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] - flatted@3.4.3: - resolution: {integrity: sha512-/zipXxyO6rGvuNGDiULY9MvEGSkb2gaG4GGH4ygMi0ZZzyMHdUZBmntJmx5x1G2VuPytCwGN4xsJP6cw+sK+vQ==} + lightningcss-linux-arm64-gnu@1.33.0: + resolution: {integrity: sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] - formatly@0.3.0: - resolution: {integrity: sha512-9XNj/o4wrRFyhSMJOvsuyMwy8aUfBaZ1VrqHVfohyXf0Sw0e+yfKG+xZaY3arGCOMdwFsqObtzVOc1gU9KiT9w==} - engines: {node: '>=18.3.0'} - hasBin: true + lightningcss-linux-arm64-musl@1.32.0: + resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [musl] - formdata-polyfill@4.0.10: - resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} - engines: {node: '>=12.20.0'} + lightningcss-linux-arm64-musl@1.33.0: + resolution: {integrity: sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [musl] - fractional-indexing@3.2.0: - resolution: {integrity: sha512-PcOxmqwYCW7O2ovKRU8OoQQj2yqTfEB/yeTYk4gPid6dN5ODRfU1hXd9tTVZzax/0NkO7AxpHykvZnT1aYp/BQ==} - engines: {node: ^14.13.1 || >=16.0.0} + lightningcss-linux-x64-gnu@1.32.0: + resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [glibc] - fs-extra@11.1.1: - resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} - engines: {node: '>=14.14'} + lightningcss-linux-x64-gnu@1.33.0: + resolution: {integrity: sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [glibc] - fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] + lightningcss-linux-x64-musl@1.32.0: + resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [musl] - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] + lightningcss-linux-x64-musl@1.33.0: + resolution: {integrity: sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [musl] - fuzzy@0.1.3: - resolution: {integrity: sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w==} - engines: {node: '>= 0.6.0'} + lightningcss-win32-arm64-msvc@1.32.0: + resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] - fzstd@0.1.1: - resolution: {integrity: sha512-dkuVSOKKwh3eas5VkJy1AW1vFpet8TA/fGmVA5krThl8YcOVE/8ZIoEA1+U1vEn5ckxxhLirSdY837azmbaNHA==} + lightningcss-win32-arm64-msvc@1.33.0: + resolution: {integrity: sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] - gaxios@7.3.0: - resolution: {integrity: sha512-RB5vLV+vvQeoFPCX4QMK6/hjVkbIamPp1QSUD0CiZcnj12qbpiL+pLbYtgD+oZkWl0tl9z+o2Utp+MpM3QRhBA==} - engines: {node: '>=18'} + lightningcss-win32-x64-msvc@1.32.0: + resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] - gcp-metadata@8.1.2: - resolution: {integrity: sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==} - engines: {node: '>=18'} + lightningcss-win32-x64-msvc@1.33.0: + resolution: {integrity: sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] - get-nonce@1.0.1: - resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} - engines: {node: '>=6'} + lightningcss@1.32.0: + resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} + engines: {node: '>= 12.0.0'} - get-tsconfig@4.14.0: - resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==} + lightningcss@1.33.0: + resolution: {integrity: sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==} + engines: {node: '>= 12.0.0'} - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} - glob@13.0.6: - resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} - engines: {node: 18 || 20 || >=22} + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - glur@1.1.2: - resolution: {integrity: sha512-l+8esYHTKOx2G/Aao4lEQ0bnHWg4fWtJbVoZZT9Knxi01pB8C80BR85nONLFwkkQoFRCmXY+BUcGZN3yZ2QsRA==} + lodash-es@4.18.1: + resolution: {integrity: sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==} - google-auth-library@10.9.1: - resolution: {integrity: sha512-i1ydyHrqcIxXkWh/uBmVkzCvIuq5yiK2ATndIe5XxKholrG/MTYP9xGYka4sQhrbIAgGjL2B6NOE7rFaiF3fXw==} - engines: {node: '>=18'} + lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - google-logging-utils@1.1.3: - resolution: {integrity: sha512-eAmLkjDjAFCVXg7A1unxHsLf961m6y17QFqXqAXGj/gVkKFrEICfStRfwUlGNfeCEjNRa32JEWOUTlYXPyyKvA==} - engines: {node: '>=14'} + lodash.includes@4.3.0: + resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + lodash.isboolean@3.0.3: + resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} - hachure-fill@0.5.2: - resolution: {integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==} + lodash.isinteger@4.0.4: + resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} - happy-dom@20.11.1: - resolution: {integrity: sha512-XSt8tMzbW9ymE7687xztkO1ckR7qJNQ3LywY9vlYGhGi3zXrGBHuUo2Cl1ztZaICW+1eAGdkLbj6iwVqDT33kg==} - engines: {node: '>=20.0.0'} + lodash.isnumber@3.0.3: + resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - hast-util-is-element@3.0.0: - resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + lodash.isstring@4.0.1: + resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} - hast-util-to-jsx-runtime@2.3.6: - resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} + lodash.once@4.1.1: + resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} - hast-util-to-text@4.0.2: - resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} + lodash.throttle@4.1.1: + resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} - hast-util-whitespace@3.0.0: - resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} - highlight.js@11.11.1: - resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==} - engines: {node: '>=12.0.0'} + lowlight@3.3.0: + resolution: {integrity: sha512-0JNhgFoPvP6U6lE/UdVsSq99tn6DhjjpAj5MxG49ewd2mOBVtwWYIT8ClyABhq198aXXODMU6Ox8DrGy/CpTZQ==} - html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + lru-cache@11.5.2: + resolution: {integrity: sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==} + engines: {node: 20 || >=22} - html-url-attributes@3.0.1: - resolution: {integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==} + lucide-react@1.27.0: + resolution: {integrity: sha512-rJicGl/3Fly/E0rOH1YmPZ6e49JCnKknh1ox1vpHnkfjujAkKA6sqUZvH3MTAaXXjgexyUwgNwTJzTtYuAFYJw==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 - https-proxy-agent@7.0.6: - resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} - engines: {node: '>= 14'} + lucide-react@1.48.0: + resolution: {integrity: sha512-R0CIKY/fXiC6y9xRBADgsK+VW2p/pcTJOMhLZf1T+uG+vJUvyUR02nGOgmIIC7MPkiNK4Ox8QDnbqF8rJYWPZQ==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 - husky@9.1.7: - resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} - engines: {node: '>=18'} + lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true - iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} - image-blob-reduce@3.0.1: - resolution: {integrity: sha512-/VmmWgIryG/wcn4TVrV7cC4mlfUC/oyiKIfSg5eVM3Ten/c1c34RJhMYKCWTnoSMHSqXLt3tsrBR4Q2HInvN+Q==} + magicast@0.5.3: + resolution: {integrity: sha512-pVKE4UdSQ7DvHzivsCIFx2BJn1mHG6KsyrFcaxFx6tONdneEuThrDx0Cj3AMg58KyN4pzYT+LHOotxDQDjNvkw==} - immutable@4.3.9: - resolution: {integrity: sha512-ObHy4YN7ycwZOUCLI1/6svfyAFu7vL8RhAvVu/bh/RZW9EPlOyDaQ9jDQWCtdqzaXUjgXZCW1migtHE7YI7UGQ==} + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + markdown-table@3.0.4: + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} - inline-style-parser@0.2.7: - resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==} + marked@14.0.0: + resolution: {integrity: sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==} + engines: {node: '>= 18'} + hasBin: true - internmap@1.0.1: - resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} + marked@16.4.2: + resolution: {integrity: sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==} + engines: {node: '>= 20'} + hasBin: true - internmap@2.0.3: - resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} - engines: {node: '>=12'} + mdast-util-find-and-replace@3.0.2: + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} - is-alphabetical@2.0.1: - resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + mdast-util-from-markdown@2.0.3: + resolution: {integrity: sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==} - is-alphanumerical@2.0.1: - resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} + mdast-util-gfm-footnote@2.1.0: + resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} - is-decimal@2.0.1: - resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} - is-hexadecimal@2.0.1: - resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + mdast-util-gfm@3.1.0: + resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} + mdast-util-mdx-expression@2.0.1: + resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} - is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} + mdast-util-mdx-jsx@3.2.0: + resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + mdast-util-mdxjs-esm@2.0.1: + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} - istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} - istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} + mdast-util-to-hast@13.2.1: + resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} - istanbul-reports@3.2.0: - resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} - engines: {node: '>=8'} + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} - jiti@2.6.1: - resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} - hasBin: true + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - jiti@2.7.0: - resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} - hasBin: true + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} - jose@6.2.8: - resolution: {integrity: sha512-Bsdjwm3Qsd/P0jR+BHDe3LytDfY7WBq2HmCCLIwuVRHMuEC9ae7/R474GIUdF1NgCyZjzVo/A9DOiOBtXq8ZoQ==} + mermaid@11.14.0: + resolution: {integrity: sha512-GSGloRsBs+JINmmhl0JDwjpuezCsHB4WGI4NASHxL3fHo3o/BRXTxhDLKnln8/Q0lRFRyDdEjmk1/d5Sn1Xz8g==} - jotai-scope@0.7.2: - resolution: {integrity: sha512-Gwed97f3dDObrO43++2lRcgOqw4O2sdr4JCjP/7eHK1oPACDJ7xKHGScpJX9XaflU+KBHXF+VhwECnzcaQiShg==} - peerDependencies: - jotai: '>=2.9.2' - react: '>=17.0.0' + micromark-core-commonmark@2.0.3: + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} - jotai@2.11.0: - resolution: {integrity: sha512-zKfoBBD1uDw3rljwHkt0fWuja1B76R7CjznuBO+mSX6jpsO1EBeWNRKpeaQho9yPI/pvCv4recGfgOXGxwPZvQ==} - engines: {node: '>=12.20.0'} - peerDependencies: - '@types/react': '>=17.0.0' - react: '>=17.0.0' - peerDependenciesMeta: - '@types/react': - optional: true - react: - optional: true + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} - js-tokens@10.0.0: - resolution: {integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==} + micromark-extension-gfm-table@2.1.1: + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} - js-yaml@4.3.2: - resolution: {integrity: sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==} - hasBin: true + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} - jscpd-darwin-arm64@5.0.14: - resolution: {integrity: sha512-Ojjl79SBuj9tEW6WbjZ1a/1ZOR89dneH9yLQYQu8WyWaQownttnx7RYFEHU6aGhS4jIvwUEbr+1wxzFTb37cwg==} - cpu: [arm64] - os: [darwin] + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} - jscpd-darwin-x64@5.0.14: - resolution: {integrity: sha512-DxFg5XvjMZ81iVeqillnM5apqcGCfNTbroNF+mPLr7RkHLGH6mudLgtO+ILL/hfpZXy1bF9oIY5BSudPmN/k9A==} - cpu: [x64] - os: [darwin] + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} - jscpd-linux-arm64-gnu@5.0.14: - resolution: {integrity: sha512-1uw+XBHEt9pONXNICSp5HpaVWPjG6mQ6deDXaq9Yb0xCNJkX4/8gmn0vhzekIyZD2DspRYKPUolbDsqm/HEdYg==} - cpu: [arm64] - os: [linux] - libc: [glibc] + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} - jscpd-linux-x64-gnu@5.0.14: - resolution: {integrity: sha512-dFTbyyrm+Z9pcXIVzJQCw8QAgiNqIiO69sm4AfA7/wFdPoizoVzjhaXsYXcSV4bs0aoPiWbNazg0J0HgslT/5A==} - cpu: [x64] - os: [linux] - libc: [glibc] + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} - jscpd-linux-x64-musl@5.0.14: - resolution: {integrity: sha512-SayS7qQJvixyy9eR0+UjepkTsUUwqvlsiuSxfIdHgG2qzqoh/thnkgiu4By8fsiiDpQONsQrRrZDwHRQ3GDrBQ==} - cpu: [x64] - os: [linux] - libc: [musl] + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} - jscpd-windows-x64-msvc@5.0.14: - resolution: {integrity: sha512-DqjxlVkUanlahGgY2lY7Zkrau4BUTI+AwWky+bPGK4kSK2AIOaUziY9Q19u8b58idXmJA9FKK98Fuu4ajNXVjQ==} - cpu: [x64] - os: [win32] + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} - jscpd@5.0.14: - resolution: {integrity: sha512-zge+FPZZAymt2Do5Z0+QHyIn4/XcUhrO/W7of9HcHZfx2AK8++dYhLA1uWtwXj47ml3Of8PbcUW4wUWvYMCc3w==} - engines: {node: '>=18'} - hasBin: true + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} - json-bigint@1.0.0: - resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} - json-schema-to-ts@1.6.4: - resolution: {integrity: sha512-pR4yQ9DHz6itqswtHCm26mw45FSNfQ9rEQjosaZErhn5J3J2sIViQiz8rDaezjKAhFGpmsoczYVBgGHzFw/stA==} + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} - json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} - json-schema@0.4.0: - resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} - jsonc-parser@3.3.1: - resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} - jsonfile@6.2.1: - resolution: {integrity: sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==} + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} - jsonwebtoken@9.0.3: - resolution: {integrity: sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==} - engines: {node: '>=12', npm: '>=6'} + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} - jwa@2.0.1: - resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==} + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} - jws@4.0.1: - resolution: {integrity: sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==} + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} - katex@0.16.45: - resolution: {integrity: sha512-pQpZbdBu7wCTmQUh7ufPmLr0pFoObnGUoL/yhtwJDgmmQpbkg/0HSVti25Fu4rmd1oCR6NGWe9vqTWuWv3GcNA==} - hasBin: true + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} - khroma@2.1.0: - resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==} + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} - kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} + micromark-util-subtokenize@2.1.0: + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} - knip@6.29.0: - resolution: {integrity: sha512-A3kXqSBky1tWBAqiU9srdtu0Larhzkuyor0aD/gg+ToiqyBncCCs2Q60sLsxmcKhV0OsKss9LV0hMPpwLv711Q==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} - langium@3.3.1: - resolution: {integrity: sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==} - engines: {node: '>=16.0.0'} + micromark-util-types@2.0.2: + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} - langium@4.2.2: - resolution: {integrity: sha512-JUshTRAfHI4/MF9dH2WupvjSXyn8JBuUEWazB8ZVJUtXutT0doDlAv1XKbZ1Pb5sMexa8FF4CFBc0iiul7gbUQ==} - engines: {node: '>=20.10.0', npm: '>=10.2.3'} + micromark@4.0.2: + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} - layout-base@1.0.2: - resolution: {integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==} + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} - layout-base@2.0.1: - resolution: {integrity: sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==} + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} - lightningcss-android-arm64@1.32.0: - resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [android] + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} - lightningcss-android-arm64@1.33.0: - resolution: {integrity: sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [android] + miniflare@4.20260722.0: + resolution: {integrity: sha512-LW6ABMhCx/yIEFBLC/DO4yAhdm2T/G7jp7pr5T2kj895+CCIaHZqpMXdW9O6YE48LcYcCJChwWc8aEs1vpbTXw==} + engines: {node: '>=22.0.0'} + hasBin: true - lightningcss-darwin-arm64@1.32.0: - resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [darwin] + minimatch@10.2.5: + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} + engines: {node: 18 || 20 || >=22} - lightningcss-darwin-arm64@1.33.0: - resolution: {integrity: sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [darwin] + minimatch@3.1.5: + resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} - lightningcss-darwin-x64@1.32.0: - resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [darwin] + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} - lightningcss-darwin-x64@1.33.0: - resolution: {integrity: sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [darwin] + minizlib@3.1.0: + resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} + engines: {node: '>= 18'} - lightningcss-freebsd-x64@1.32.0: - resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [freebsd] + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true - lightningcss-freebsd-x64@1.33.0: - resolution: {integrity: sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [freebsd] + mlly@1.8.2: + resolution: {integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==} - lightningcss-linux-arm-gnueabihf@1.32.0: - resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==} - engines: {node: '>= 12.0.0'} - cpu: [arm] - os: [linux] + monaco-editor@0.55.1: + resolution: {integrity: sha512-jz4x+TJNFHwHtwuV9vA9rMujcZRb0CEilTEwG2rRSpe/A7Jdkuj8xPKttCgOh+v/lkHy7HsZ64oj+q3xoAFl9A==} - lightningcss-linux-arm-gnueabihf@1.33.0: - resolution: {integrity: sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==} - engines: {node: '>= 12.0.0'} - cpu: [arm] - os: [linux] + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} - lightningcss-linux-arm64-gnu@1.32.0: - resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] - libc: [glibc] + mrmime@2.0.1: + resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} + engines: {node: '>=10'} - lightningcss-linux-arm64-gnu@1.33.0: - resolution: {integrity: sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] - libc: [glibc] + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - lightningcss-linux-arm64-musl@1.32.0: - resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] - libc: [musl] + multimath@2.0.0: + resolution: {integrity: sha512-toRx66cAMJ+Ccz7pMIg38xSIrtnbozk0dchXezwQDMgQmbGpfxjtv68H+L00iFL8hxDaVjrmwAFSb3I6bg8Q2g==} - lightningcss-linux-arm64-musl@1.33.0: - resolution: {integrity: sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] - libc: [musl] + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - lightningcss-linux-x64-gnu@1.32.0: - resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] - libc: [glibc] + nanoid@3.3.18: + resolution: {integrity: sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanoid@5.1.16: + resolution: {integrity: sha512-kVrnsrJqMR8+oLJnGEmSWw9BivK5mt7H3FZatVRjrc5wGqFYuBxX1yG7+A7Gi5AefkX6t/oCkizcQgpu0cY1dQ==} + engines: {node: ^18 || >=20} + hasBin: true - lightningcss-linux-x64-gnu@1.33.0: - resolution: {integrity: sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] - libc: [glibc] + nanospinner@1.2.2: + resolution: {integrity: sha512-Zt/AmG6qRU3e+WnzGGLuMCEAO/dAu45stNbHY223tUxldaDAeE+FxSPsd9Q+j+paejmm0ZbrNVs5Sraqy3dRxA==} - lightningcss-linux-x64-musl@1.32.0: - resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] - libc: [musl] + node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + deprecated: Use your platform's native DOMException instead - lightningcss-linux-x64-musl@1.33.0: - resolution: {integrity: sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] - libc: [musl] + node-fetch@2.6.9: + resolution: {integrity: sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true - lightningcss-win32-arm64-msvc@1.32.0: - resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [win32] + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true - lightningcss-win32-arm64-msvc@1.33.0: - resolution: {integrity: sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [win32] + node-fetch@3.3.2: + resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - lightningcss-win32-x64-msvc@1.32.0: - resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [win32] + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} + hasBin: true - lightningcss-win32-x64-msvc@1.33.0: - resolution: {integrity: sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [win32] + nopt@8.1.0: + resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} + engines: {node: ^18.17.0 || >=20.5.0} + hasBin: true - lightningcss@1.32.0: - resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} - engines: {node: '>= 12.0.0'} + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} - lightningcss@1.33.0: - resolution: {integrity: sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==} - engines: {node: '>= 12.0.0'} + nypm@0.6.9: + resolution: {integrity: sha512-zxlE2yvSWZWmHcNdT3+5zV2lrCogeE9YOklHrR3dFjqutq5wO7GFDYLFDRXLsYnJzwvy/im9fYoxePvS0VTW0w==} + engines: {node: '>=18'} + hasBin: true - lilconfig@3.1.3: - resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} - engines: {node: '>=14'} + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + obug@2.1.4: + resolution: {integrity: sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==} + engines: {node: '>=12.20.0'} - lodash-es@4.18.1: - resolution: {integrity: sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==} + open-color@1.9.1: + resolution: {integrity: sha512-vCseG/EQ6/RcvxhUcGJiHViOgrtz4x0XbZepXvKik66TMGkvbmjeJrKFyBEx6daG5rNyyd14zYXhz0hZVwQFOw==} - lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + oxc-parser@0.140.0: + resolution: {integrity: sha512-h6QFWd6lBMfjESqgQ27GjzrSDb0qbznp7VDQqp2zvgsrWut4vcchyMIzOVXvGQ2GMZgKw9RWrFNWv9WqGL0p7Q==} + engines: {node: ^20.19.0 || >=22.12.0} - lodash.includes@4.3.0: - resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} + oxc-resolver@11.24.2: + resolution: {integrity: sha512-FY91FiDBj7ls5MsFS9jN3tjz2o0/zsdSsymlakySaBwVJZorHhkWyICLZMKxlu1R9vYo+sd3z1jwb4J8x7bNDw==} - lodash.isboolean@3.0.3: - resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} + package-manager-detector@1.6.0: + resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} - lodash.isinteger@4.0.4: - resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} + pako@2.0.3: + resolution: {integrity: sha512-WjR1hOeg+kki3ZIOjaf4b5WVcay1jaliKSYiEaB1XzwhMQZJxRdQRv0V31EKBYlxb4T7SK3hjfc/jxyU64BoSw==} - lodash.isnumber@3.0.3: - resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} + parse-entities@4.0.2: + resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} - lodash.isplainobject@4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + parse-ms@2.1.0: + resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} + engines: {node: '>=6'} - lodash.isstring@4.0.1: - resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} - lodash.once@4.1.1: - resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + path-data-parser@0.1.0: + resolution: {integrity: sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==} - lodash.throttle@4.1.1: - resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} - longest-streak@3.1.0: - resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + path-scurry@2.0.2: + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + engines: {node: 18 || 20 || >=22} - lowlight@3.3.0: - resolution: {integrity: sha512-0JNhgFoPvP6U6lE/UdVsSq99tn6DhjjpAj5MxG49ewd2mOBVtwWYIT8ClyABhq198aXXODMU6Ox8DrGy/CpTZQ==} + path-to-regexp@6.1.0: + resolution: {integrity: sha512-h9DqehX3zZZDCEm+xbfU0ZmwCGFCAAraPJWMXJ4+v32NjZJilVg3k1TcKsRgIb8IQ/izZSaydDc1OhJCZvs2Dw==} - lru-cache@11.5.2: - resolution: {integrity: sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==} - engines: {node: 20 || >=22} + path-to-regexp@6.3.0: + resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} - lucide-react@1.27.0: - resolution: {integrity: sha512-rJicGl/3Fly/E0rOH1YmPZ6e49JCnKknh1ox1vpHnkfjujAkKA6sqUZvH3MTAaXXjgexyUwgNwTJzTtYuAFYJw==} - peerDependencies: - react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - lz-string@1.5.0: - resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} - hasBin: true + perfect-freehand@1.2.0: + resolution: {integrity: sha512-h/0ikF1M3phW7CwpZ5MMvKnfpHficWoOEyr//KVNTxV4F6deRK1eYMtHyBKEAKFK0aXIEUK9oBvlF6PNXMDsAw==} - magic-string@0.30.21: - resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + pica@7.1.1: + resolution: {integrity: sha512-WY73tMvNzXWEld2LicT9Y260L43isrZ85tPuqRyvtkljSDLmnNFQmZICt4xUJMVulmcc6L9O7jbBrtx3DOz/YQ==} - magicast@0.5.3: - resolution: {integrity: sha512-pVKE4UdSQ7DvHzivsCIFx2BJn1mHG6KsyrFcaxFx6tONdneEuThrDx0Cj3AMg58KyN4pzYT+LHOotxDQDjNvkw==} + picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - markdown-table@3.0.4: - resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + picomatch@2.3.2: + resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} + engines: {node: '>=8.6'} - marked@14.0.0: - resolution: {integrity: sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==} - engines: {node: '>= 18'} - hasBin: true + picomatch@4.0.5: + resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} + engines: {node: '>=12'} - marked@16.4.2: - resolution: {integrity: sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==} - engines: {node: '>= 20'} - hasBin: true + pirates@4.0.7: + resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} + engines: {node: '>= 6'} - mdast-util-find-and-replace@3.0.2: - resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - mdast-util-from-markdown@2.0.3: - resolution: {integrity: sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==} + playwright-core@1.62.0: + resolution: {integrity: sha512-nsNRyq0r2zsG8AcRHWknc9QRA5XCueC7gWMrs+Gx2tlZn9hcl8zudfh00lhJPY1DE7NmZ6bDsT9g2yey8mXljA==} + engines: {node: '>=20'} + hasBin: true - mdast-util-gfm-autolink-literal@2.0.1: - resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + playwright@1.62.0: + resolution: {integrity: sha512-Z14dG305dgaLu6foB1TXQagFiW8JfSUIUaUuPaKQ6NtBPKF1P/qXcqfh6c6K/icPqdy37JmjbiBXf6JNg6Sylw==} + engines: {node: '>=20'} + hasBin: true - mdast-util-gfm-footnote@2.1.0: - resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} + png-chunk-text@1.0.0: + resolution: {integrity: sha512-DEROKU3SkkLGWNMzru3xPVgxyd48UGuMSZvioErCure6yhOc/pRH2ZV+SEn7nmaf7WNf3NdIpH+UTrRdKyq9Lw==} - mdast-util-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + png-chunks-encode@1.0.0: + resolution: {integrity: sha512-J1jcHgbQRsIIgx5wxW9UmCymV3wwn4qCCJl6KYgEU/yHCh/L2Mwq/nMOkRPtmV79TLxRZj5w3tH69pvygFkDqA==} - mdast-util-gfm-table@2.0.0: - resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + png-chunks-extract@1.0.0: + resolution: {integrity: sha512-ZiVwF5EJ0DNZyzAqld8BP1qyJBaGOFaq9zl579qfbkcmOwWLLO4I9L8i2O4j3HkI6/35i0nKG2n+dZplxiT89Q==} - mdast-util-gfm-task-list-item@2.0.0: - resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + points-on-curve@0.2.0: + resolution: {integrity: sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==} - mdast-util-gfm@3.1.0: - resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} + points-on-curve@1.0.1: + resolution: {integrity: sha512-3nmX4/LIiyuwGLwuUrfhTlDeQFlAhi7lyK/zcRNGhalwapDWgAGR82bUpmn2mA03vII3fvNCG8jAONzKXwpxAg==} - mdast-util-mdx-expression@2.0.1: - resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} + points-on-path@0.2.1: + resolution: {integrity: sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==} - mdast-util-mdx-jsx@3.2.0: - resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} + postcss@8.5.23: + resolution: {integrity: sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==} + engines: {node: ^10 || ^12 || >=14} - mdast-util-mdxjs-esm@2.0.1: - resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + posthog-js@1.407.3: + resolution: {integrity: sha512-b9Kc7HVN6nh+xsh1JrcLYHv9bbYLwYUM9belJtNVUFZSJWWfFcZRJJP6L+KeanAeu2VxSFSpioVA39pjjolv4A==} - mdast-util-phrasing@4.1.0: - resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + preact@10.29.7: + resolution: {integrity: sha512-DCHYrK/B10yUD3ZjLfhZ3WIE/9Vf9VFUODcRE2dRomTYDpJk6z6L9wecSfhfE6M9ZTHUdyQkoC46arIDhEV84Q==} + peerDependencies: + preact-render-to-string: '>=5' + peerDependenciesMeta: + preact-render-to-string: + optional: true - mdast-util-to-hast@13.2.1: - resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} + prettier@3.9.6: + resolution: {integrity: sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==} + engines: {node: '>=14'} + hasBin: true - mdast-util-to-markdown@2.1.2: - resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + pretty-ms@7.0.1: + resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} + engines: {node: '>=10'} - mdast-util-to-string@4.0.0: - resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + property-information@7.1.0: + resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} - mermaid@11.14.0: - resolution: {integrity: sha512-GSGloRsBs+JINmmhl0JDwjpuezCsHB4WGI4NASHxL3fHo3o/BRXTxhDLKnln8/Q0lRFRyDdEjmk1/d5Sn1Xz8g==} + pwacompat@2.0.17: + resolution: {integrity: sha512-6Du7IZdIy7cHiv7AhtDy4X2QRM8IAD5DII69mt5qWibC2d15ZU8DmBG1WdZKekG11cChSu4zkSUGPF9sweOl6w==} - micromark-core-commonmark@2.0.3: - resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + query-selector-shadow-dom@1.0.1: + resolution: {integrity: sha512-lT5yCqEBgfoMYpf3F2xQRK7zEr1rhIIZuceDK6+xRkJQ4NMbHTwXqk4NkwDwQMNqXgG9r9fyHnzwNVs6zV5KRw==} - micromark-extension-gfm-autolink-literal@2.1.0: - resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - micromark-extension-gfm-footnote@2.1.0: - resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + radix-ui@1.6.7: + resolution: {integrity: sha512-QBdhh1arIEUvPC0dQ5+nwWAxt7+N+oP/9jPwjJkGFoSk/sqxg32gJtSXGtFh8frAIcS6oC9cx2Q+7KYCQLOAeA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - micromark-extension-gfm-strikethrough@2.1.0: - resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + react-dom@19.2.8: + resolution: {integrity: sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==} + peerDependencies: + react: ^19.2.8 - micromark-extension-gfm-table@2.1.1: - resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + react-markdown@10.1.0: + resolution: {integrity: sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==} + peerDependencies: + '@types/react': '>=18' + react: '>=18' - micromark-extension-gfm-tagfilter@2.0.0: - resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + react-remove-scroll-bar@2.3.8: + resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true - micromark-extension-gfm-task-list-item@2.1.0: - resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + react-remove-scroll@2.7.2: + resolution: {integrity: sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - micromark-extension-gfm@3.0.0: - resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + react-resizable-panels@4.12.2: + resolution: {integrity: sha512-NwY5LCo4WrxVvDh0xoMML6EMLPONP/8ckKcIdpnojxexoatZdjLiRqLJQjQK5CPkd4SYiB/2M5BVrjZBQtOO7Q==} + peerDependencies: + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 - micromark-factory-destination@2.0.1: - resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + react-router-dom@7.18.2: + resolution: {integrity: sha512-AIKJ/jgGlFb3EbfCXk5Gzshiwt+l3mqbCrNjmEWMMjqQxNJ3svBa6bgzFyCC2Sw3RA0VWF1kg3uQf2OFhxb8hw==} + engines: {node: '>=20.0.0'} + peerDependencies: + react: '>=18' + react-dom: '>=18' - micromark-factory-label@2.0.1: - resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + react-router@7.18.2: + resolution: {integrity: sha512-aUVMjFm3GAPTTZL7oYr5E7ETiqfQCHRLH+B+5afnICvf0r7kkK4eR6SMuwbSTJw/7t+12khT/Kahij49fqOCIg==} + engines: {node: '>=20.0.0'} + peerDependencies: + react: '>=18' + react-dom: '>=18' + peerDependenciesMeta: + react-dom: + optional: true - micromark-factory-space@2.0.1: - resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + react-style-singleton@2.2.3: + resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - micromark-factory-title@2.0.1: - resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + react@19.2.8: + resolution: {integrity: sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==} + engines: {node: '>=0.10.0'} - micromark-factory-whitespace@2.0.1: - resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} - micromark-util-character@2.1.1: - resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} - micromark-util-chunked@2.0.1: - resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + rehype-highlight@7.0.2: + resolution: {integrity: sha512-k158pK7wdC2qL3M5NcZROZ2tR/l7zOzjxXd5VGdcfIyoijjQqpHd3JKtYSBDpDZ38UI2WJWuFAtkMDxmx5kstA==} - micromark-util-classify-character@2.0.1: - resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + remark-gfm@4.0.1: + resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} - micromark-util-combine-extensions@2.0.1: - resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} - micromark-util-decode-numeric-character-reference@2.0.2: - resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + remark-rehype@11.1.2: + resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} - micromark-util-decode-string@2.0.1: - resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} - micromark-util-encode@2.0.1: - resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} - micromark-util-html-tag-name@2.0.1: - resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} - micromark-util-normalize-identifier@2.0.1: - resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - micromark-util-resolve-all@2.0.1: - resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - micromark-util-sanitize-uri@2.0.1: - resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + robust-predicates@3.0.3: + resolution: {integrity: sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA==} - micromark-util-subtokenize@2.1.0: - resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} + rolldown@1.1.5: + resolution: {integrity: sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true - micromark-util-symbol@2.0.1: - resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + rollup@4.62.2: + resolution: {integrity: sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true - micromark-util-types@2.0.2: - resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + roughjs@4.6.4: + resolution: {integrity: sha512-s6EZ0BntezkFYMf/9mGn7M8XGIoaav9QQBCnJROWB3brUWQ683Q2LbRD/hq0Z3bAJ/9NVpU/5LpiTWvQMyLDhw==} - micromark@4.0.2: - resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + roughjs@4.6.6: + resolution: {integrity: sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==} - micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} + rw@1.3.3: + resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - miniflare@4.20260722.0: - resolution: {integrity: sha512-LW6ABMhCx/yIEFBLC/DO4yAhdm2T/G7jp7pr5T2kj895+CCIaHZqpMXdW9O6YE48LcYcCJChwWc8aEs1vpbTXw==} - engines: {node: '>=22.0.0'} - hasBin: true + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - minimatch@10.2.5: - resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} - engines: {node: 18 || 20 || >=22} + sass@1.51.0: + resolution: {integrity: sha512-haGdpTgywJTvHC2b91GSq+clTKGbtkkZmVAb82jZQN/wTy6qs8DdFm2lhEQbEwrY0QDRgSQ3xDurqM977C3noA==} + engines: {node: '>=12.0.0'} + hasBin: true - minimatch@3.1.5: - resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} + scheduler@0.27.0: + resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} - minipass@7.1.3: - resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} - engines: {node: '>=16 || 14 >=14.17'} + sdp-transform@2.15.0: + resolution: {integrity: sha512-KrOH82c/W+GYQ0LHqtr3caRpM3ITglq3ljGUIb8LTki7ByacJZ9z+piSGiwZDsRyhQbYBOBJgr2k6X4BZXi3Kw==} + hasBin: true - minizlib@3.1.0: - resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} - engines: {node: '>= 18'} + semver@7.7.4: + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} + engines: {node: '>=10'} + hasBin: true - mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + semver@7.8.5: + resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} engines: {node: '>=10'} hasBin: true - mlly@1.8.2: - resolution: {integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==} + set-cookie-parser@2.7.2: + resolution: {integrity: sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==} - monaco-editor@0.55.1: - resolution: {integrity: sha512-jz4x+TJNFHwHtwuV9vA9rMujcZRb0CEilTEwG2rRSpe/A7Jdkuj8xPKttCgOh+v/lkHy7HsZ64oj+q3xoAFl9A==} + sharp@0.35.5: + resolution: {integrity: sha512-Ywn4OnzGukp7CDMrp08RQ50YKmuwG47brZgIVPTvBaaAfQlRlygrRqSrxdCiL9M+LlzLBiJ68IR1QqvzHyjC7g==} + engines: {node: '>=20.9.0'} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true - mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} - mrmime@2.0.1: - resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} - engines: {node: '>=10'} + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - multimath@2.0.0: - resolution: {integrity: sha512-toRx66cAMJ+Ccz7pMIg38xSIrtnbozk0dchXezwQDMgQmbGpfxjtv68H+L00iFL8hxDaVjrmwAFSb3I6bg8Q2g==} + signal-exit@4.0.2: + resolution: {integrity: sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==} + engines: {node: '>=14'} - mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + sirv@3.0.2: + resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} + engines: {node: '>=18'} - nanoid@3.3.18: - resolution: {integrity: sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - nanoid@5.1.16: - resolution: {integrity: sha512-kVrnsrJqMR8+oLJnGEmSWw9BivK5mt7H3FZatVRjrc5wGqFYuBxX1yG7+A7Gi5AefkX6t/oCkizcQgpu0cY1dQ==} - engines: {node: ^18 || >=20} + size-limit@11.2.0: + resolution: {integrity: sha512-2kpQq2DD/pRpx3Tal/qRW1SYwcIeQ0iq8li5CJHQgOC+FtPn2BVmuDtzUCgNnpCrbgtfEHqh+iWzxK+Tq6C+RQ==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true - nanospinner@1.2.2: - resolution: {integrity: sha512-Zt/AmG6qRU3e+WnzGGLuMCEAO/dAu45stNbHY223tUxldaDAeE+FxSPsd9Q+j+paejmm0ZbrNVs5Sraqy3dRxA==} + sliced@1.0.1: + resolution: {integrity: sha512-VZBmZP8WU3sMOZm1bdgTadsQbcscK0UM8oKxKVBs4XAhUo2Xxzm/OFMGBkPusxw9xL3Uy8LrzEqGqJhclsr0yA==} + deprecated: Unsupported - node-domexception@1.0.0: - resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} - engines: {node: '>=10.5.0'} - deprecated: Use your platform's native DOMException instead + smol-toml@1.7.1: + resolution: {integrity: sha512-PPlsspAZ4jbMBu5DMFhfUGDQLu/vrL4SyBROVS37x8ynnVmFIs1VPBz1Co8Xks3TvpIaZXmU85y4DrQ+UyVFoQ==} + engines: {node: '>= 18'} - node-fetch@2.6.9: - resolution: {integrity: sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==} - engines: {node: 4.x || >=6.0.0} + sonner@2.0.8: + resolution: {integrity: sha512-UM/ByIoFra8yzV75n1o0Puu0bw5U/9UNnDacrJNspekBewIfsQ3D6ez1nvlWpt7aTsO6rujQtifBpycwIivqlg==} peerDependencies: - encoding: ^0.1.0 + '@types/react': ^18.0.0 || ^19.0.0 + react: ^18.0.0 || ^19.0.0 || ^19.0.0-rc + react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-rc peerDependenciesMeta: - encoding: + '@types/react': optional: true - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true + source-map-js@1.2.2: + resolution: {integrity: sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==} + engines: {node: '>=0.10.0'} - node-fetch@3.3.2: - resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - node-gyp-build@4.8.4: - resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} - hasBin: true + sql.js@1.14.1: + resolution: {integrity: sha512-gcj8zBWU5cFsi9WUP+4bFNXAyF1iRpA3LLyS/DP5xlrNzGmPIizUeBggKa8DbDwdqaKwUcTEnChtd2grWo/x/A==} - nopt@8.1.0: - resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} - engines: {node: ^18.17.0 || >=20.5.0} - hasBin: true + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} + state-local@1.0.7: + resolution: {integrity: sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==} - nypm@0.6.9: - resolution: {integrity: sha512-zxlE2yvSWZWmHcNdT3+5zV2lrCogeE9YOklHrR3dFjqutq5wO7GFDYLFDRXLsYnJzwvy/im9fYoxePvS0VTW0w==} - engines: {node: '>=18'} - hasBin: true + std-env@4.2.0: + resolution: {integrity: sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==} - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} - obug@2.1.4: - resolution: {integrity: sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==} - engines: {node: '>=12.20.0'} + strip-json-comments@5.0.3: + resolution: {integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==} + engines: {node: '>=14.16'} - open-color@1.9.1: - resolution: {integrity: sha512-vCseG/EQ6/RcvxhUcGJiHViOgrtz4x0XbZepXvKik66TMGkvbmjeJrKFyBEx6daG5rNyyd14zYXhz0hZVwQFOw==} + style-to-js@1.1.21: + resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==} - oxc-parser@0.140.0: - resolution: {integrity: sha512-h6QFWd6lBMfjESqgQ27GjzrSDb0qbznp7VDQqp2zvgsrWut4vcchyMIzOVXvGQ2GMZgKw9RWrFNWv9WqGL0p7Q==} - engines: {node: ^20.19.0 || >=22.12.0} + style-to-object@1.0.14: + resolution: {integrity: sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==} - oxc-resolver@11.24.2: - resolution: {integrity: sha512-FY91FiDBj7ls5MsFS9jN3tjz2o0/zsdSsymlakySaBwVJZorHhkWyICLZMKxlu1R9vYo+sd3z1jwb4J8x7bNDw==} + stylis@4.4.0: + resolution: {integrity: sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==} - package-manager-detector@1.6.0: - resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} + sucrase@3.35.1: + resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true - pako@2.0.3: - resolution: {integrity: sha512-WjR1hOeg+kki3ZIOjaf4b5WVcay1jaliKSYiEaB1XzwhMQZJxRdQRv0V31EKBYlxb4T7SK3hjfc/jxyU64BoSw==} + supports-color@10.2.2: + resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} + engines: {node: '>=18'} - parse-entities@4.0.2: - resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} - parse-ms@2.1.0: - resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} + tailwind-merge@3.6.0: + resolution: {integrity: sha512-uxL7qAVQriqRQPAyK3pj66VqskWqoZ37PW94jwOTwNfq/z9oyu1V+eqrZqtR2+fCiXdYOZe/Modt8GtvqNzu+w==} + + tailwind-merge@3.7.0: + resolution: {integrity: sha512-XPPUyAc+cvspz3lHTcR/QgPfW2A0lv/xQNIjX3HGhLR+Nq2lHaLq5MtTesHn8GUr3W3DguT2KT5x3NVgRtYwmA==} + + tailwindcss@4.3.3: + resolution: {integrity: sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ==} + + tapable@2.3.3: + resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} engines: {node: '>=6'} - path-browserify@1.0.1: - resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + tar@7.5.22: + resolution: {integrity: sha512-MFO/QzvtAOmJbkhOaCTvbGcFN9L9b+JunIsDwaKljSOdcLMea3NJ1k9Usz/rjdfSXTq4dfzfeS7W4p4YOAAHeA==} + engines: {node: '>=18'} - path-data-parser@0.1.0: - resolution: {integrity: sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==} + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - path-scurry@2.0.2: - resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} - engines: {node: 18 || 20 || >=22} + time-span@4.0.0: + resolution: {integrity: sha512-MyqZCTGLDZ77u4k+jqg4UlrzPTPZ49NDlaekU6uuFaJLzPIN1woaRXCbGeqOfxwc3Y37ZROGAJ614Rdv7Olt+g==} + engines: {node: '>=10'} - path-to-regexp@6.1.0: - resolution: {integrity: sha512-h9DqehX3zZZDCEm+xbfU0ZmwCGFCAAraPJWMXJ4+v32NjZJilVg3k1TcKsRgIb8IQ/izZSaydDc1OhJCZvs2Dw==} + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - path-to-regexp@6.3.0: - resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} + tinyexec@1.1.1: + resolution: {integrity: sha512-VKS/ZaQhhkKFMANmAOhhXVoIfBXblQxGX1myCQ2faQrfmobMftXeJPcZGp0gS07ocvGJWDLZGyOZDadDBqYIJg==} + engines: {node: '>=18'} - pathe@2.0.3: - resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + tinyexec@1.2.4: + resolution: {integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==} + engines: {node: '>=18'} - perfect-freehand@1.2.0: - resolution: {integrity: sha512-h/0ikF1M3phW7CwpZ5MMvKnfpHficWoOEyr//KVNTxV4F6deRK1eYMtHyBKEAKFK0aXIEUK9oBvlF6PNXMDsAw==} + tinyglobby@0.2.16: + resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} + engines: {node: '>=12.0.0'} - pica@7.1.1: - resolution: {integrity: sha512-WY73tMvNzXWEld2LicT9Y260L43isrZ85tPuqRyvtkljSDLmnNFQmZICt4xUJMVulmcc6L9O7jbBrtx3DOz/YQ==} + tinyglobby@0.2.17: + resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} + engines: {node: '>=12.0.0'} - picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + tinyrainbow@3.1.0: + resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==} + engines: {node: '>=14.0.0'} - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} - picomatch@2.3.2: - resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} - engines: {node: '>=8.6'} + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} - picomatch@4.0.5: - resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} - engines: {node: '>=12'} + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - pirates@4.0.7: - resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} - engines: {node: '>= 6'} + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - pkg-types@1.3.1: - resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - playwright-core@1.62.0: - resolution: {integrity: sha512-nsNRyq0r2zsG8AcRHWknc9QRA5XCueC7gWMrs+Gx2tlZn9hcl8zudfh00lhJPY1DE7NmZ6bDsT9g2yey8mXljA==} - engines: {node: '>=20'} - hasBin: true + ts-dedent@2.2.0: + resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} + engines: {node: '>=6.10'} - playwright@1.62.0: - resolution: {integrity: sha512-Z14dG305dgaLu6foB1TXQagFiW8JfSUIUaUuPaKQ6NtBPKF1P/qXcqfh6c6K/icPqdy37JmjbiBXf6JNg6Sylw==} - engines: {node: '>=20'} - hasBin: true + ts-fsrs@5.4.1: + resolution: {integrity: sha512-mOp9+oexJexBTkwjg/jQI1aSUQRLIAvbimeKHLSmVdNJPwObugFNKmZkoggH5d6kZ0uaWLboP1Al1DnXAfIb9w==} + engines: {node: '>=20.0.0'} - png-chunk-text@1.0.0: - resolution: {integrity: sha512-DEROKU3SkkLGWNMzru3xPVgxyd48UGuMSZvioErCure6yhOc/pRH2ZV+SEn7nmaf7WNf3NdIpH+UTrRdKyq9Lw==} + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - png-chunks-encode@1.0.0: - resolution: {integrity: sha512-J1jcHgbQRsIIgx5wxW9UmCymV3wwn4qCCJl6KYgEU/yHCh/L2Mwq/nMOkRPtmV79TLxRZj5w3tH69pvygFkDqA==} + ts-morph@12.0.0: + resolution: {integrity: sha512-VHC8XgU2fFW7yO1f/b3mxKDje1vmyzFXHWzOYmKEkCEwcLjDtbdLgBQviqj4ZwP4MJkQtRo6Ha2I29lq/B+VxA==} - png-chunks-extract@1.0.0: - resolution: {integrity: sha512-ZiVwF5EJ0DNZyzAqld8BP1qyJBaGOFaq9zl579qfbkcmOwWLLO4I9L8i2O4j3HkI6/35i0nKG2n+dZplxiT89Q==} + ts-toolbelt@6.15.5: + resolution: {integrity: sha512-FZIXf1ksVyLcfr7M317jbB67XFJhOO1YqdTcuGaq9q5jLUoTikukZ+98TPjKiP2jC5CgmYdWWYs0s2nLSU0/1A==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tsx@4.21.0: + resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==} + engines: {node: '>=18.0.0'} + hasBin: true - points-on-curve@0.2.0: - resolution: {integrity: sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==} + tunnel-rat@0.1.2: + resolution: {integrity: sha512-lR5VHmkPhzdhrM092lI2nACsLO4QubF0/yoOhzX7c+wIpbN1GjHNzCc91QlpxBi+cnx8vVJ+Ur6vL5cEoQPFpQ==} - points-on-curve@1.0.1: - resolution: {integrity: sha512-3nmX4/LIiyuwGLwuUrfhTlDeQFlAhi7lyK/zcRNGhalwapDWgAGR82bUpmn2mA03vII3fvNCG8jAONzKXwpxAg==} + tw-animate-css@1.4.0: + resolution: {integrity: sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==} - points-on-path@0.2.1: - resolution: {integrity: sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==} + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true - postcss@8.5.23: - resolution: {integrity: sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==} - engines: {node: ^10 || ^12 || >=14} + typescript@6.0.3: + resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} + engines: {node: '>=14.17'} + hasBin: true - posthog-js@1.407.3: - resolution: {integrity: sha512-b9Kc7HVN6nh+xsh1JrcLYHv9bbYLwYUM9belJtNVUFZSJWWfFcZRJJP6L+KeanAeu2VxSFSpioVA39pjjolv4A==} + ufo@1.6.3: + resolution: {integrity: sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==} - preact@10.29.7: - resolution: {integrity: sha512-DCHYrK/B10yUD3ZjLfhZ3WIE/9Vf9VFUODcRE2dRomTYDpJk6z6L9wecSfhfE6M9ZTHUdyQkoC46arIDhEV84Q==} + ultracite@7.10.2: + resolution: {integrity: sha512-WP1Hu/BKy/BDgntaiU33uq2Y8hKL2gEO5li2wfg7XFvmlyIkGDEy8qbWg7GHsxTEjEpWOAKpyFSF8aqc3JNEGQ==} + hasBin: true peerDependencies: - preact-render-to-string: '>=5' + oxfmt: '>=0.1.0' + oxlint: ^1.0.0 peerDependenciesMeta: - preact-render-to-string: + oxfmt: + optional: true + oxlint: optional: true - prettier@3.9.6: - resolution: {integrity: sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==} + unbash@4.0.3: + resolution: {integrity: sha512-3cudTErfToSc4Ggv8XGXVNVli/xHKUtUZvaY5UVwhOcUPbQGz7PeaEnT/SAVgNziZtX67KEN9swMUYkLghxA1w==} engines: {node: '>=14'} - hasBin: true - pretty-ms@7.0.1: - resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} - engines: {node: '>=10'} + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - property-information@7.1.0: - resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} + undici-types@7.19.2: + resolution: {integrity: sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==} - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} + undici-types@8.3.0: + resolution: {integrity: sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==} - pwacompat@2.0.17: - resolution: {integrity: sha512-6Du7IZdIy7cHiv7AhtDy4X2QRM8IAD5DII69mt5qWibC2d15ZU8DmBG1WdZKekG11cChSu4zkSUGPF9sweOl6w==} + undici@6.29.0: + resolution: {integrity: sha512-R+RODBqp6i2pPflGdq+xIOUkl+RNfGgHwoinecKu/JCuf2uO06cOKoDbI2P7Dn6KcswdKwrczbU6IYJ6K8X+wg==} + engines: {node: '>=18.17'} - query-selector-shadow-dom@1.0.1: - resolution: {integrity: sha512-lT5yCqEBgfoMYpf3F2xQRK7zEr1rhIIZuceDK6+xRkJQ4NMbHTwXqk4NkwDwQMNqXgG9r9fyHnzwNVs6zV5KRw==} + undici@7.29.1: + resolution: {integrity: sha512-RYONW2MeafgYlkVOKYKkA/Ag7BmXqgIWCa8t1m0JcxrQg9pI9lEqRhAOruOBCbAohOa/gkCF+iPi9hrgvTzu6Q==} + engines: {node: '>=20.18.1'} - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + unenv@2.0.0-rc.24: + resolution: {integrity: sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==} - react-dom@19.2.8: - resolution: {integrity: sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==} - peerDependencies: - react: ^19.2.8 + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - react-markdown@10.1.0: - resolution: {integrity: sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==} - peerDependencies: - '@types/react': '>=18' - react: '>=18' + unist-util-find-after@5.0.0: + resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} - react-remove-scroll-bar@2.3.8: - resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} + unist-util-is@6.0.1: + resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} + + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-parents@6.0.2: + resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} + + unist-util-visit@5.1.0: + resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + use-callback-ref@1.3.3: + resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} engines: {node: '>=10'} peerDependencies: '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true - react-remove-scroll@2.7.2: - resolution: {integrity: sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==} + use-sidecar@1.1.3: + resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} engines: {node: '>=10'} peerDependencies: '@types/react': '*' @@ -4140,1896 +5203,2123 @@ packages: '@types/react': optional: true - react-resizable-panels@4.12.2: - resolution: {integrity: sha512-NwY5LCo4WrxVvDh0xoMML6EMLPONP/8ckKcIdpnojxexoatZdjLiRqLJQjQK5CPkd4SYiB/2M5BVrjZBQtOO7Q==} + use-sync-external-store@1.6.0: + resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} peerDependencies: - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-router-dom@7.18.2: - resolution: {integrity: sha512-AIKJ/jgGlFb3EbfCXk5Gzshiwt+l3mqbCrNjmEWMMjqQxNJ3svBa6bgzFyCC2Sw3RA0VWF1kg3uQf2OFhxb8hw==} - engines: {node: '>=20.0.0'} - peerDependencies: - react: '>=18' - react-dom: '>=18' + uuid@11.1.0: + resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} + hasBin: true - react-router@7.18.2: - resolution: {integrity: sha512-aUVMjFm3GAPTTZL7oYr5E7ETiqfQCHRLH+B+5afnICvf0r7kkK4eR6SMuwbSTJw/7t+12khT/Kahij49fqOCIg==} - engines: {node: '>=20.0.0'} + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). + hasBin: true + + vfile-message@4.0.3: + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} + + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + + vite@8.1.5: + resolution: {integrity: sha512-7ULLwsCdYx/nRyrpiEwvqb5TFHrMVZyBt+rg/OAXT7rgj/z+DtTDyKFeLAdDkubDVDKD8jOsndmy7m55XcfUsw==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true peerDependencies: - react: '>=18' - react-dom: '>=18' + '@types/node': ^20.19.0 || >=22.12.0 + '@vitejs/devtools': ^0.3.0 + esbuild: ^0.27.0 || ^0.28.0 + jiti: '>=1.21.0' + less: ^4.0.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 peerDependenciesMeta: - react-dom: + '@types/node': + optional: true + '@vitejs/devtools': + optional: true + esbuild: + optional: true + jiti: + optional: true + less: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: optional: true - react-style-singleton@2.2.3: - resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} - engines: {node: '>=10'} + vitest@4.1.10: + resolution: {integrity: sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw==} + engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} + hasBin: true peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + '@edge-runtime/vm': '*' + '@opentelemetry/api': ^1.9.0 + '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 + '@vitest/browser-playwright': 4.1.10 + '@vitest/browser-preview': 4.1.10 + '@vitest/browser-webdriverio': 4.1.10 + '@vitest/coverage-istanbul': 4.1.10 + '@vitest/coverage-v8': 4.1.10 + '@vitest/ui': 4.1.10 + happy-dom: '*' + jsdom: '*' + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: - '@types/react': + '@edge-runtime/vm': + optional: true + '@opentelemetry/api': + optional: true + '@types/node': + optional: true + '@vitest/browser-playwright': + optional: true + '@vitest/browser-preview': + optional: true + '@vitest/browser-webdriverio': + optional: true + '@vitest/coverage-istanbul': + optional: true + '@vitest/coverage-v8': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: optional: true - react@19.2.8: - resolution: {integrity: sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==} - engines: {node: '>=0.10.0'} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - - readdirp@4.1.2: - resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} - engines: {node: '>= 14.18.0'} - - rehype-highlight@7.0.2: - resolution: {integrity: sha512-k158pK7wdC2qL3M5NcZROZ2tR/l7zOzjxXd5VGdcfIyoijjQqpHd3JKtYSBDpDZ38UI2WJWuFAtkMDxmx5kstA==} - - remark-gfm@4.0.1: - resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} - - remark-parse@11.0.0: - resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} - - remark-rehype@11.1.2: - resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} - - remark-stringify@11.0.0: - resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} - - require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} + vscode-jsonrpc@8.2.0: + resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} + engines: {node: '>=14.0.0'} - resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + vscode-languageserver-protocol@3.17.5: + resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} - reusify@1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + vscode-languageserver-textdocument@1.0.12: + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} - robust-predicates@3.0.3: - resolution: {integrity: sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA==} + vscode-languageserver-types@3.17.5: + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} - rolldown@1.1.5: - resolution: {integrity: sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==} - engines: {node: ^20.19.0 || >=22.12.0} + vscode-languageserver@9.0.1: + resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} hasBin: true - rollup@4.62.2: - resolution: {integrity: sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true + vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} - roughjs@4.6.4: - resolution: {integrity: sha512-s6EZ0BntezkFYMf/9mGn7M8XGIoaav9QQBCnJROWB3brUWQ683Q2LbRD/hq0Z3bAJ/9NVpU/5LpiTWvQMyLDhw==} + vscode-uri@3.1.0: + resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} - roughjs@4.6.6: - resolution: {integrity: sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==} + walk-up-path@4.0.0: + resolution: {integrity: sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==} + engines: {node: 20 || >=22} - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} + engines: {node: '>= 8'} - rw@1.3.3: - resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} + web-vitals@4.2.4: + resolution: {integrity: sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==} - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + web-vitals@5.3.0: + resolution: {integrity: sha512-q6LWsLatGYZp5VGBIOvbTj6JBV2nOmC8KvWztXBmwJcfFAzhwKwbOxhUH306XY3CcaZDUlSmSuNPBsCn0bFu+g==} - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - sass@1.51.0: - resolution: {integrity: sha512-haGdpTgywJTvHC2b91GSq+clTKGbtkkZmVAb82jZQN/wTy6qs8DdFm2lhEQbEwrY0QDRgSQ3xDurqM977C3noA==} - engines: {node: '>=12.0.0'} - hasBin: true + webworkify@1.5.0: + resolution: {integrity: sha512-AMcUeyXAhbACL8S2hqqdqOLqvJ8ylmIbNwUIqQujRSouf4+eUFaXbG6F1Rbu+srlJMmxQWsiU7mOJi0nMBfM1g==} - scheduler@0.27.0: - resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} + whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} - sdp-transform@2.15.0: - resolution: {integrity: sha512-KrOH82c/W+GYQ0LHqtr3caRpM3ITglq3ljGUIb8LTki7ByacJZ9z+piSGiwZDsRyhQbYBOBJgr2k6X4BZXi3Kw==} - hasBin: true + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - semver@7.7.4: - resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} - engines: {node: '>=10'} + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} hasBin: true - semver@7.8.5: - resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} - engines: {node: '>=10'} + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} hasBin: true - set-cookie-parser@2.7.2: - resolution: {integrity: sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==} + worker-timers-broker@6.1.8: + resolution: {integrity: sha512-FUCJu9jlK3A8WqLTKXM9E6kAmI/dR1vAJ8dHYLMisLNB/n3GuaFIjJ7pn16ZcD1zCOf7P6H62lWIEBi+yz/zQQ==} - sharp@0.35.5: - resolution: {integrity: sha512-Ywn4OnzGukp7CDMrp08RQ50YKmuwG47brZgIVPTvBaaAfQlRlygrRqSrxdCiL9M+LlzLBiJ68IR1QqvzHyjC7g==} - engines: {node: '>=20.9.0'} + worker-timers-worker@7.0.71: + resolution: {integrity: sha512-ks/5YKwZsto1c2vmljroppOKCivB/ma97g9y77MAAz2TBBjPPgpoOiS1qYQKIgvGTr2QYPT3XhJWIB6Rj2MVPQ==} + + worker-timers@7.0.60: + resolution: {integrity: sha512-kom5j7+JQU0uuJAqAeFvxPpKlp21BH09YLMU/JLKA+0Zs3WTGk7WSBFYjdR3G+kjXr6qWD7zIcenv3oXaWBJzw==} + + workerd@1.20260722.1: + resolution: {integrity: sha512-NycKuc1x2onvsRfGGpM093vRlLFU2zHDAM0+APpccfg4+gZxDGCH27RmdDvkeBuoZyYqgLo3oAfF6re4mvC3vQ==} + engines: {node: '>=16'} + hasBin: true + + wrangler@4.114.0: + resolution: {integrity: sha512-M65P25t5UHA1TIJfgZXDcj+YzVobgKdRguM2QPz0xnxLFuOcuE3ErgllDht0iaho7MS4o0g/Bb4YK2+GT+bibg==} + engines: {node: '>=22.0.0'} + hasBin: true peerDependencies: - '@types/node': '*' + '@cloudflare/workers-types': ^5.20260722.1 peerDependenciesMeta: - '@types/node': + '@cloudflare/workers-types': optional: true - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} + ws@8.21.0: + resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} + ws@8.21.1: + resolution: {integrity: sha512-+0NTnW77fFN/DjQi6k/Sq/Yvk4Sgajw7urW8V+asjXnRgDs9gyGkdb7EzgfhA4goXsRIZKE28fzIXBHEzhuiWw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true - siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + yallist@5.0.0: + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + engines: {node: '>=18'} - signal-exit@4.0.2: - resolution: {integrity: sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==} - engines: {node: '>=14'} + yaml@2.9.0: + resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} + engines: {node: '>= 14.6'} + hasBin: true - sirv@3.0.2: - resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} - engines: {node: '>=18'} + youch-core@0.3.3: + resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==} - sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + youch@4.1.0-beta.10: + resolution: {integrity: sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==} - size-limit@11.2.0: - resolution: {integrity: sha512-2kpQq2DD/pRpx3Tal/qRW1SYwcIeQ0iq8li5CJHQgOC+FtPn2BVmuDtzUCgNnpCrbgtfEHqh+iWzxK+Tq6C+RQ==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true + zod@3.22.4: + resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} - sliced@1.0.1: - resolution: {integrity: sha512-VZBmZP8WU3sMOZm1bdgTadsQbcscK0UM8oKxKVBs4XAhUo2Xxzm/OFMGBkPusxw9xL3Uy8LrzEqGqJhclsr0yA==} - deprecated: Unsupported + zod@4.4.3: + resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==} - smol-toml@1.7.1: - resolution: {integrity: sha512-PPlsspAZ4jbMBu5DMFhfUGDQLu/vrL4SyBROVS37x8ynnVmFIs1VPBz1Co8Xks3TvpIaZXmU85y4DrQ+UyVFoQ==} - engines: {node: '>= 18'} + zustand@4.5.7: + resolution: {integrity: sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw==} + engines: {node: '>=12.7.0'} + peerDependencies: + '@types/react': '>=16.8' + immer: '>=9.0.6' + react: '>=16.8' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true - source-map-js@1.2.2: - resolution: {integrity: sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==} - engines: {node: '>=0.10.0'} + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - space-separated-tokens@2.0.2: - resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} +snapshots: - sql.js@1.14.1: - resolution: {integrity: sha512-gcj8zBWU5cFsi9WUP+4bFNXAyF1iRpA3LLyS/DP5xlrNzGmPIizUeBggKa8DbDwdqaKwUcTEnChtd2grWo/x/A==} + '@ai-sdk/gateway@3.0.104(zod@4.4.3)': + dependencies: + '@ai-sdk/provider': 3.0.8 + '@ai-sdk/provider-utils': 4.0.23(zod@4.4.3) + '@vercel/oidc': 3.2.0 + zod: 4.4.3 - stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + '@ai-sdk/openai-compatible@2.0.41(zod@4.4.3)': + dependencies: + '@ai-sdk/provider': 3.0.8 + '@ai-sdk/provider-utils': 4.0.23(zod@4.4.3) + zod: 4.4.3 - state-local@1.0.7: - resolution: {integrity: sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==} + '@ai-sdk/provider-utils@4.0.23(zod@4.4.3)': + dependencies: + '@ai-sdk/provider': 3.0.8 + '@standard-schema/spec': 1.1.0 + eventsource-parser: 3.0.8 + zod: 4.4.3 - std-env@4.2.0: - resolution: {integrity: sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==} + '@ai-sdk/provider@3.0.8': + dependencies: + json-schema: 0.4.0 - stringify-entities@4.0.4: - resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + '@antfu/install-pkg@1.1.0': + dependencies: + package-manager-detector: 1.6.0 + tinyexec: 1.1.1 - strip-json-comments@5.0.3: - resolution: {integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==} - engines: {node: '>=14.16'} + '@babel/helper-string-parser@7.27.1': {} - style-to-js@1.1.21: - resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==} + '@babel/helper-string-parser@7.29.7': {} - style-to-object@1.0.14: - resolution: {integrity: sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==} + '@babel/helper-validator-identifier@7.28.5': {} - stylis@4.4.0: - resolution: {integrity: sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==} + '@babel/helper-validator-identifier@7.29.7': {} - sucrase@3.35.1: - resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true + '@babel/parser@7.29.7': + dependencies: + '@babel/types': 7.29.7 - supports-color@10.2.2: - resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} - engines: {node: '>=18'} + '@babel/runtime@7.29.2': {} - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} + '@babel/types@7.29.0': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 - tailwind-merge@3.6.0: - resolution: {integrity: sha512-uxL7qAVQriqRQPAyK3pj66VqskWqoZ37PW94jwOTwNfq/z9oyu1V+eqrZqtR2+fCiXdYOZe/Modt8GtvqNzu+w==} + '@babel/types@7.29.7': + dependencies: + '@babel/helper-string-parser': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 - tailwindcss@4.3.3: - resolution: {integrity: sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ==} + '@bcoe/v8-coverage@1.0.2': {} - tapable@2.3.3: - resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} - engines: {node: '>=6'} + '@biomejs/biome@2.5.5': + optionalDependencies: + '@biomejs/cli-darwin-arm64': 2.5.5 + '@biomejs/cli-darwin-x64': 2.5.5 + '@biomejs/cli-linux-arm64': 2.5.5 + '@biomejs/cli-linux-arm64-musl': 2.5.5 + '@biomejs/cli-linux-x64': 2.5.5 + '@biomejs/cli-linux-x64-musl': 2.5.5 + '@biomejs/cli-win32-arm64': 2.5.5 + '@biomejs/cli-win32-x64': 2.5.5 - tar@7.5.22: - resolution: {integrity: sha512-MFO/QzvtAOmJbkhOaCTvbGcFN9L9b+JunIsDwaKljSOdcLMea3NJ1k9Usz/rjdfSXTq4dfzfeS7W4p4YOAAHeA==} - engines: {node: '>=18'} + '@biomejs/cli-darwin-arm64@2.5.5': + optional: true - thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} + '@biomejs/cli-darwin-x64@2.5.5': + optional: true - thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + '@biomejs/cli-linux-arm64-musl@2.5.5': + optional: true - time-span@4.0.0: - resolution: {integrity: sha512-MyqZCTGLDZ77u4k+jqg4UlrzPTPZ49NDlaekU6uuFaJLzPIN1woaRXCbGeqOfxwc3Y37ZROGAJ614Rdv7Olt+g==} - engines: {node: '>=10'} + '@biomejs/cli-linux-arm64@2.5.5': + optional: true - tinybench@2.9.0: - resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + '@biomejs/cli-linux-x64-musl@2.5.5': + optional: true - tinyexec@1.1.1: - resolution: {integrity: sha512-VKS/ZaQhhkKFMANmAOhhXVoIfBXblQxGX1myCQ2faQrfmobMftXeJPcZGp0gS07ocvGJWDLZGyOZDadDBqYIJg==} - engines: {node: '>=18'} + '@biomejs/cli-linux-x64@2.5.5': + optional: true - tinyexec@1.2.4: - resolution: {integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==} - engines: {node: '>=18'} + '@biomejs/cli-win32-arm64@2.5.5': + optional: true - tinyglobby@0.2.16: - resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} - engines: {node: '>=12.0.0'} + '@biomejs/cli-win32-x64@2.5.5': + optional: true - tinyglobby@0.2.17: - resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} - engines: {node: '>=12.0.0'} + '@braintree/sanitize-url@6.0.2': {} - tinyrainbow@3.1.0: - resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==} - engines: {node: '>=14.0.0'} + '@braintree/sanitize-url@7.1.2': {} - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + '@bytecodealliance/preview2-shim@0.17.6': {} - totalist@3.0.1: - resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} - engines: {node: '>=6'} + '@chevrotain/cst-dts-gen@11.0.3': + dependencies: + '@chevrotain/gast': 11.0.3 + '@chevrotain/types': 11.0.3 + lodash-es: 4.18.1 - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + '@chevrotain/cst-dts-gen@12.0.0': + dependencies: + '@chevrotain/gast': 12.0.0 + '@chevrotain/types': 12.0.0 - trim-lines@3.0.1: - resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + '@chevrotain/gast@11.0.3': + dependencies: + '@chevrotain/types': 11.0.3 + lodash-es: 4.18.1 - trough@2.2.0: - resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + '@chevrotain/gast@12.0.0': + dependencies: + '@chevrotain/types': 12.0.0 - ts-dedent@2.2.0: - resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} - engines: {node: '>=6.10'} + '@chevrotain/regexp-to-ast@11.0.3': {} - ts-fsrs@5.4.1: - resolution: {integrity: sha512-mOp9+oexJexBTkwjg/jQI1aSUQRLIAvbimeKHLSmVdNJPwObugFNKmZkoggH5d6kZ0uaWLboP1Al1DnXAfIb9w==} - engines: {node: '>=20.0.0'} + '@chevrotain/regexp-to-ast@12.0.0': {} - ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + '@chevrotain/types@11.0.3': {} - ts-morph@12.0.0: - resolution: {integrity: sha512-VHC8XgU2fFW7yO1f/b3mxKDje1vmyzFXHWzOYmKEkCEwcLjDtbdLgBQviqj4ZwP4MJkQtRo6Ha2I29lq/B+VxA==} + '@chevrotain/types@12.0.0': {} - ts-toolbelt@6.15.5: - resolution: {integrity: sha512-FZIXf1ksVyLcfr7M317jbB67XFJhOO1YqdTcuGaq9q5jLUoTikukZ+98TPjKiP2jC5CgmYdWWYs0s2nLSU0/1A==} + '@chevrotain/utils@11.0.3': {} - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + '@chevrotain/utils@12.0.0': {} - tsx@4.21.0: - resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==} - engines: {node: '>=18.0.0'} - hasBin: true + '@clack/core@1.4.3': + dependencies: + fast-wrap-ansi: 0.2.2 + sisteransi: 1.0.5 - tunnel-rat@0.1.2: - resolution: {integrity: sha512-lR5VHmkPhzdhrM092lI2nACsLO4QubF0/yoOhzX7c+wIpbN1GjHNzCc91QlpxBi+cnx8vVJ+Ur6vL5cEoQPFpQ==} + '@clack/prompts@1.7.0': + dependencies: + '@clack/core': 1.4.3 + fast-string-width: 3.0.2 + fast-wrap-ansi: 0.2.2 + sisteransi: 1.0.5 - typescript@5.9.3: - resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} - engines: {node: '>=14.17'} - hasBin: true + '@cloudflare/kv-asset-handler@0.5.0': {} - typescript@6.0.3: - resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} - engines: {node: '>=14.17'} - hasBin: true + '@cloudflare/realtimekit-react@2.0.1(react@19.2.8)': + dependencies: + '@cloudflare/realtimekit': 2.0.1 + react: 19.2.8 - ufo@1.6.3: - resolution: {integrity: sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==} + '@cloudflare/realtimekit@2.0.1': + dependencies: + '@protobuf-ts/runtime': 2.11.1 + bowser: 2.14.1 + sdp-transform: 2.15.0 + uuid: 8.3.2 + worker-timers: 7.0.60 - ultracite@7.10.2: - resolution: {integrity: sha512-WP1Hu/BKy/BDgntaiU33uq2Y8hKL2gEO5li2wfg7XFvmlyIkGDEy8qbWg7GHsxTEjEpWOAKpyFSF8aqc3JNEGQ==} - hasBin: true - peerDependencies: - oxfmt: '>=0.1.0' - oxlint: ^1.0.0 - peerDependenciesMeta: - oxfmt: - optional: true - oxlint: - optional: true + '@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260722.1)': + dependencies: + unenv: 2.0.0-rc.24 + optionalDependencies: + workerd: 1.20260722.1 - unbash@4.0.3: - resolution: {integrity: sha512-3cudTErfToSc4Ggv8XGXVNVli/xHKUtUZvaY5UVwhOcUPbQGz7PeaEnT/SAVgNziZtX67KEN9swMUYkLghxA1w==} - engines: {node: '>=14'} + '@cloudflare/workerd-darwin-64@1.20260722.1': + optional: true - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + '@cloudflare/workerd-darwin-arm64@1.20260722.1': + optional: true - undici-types@7.19.2: - resolution: {integrity: sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==} + '@cloudflare/workerd-linux-64@1.20260722.1': + optional: true - undici-types@8.3.0: - resolution: {integrity: sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==} + '@cloudflare/workerd-linux-arm64@1.20260722.1': + optional: true - undici@6.29.0: - resolution: {integrity: sha512-R+RODBqp6i2pPflGdq+xIOUkl+RNfGgHwoinecKu/JCuf2uO06cOKoDbI2P7Dn6KcswdKwrczbU6IYJ6K8X+wg==} - engines: {node: '>=18.17'} + '@cloudflare/workerd-windows-64@1.20260722.1': + optional: true - undici@7.29.1: - resolution: {integrity: sha512-RYONW2MeafgYlkVOKYKkA/Ag7BmXqgIWCa8t1m0JcxrQg9pI9lEqRhAOruOBCbAohOa/gkCF+iPi9hrgvTzu6Q==} - engines: {node: '>=20.18.1'} + '@cspotcode/source-map-support@0.8.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.9 - unenv@2.0.0-rc.24: - resolution: {integrity: sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==} + '@edge-runtime/format@2.2.1': {} - unified@11.0.5: - resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + '@edge-runtime/node-utils@2.3.0': {} - unist-util-find-after@5.0.0: - resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} + '@edge-runtime/ponyfill@2.4.2': {} - unist-util-is@6.0.1: - resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} + '@edge-runtime/primitives@4.1.0': {} - unist-util-position@5.0.0: - resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + '@edge-runtime/vm@3.2.0': + dependencies: + '@edge-runtime/primitives': 4.1.0 - unist-util-stringify-position@4.0.0: - resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + '@emnapi/core@1.11.1': + dependencies: + '@emnapi/wasi-threads': 1.2.2 + tslib: 2.8.1 + optional: true - unist-util-visit-parents@6.0.2: - resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} + '@emnapi/core@1.11.2': + dependencies: + '@emnapi/wasi-threads': 1.2.2 + tslib: 2.8.1 + optional: true - unist-util-visit@5.1.0: - resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} + '@emnapi/runtime@1.11.1': + dependencies: + tslib: 2.8.1 + optional: true - universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} + '@emnapi/runtime@1.11.2': + dependencies: + tslib: 2.8.1 + optional: true - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + '@emnapi/runtime@1.11.3': + dependencies: + tslib: 2.8.1 + optional: true - use-callback-ref@1.3.3: - resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + '@emnapi/wasi-threads@1.2.2': + dependencies: + tslib: 2.8.1 + optional: true - use-sidecar@1.1.3: - resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + '@esbuild/aix-ppc64@0.27.0': + optional: true - use-sync-external-store@1.6.0: - resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + '@esbuild/aix-ppc64@0.27.3': + optional: true - uuid@11.1.0: - resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} - hasBin: true + '@esbuild/aix-ppc64@0.28.1': + optional: true - uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). - hasBin: true + '@esbuild/android-arm64@0.27.0': + optional: true - vfile-message@4.0.3: - resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} + '@esbuild/android-arm64@0.27.3': + optional: true - vfile@6.0.3: - resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + '@esbuild/android-arm64@0.28.1': + optional: true - vite@8.1.5: - resolution: {integrity: sha512-7ULLwsCdYx/nRyrpiEwvqb5TFHrMVZyBt+rg/OAXT7rgj/z+DtTDyKFeLAdDkubDVDKD8jOsndmy7m55XcfUsw==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - peerDependencies: - '@types/node': ^20.19.0 || >=22.12.0 - '@vitejs/devtools': ^0.3.0 - esbuild: ^0.27.0 || ^0.28.0 - jiti: '>=1.21.0' - less: ^4.0.0 - sass: ^1.70.0 - sass-embedded: ^1.70.0 - stylus: '>=0.54.8' - sugarss: ^5.0.0 - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - '@vitejs/devtools': - optional: true - esbuild: - optional: true - jiti: - optional: true - less: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true + '@esbuild/android-arm@0.27.0': + optional: true - vitest@4.1.10: - resolution: {integrity: sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw==} - engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@opentelemetry/api': ^1.9.0 - '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.1.10 - '@vitest/browser-preview': 4.1.10 - '@vitest/browser-webdriverio': 4.1.10 - '@vitest/coverage-istanbul': 4.1.10 - '@vitest/coverage-v8': 4.1.10 - '@vitest/ui': 4.1.10 - happy-dom: '*' - jsdom: '*' - vite: ^6.0.0 || ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@opentelemetry/api': - optional: true - '@types/node': - optional: true - '@vitest/browser-playwright': - optional: true - '@vitest/browser-preview': - optional: true - '@vitest/browser-webdriverio': - optional: true - '@vitest/coverage-istanbul': - optional: true - '@vitest/coverage-v8': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true + '@esbuild/android-arm@0.27.3': + optional: true - vscode-jsonrpc@8.2.0: - resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} - engines: {node: '>=14.0.0'} + '@esbuild/android-arm@0.28.1': + optional: true - vscode-languageserver-protocol@3.17.5: - resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} + '@esbuild/android-x64@0.27.0': + optional: true - vscode-languageserver-textdocument@1.0.12: - resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + '@esbuild/android-x64@0.27.3': + optional: true - vscode-languageserver-types@3.17.5: - resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + '@esbuild/android-x64@0.28.1': + optional: true - vscode-languageserver@9.0.1: - resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} - hasBin: true + '@esbuild/darwin-arm64@0.27.0': + optional: true - vscode-uri@3.0.8: - resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + '@esbuild/darwin-arm64@0.27.3': + optional: true - vscode-uri@3.1.0: - resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} + '@esbuild/darwin-arm64@0.28.1': + optional: true - walk-up-path@4.0.0: - resolution: {integrity: sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==} - engines: {node: 20 || >=22} + '@esbuild/darwin-x64@0.27.0': + optional: true - web-streams-polyfill@3.3.3: - resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} - engines: {node: '>= 8'} + '@esbuild/darwin-x64@0.27.3': + optional: true - web-vitals@4.2.4: - resolution: {integrity: sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==} + '@esbuild/darwin-x64@0.28.1': + optional: true - web-vitals@5.3.0: - resolution: {integrity: sha512-q6LWsLatGYZp5VGBIOvbTj6JBV2nOmC8KvWztXBmwJcfFAzhwKwbOxhUH306XY3CcaZDUlSmSuNPBsCn0bFu+g==} + '@esbuild/freebsd-arm64@0.27.0': + optional: true - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + '@esbuild/freebsd-arm64@0.27.3': + optional: true - webworkify@1.5.0: - resolution: {integrity: sha512-AMcUeyXAhbACL8S2hqqdqOLqvJ8ylmIbNwUIqQujRSouf4+eUFaXbG6F1Rbu+srlJMmxQWsiU7mOJi0nMBfM1g==} + '@esbuild/freebsd-arm64@0.28.1': + optional: true - whatwg-mimetype@3.0.0: - resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} - engines: {node: '>=12'} + '@esbuild/freebsd-x64@0.27.0': + optional: true - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + '@esbuild/freebsd-x64@0.27.3': + optional: true - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true + '@esbuild/freebsd-x64@0.28.1': + optional: true - why-is-node-running@2.3.0: - resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} - engines: {node: '>=8'} - hasBin: true + '@esbuild/linux-arm64@0.27.0': + optional: true - worker-timers-broker@6.1.8: - resolution: {integrity: sha512-FUCJu9jlK3A8WqLTKXM9E6kAmI/dR1vAJ8dHYLMisLNB/n3GuaFIjJ7pn16ZcD1zCOf7P6H62lWIEBi+yz/zQQ==} + '@esbuild/linux-arm64@0.27.3': + optional: true - worker-timers-worker@7.0.71: - resolution: {integrity: sha512-ks/5YKwZsto1c2vmljroppOKCivB/ma97g9y77MAAz2TBBjPPgpoOiS1qYQKIgvGTr2QYPT3XhJWIB6Rj2MVPQ==} + '@esbuild/linux-arm64@0.28.1': + optional: true - worker-timers@7.0.60: - resolution: {integrity: sha512-kom5j7+JQU0uuJAqAeFvxPpKlp21BH09YLMU/JLKA+0Zs3WTGk7WSBFYjdR3G+kjXr6qWD7zIcenv3oXaWBJzw==} + '@esbuild/linux-arm@0.27.0': + optional: true - workerd@1.20260722.1: - resolution: {integrity: sha512-NycKuc1x2onvsRfGGpM093vRlLFU2zHDAM0+APpccfg4+gZxDGCH27RmdDvkeBuoZyYqgLo3oAfF6re4mvC3vQ==} - engines: {node: '>=16'} - hasBin: true + '@esbuild/linux-arm@0.27.3': + optional: true - wrangler@4.114.0: - resolution: {integrity: sha512-M65P25t5UHA1TIJfgZXDcj+YzVobgKdRguM2QPz0xnxLFuOcuE3ErgllDht0iaho7MS4o0g/Bb4YK2+GT+bibg==} - engines: {node: '>=22.0.0'} - hasBin: true - peerDependencies: - '@cloudflare/workers-types': ^5.20260722.1 - peerDependenciesMeta: - '@cloudflare/workers-types': - optional: true + '@esbuild/linux-arm@0.28.1': + optional: true - ws@8.21.0: - resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true + '@esbuild/linux-ia32@0.27.0': + optional: true + + '@esbuild/linux-ia32@0.27.3': + optional: true - ws@8.21.1: - resolution: {integrity: sha512-+0NTnW77fFN/DjQi6k/Sq/Yvk4Sgajw7urW8V+asjXnRgDs9gyGkdb7EzgfhA4goXsRIZKE28fzIXBHEzhuiWw==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true + '@esbuild/linux-ia32@0.28.1': + optional: true - yallist@5.0.0: - resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} - engines: {node: '>=18'} + '@esbuild/linux-loong64@0.27.0': + optional: true - yaml@2.9.0: - resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} - engines: {node: '>= 14.6'} - hasBin: true + '@esbuild/linux-loong64@0.27.3': + optional: true - youch-core@0.3.3: - resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==} + '@esbuild/linux-loong64@0.28.1': + optional: true - youch@4.1.0-beta.10: - resolution: {integrity: sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==} + '@esbuild/linux-mips64el@0.27.0': + optional: true - zod@3.22.4: - resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} + '@esbuild/linux-mips64el@0.27.3': + optional: true - zod@4.4.3: - resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==} + '@esbuild/linux-mips64el@0.28.1': + optional: true - zustand@4.5.7: - resolution: {integrity: sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw==} - engines: {node: '>=12.7.0'} - peerDependencies: - '@types/react': '>=16.8' - immer: '>=9.0.6' - react: '>=16.8' - peerDependenciesMeta: - '@types/react': - optional: true - immer: - optional: true - react: - optional: true + '@esbuild/linux-ppc64@0.27.0': + optional: true - zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + '@esbuild/linux-ppc64@0.27.3': + optional: true -snapshots: + '@esbuild/linux-ppc64@0.28.1': + optional: true - '@ai-sdk/gateway@3.0.104(zod@4.4.3)': - dependencies: - '@ai-sdk/provider': 3.0.8 - '@ai-sdk/provider-utils': 4.0.23(zod@4.4.3) - '@vercel/oidc': 3.2.0 - zod: 4.4.3 + '@esbuild/linux-riscv64@0.27.0': + optional: true - '@ai-sdk/openai-compatible@2.0.41(zod@4.4.3)': - dependencies: - '@ai-sdk/provider': 3.0.8 - '@ai-sdk/provider-utils': 4.0.23(zod@4.4.3) - zod: 4.4.3 + '@esbuild/linux-riscv64@0.27.3': + optional: true - '@ai-sdk/provider-utils@4.0.23(zod@4.4.3)': - dependencies: - '@ai-sdk/provider': 3.0.8 - '@standard-schema/spec': 1.1.0 - eventsource-parser: 3.0.8 - zod: 4.4.3 + '@esbuild/linux-riscv64@0.28.1': + optional: true - '@ai-sdk/provider@3.0.8': - dependencies: - json-schema: 0.4.0 + '@esbuild/linux-s390x@0.27.0': + optional: true - '@antfu/install-pkg@1.1.0': - dependencies: - package-manager-detector: 1.6.0 - tinyexec: 1.1.1 + '@esbuild/linux-s390x@0.27.3': + optional: true - '@babel/helper-string-parser@7.27.1': {} + '@esbuild/linux-s390x@0.28.1': + optional: true - '@babel/helper-string-parser@7.29.7': {} + '@esbuild/linux-x64@0.27.0': + optional: true - '@babel/helper-validator-identifier@7.28.5': {} + '@esbuild/linux-x64@0.27.3': + optional: true - '@babel/helper-validator-identifier@7.29.7': {} + '@esbuild/linux-x64@0.28.1': + optional: true - '@babel/parser@7.29.7': - dependencies: - '@babel/types': 7.29.7 + '@esbuild/netbsd-arm64@0.27.0': + optional: true - '@babel/runtime@7.29.2': {} + '@esbuild/netbsd-arm64@0.27.3': + optional: true - '@babel/types@7.29.0': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 + '@esbuild/netbsd-arm64@0.28.1': + optional: true - '@babel/types@7.29.7': - dependencies: - '@babel/helper-string-parser': 7.29.7 - '@babel/helper-validator-identifier': 7.29.7 + '@esbuild/netbsd-x64@0.27.0': + optional: true - '@bcoe/v8-coverage@1.0.2': {} + '@esbuild/netbsd-x64@0.27.3': + optional: true - '@biomejs/biome@2.5.5': - optionalDependencies: - '@biomejs/cli-darwin-arm64': 2.5.5 - '@biomejs/cli-darwin-x64': 2.5.5 - '@biomejs/cli-linux-arm64': 2.5.5 - '@biomejs/cli-linux-arm64-musl': 2.5.5 - '@biomejs/cli-linux-x64': 2.5.5 - '@biomejs/cli-linux-x64-musl': 2.5.5 - '@biomejs/cli-win32-arm64': 2.5.5 - '@biomejs/cli-win32-x64': 2.5.5 + '@esbuild/netbsd-x64@0.28.1': + optional: true - '@biomejs/cli-darwin-arm64@2.5.5': + '@esbuild/openbsd-arm64@0.27.0': optional: true - '@biomejs/cli-darwin-x64@2.5.5': + '@esbuild/openbsd-arm64@0.27.3': optional: true - '@biomejs/cli-linux-arm64-musl@2.5.5': + '@esbuild/openbsd-arm64@0.28.1': optional: true - '@biomejs/cli-linux-arm64@2.5.5': + '@esbuild/openbsd-x64@0.27.0': optional: true - '@biomejs/cli-linux-x64-musl@2.5.5': + '@esbuild/openbsd-x64@0.27.3': optional: true - '@biomejs/cli-linux-x64@2.5.5': + '@esbuild/openbsd-x64@0.28.1': optional: true - '@biomejs/cli-win32-arm64@2.5.5': + '@esbuild/openharmony-arm64@0.27.0': optional: true - '@biomejs/cli-win32-x64@2.5.5': + '@esbuild/openharmony-arm64@0.27.3': optional: true - '@braintree/sanitize-url@6.0.2': {} + '@esbuild/openharmony-arm64@0.28.1': + optional: true - '@braintree/sanitize-url@7.1.2': {} + '@esbuild/sunos-x64@0.27.0': + optional: true - '@bytecodealliance/preview2-shim@0.17.6': {} + '@esbuild/sunos-x64@0.27.3': + optional: true - '@chevrotain/cst-dts-gen@11.0.3': - dependencies: - '@chevrotain/gast': 11.0.3 - '@chevrotain/types': 11.0.3 - lodash-es: 4.18.1 + '@esbuild/sunos-x64@0.28.1': + optional: true - '@chevrotain/cst-dts-gen@12.0.0': - dependencies: - '@chevrotain/gast': 12.0.0 - '@chevrotain/types': 12.0.0 + '@esbuild/win32-arm64@0.27.0': + optional: true - '@chevrotain/gast@11.0.3': - dependencies: - '@chevrotain/types': 11.0.3 - lodash-es: 4.18.1 + '@esbuild/win32-arm64@0.27.3': + optional: true - '@chevrotain/gast@12.0.0': - dependencies: - '@chevrotain/types': 12.0.0 + '@esbuild/win32-arm64@0.28.1': + optional: true - '@chevrotain/regexp-to-ast@11.0.3': {} + '@esbuild/win32-ia32@0.27.0': + optional: true - '@chevrotain/regexp-to-ast@12.0.0': {} + '@esbuild/win32-ia32@0.27.3': + optional: true - '@chevrotain/types@11.0.3': {} + '@esbuild/win32-ia32@0.28.1': + optional: true - '@chevrotain/types@12.0.0': {} + '@esbuild/win32-x64@0.27.0': + optional: true - '@chevrotain/utils@11.0.3': {} + '@esbuild/win32-x64@0.27.3': + optional: true - '@chevrotain/utils@12.0.0': {} + '@esbuild/win32-x64@0.28.1': + optional: true - '@clack/core@1.4.3': + '@excalidraw/excalidraw@0.18.1(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - fast-wrap-ansi: 0.2.2 - sisteransi: 1.0.5 + '@braintree/sanitize-url': 6.0.2 + '@excalidraw/laser-pointer': 1.3.1 + '@excalidraw/mermaid-to-excalidraw': 2.2.2 + '@excalidraw/random-username': 1.1.0 + '@radix-ui/react-popover': 1.1.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-tabs': 1.0.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + browser-fs-access: 0.29.1 + canvas-roundrect-polyfill: 0.0.1 + clsx: 1.1.1 + cross-env: 7.0.3 + es6-promise-pool: 2.5.0 + fractional-indexing: 3.2.0 + fuzzy: 0.1.3 + image-blob-reduce: 3.0.1 + jotai: 2.11.0(@types/react@19.2.17)(react@19.2.8) + jotai-scope: 0.7.2(jotai@2.11.0(@types/react@19.2.17)(react@19.2.8))(react@19.2.8) + lodash.debounce: 4.0.8 + lodash.throttle: 4.1.1 + nanoid: 3.3.18 + open-color: 1.9.1 + pako: 2.0.3 + perfect-freehand: 1.2.0 + pica: 7.1.1 + png-chunk-text: 1.0.0 + png-chunks-encode: 1.0.0 + png-chunks-extract: 1.0.0 + points-on-curve: 1.0.1 + pwacompat: 2.0.17 + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + roughjs: 4.6.4 + sass: 1.51.0 + tunnel-rat: 0.1.2(@types/react@19.2.17)(react@19.2.8) + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + - immer + + '@excalidraw/laser-pointer@1.3.1': {} + + '@excalidraw/markdown-to-text@0.1.2': {} - '@clack/prompts@1.7.0': + '@excalidraw/mermaid-to-excalidraw@2.2.2': dependencies: - '@clack/core': 1.4.3 - fast-string-width: 3.0.2 - fast-wrap-ansi: 0.2.2 - sisteransi: 1.0.5 + '@excalidraw/markdown-to-text': 0.1.2 + '@mermaid-js/parser': 0.6.3 + mermaid: 11.14.0 + nanoid: 5.1.16 - '@cloudflare/kv-asset-handler@0.5.0': {} + '@excalidraw/random-username@1.1.0': {} - '@cloudflare/realtimekit-react@2.0.1(react@19.2.8)': + '@floating-ui/core@1.7.5': dependencies: - '@cloudflare/realtimekit': 2.0.1 - react: 19.2.8 + '@floating-ui/utils': 0.2.11 - '@cloudflare/realtimekit@2.0.1': + '@floating-ui/core@1.8.0': dependencies: - '@protobuf-ts/runtime': 2.11.1 - bowser: 2.14.1 - sdp-transform: 2.15.0 - uuid: 8.3.2 - worker-timers: 7.0.60 + '@floating-ui/utils': 0.2.12 - '@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260722.1)': + '@floating-ui/dom@1.7.6': dependencies: - unenv: 2.0.0-rc.24 - optionalDependencies: - workerd: 1.20260722.1 - - '@cloudflare/workerd-darwin-64@1.20260722.1': - optional: true - - '@cloudflare/workerd-darwin-arm64@1.20260722.1': - optional: true - - '@cloudflare/workerd-linux-64@1.20260722.1': - optional: true - - '@cloudflare/workerd-linux-arm64@1.20260722.1': - optional: true + '@floating-ui/core': 1.7.5 + '@floating-ui/utils': 0.2.11 - '@cloudflare/workerd-windows-64@1.20260722.1': - optional: true + '@floating-ui/dom@1.8.0': + dependencies: + '@floating-ui/core': 1.8.0 + '@floating-ui/utils': 0.2.12 - '@cspotcode/source-map-support@0.8.1': + '@floating-ui/react-dom@2.1.8(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@jridgewell/trace-mapping': 0.3.9 + '@floating-ui/dom': 1.7.6 + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) - '@edge-runtime/format@2.2.1': {} + '@floating-ui/react-dom@2.1.9(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + dependencies: + '@floating-ui/dom': 1.8.0 + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) - '@edge-runtime/node-utils@2.3.0': {} + '@floating-ui/utils@0.2.11': {} - '@edge-runtime/ponyfill@2.4.2': {} + '@floating-ui/utils@0.2.12': {} - '@edge-runtime/primitives@4.1.0': {} + '@iconify/types@2.0.0': {} - '@edge-runtime/vm@3.2.0': + '@iconify/utils@3.1.1': dependencies: - '@edge-runtime/primitives': 4.1.0 + '@antfu/install-pkg': 1.1.0 + '@iconify/types': 2.0.0 + mlly: 1.8.2 - '@emnapi/core@1.11.1': - dependencies: - '@emnapi/wasi-threads': 1.2.2 - tslib: 2.8.1 - optional: true + '@img/colour@1.1.0': {} - '@emnapi/core@1.11.2': - dependencies: - '@emnapi/wasi-threads': 1.2.2 - tslib: 2.8.1 + '@img/sharp-darwin-arm64@0.35.5': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.3.4 optional: true - '@emnapi/runtime@1.11.1': - dependencies: - tslib: 2.8.1 + '@img/sharp-darwin-x64@0.35.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.3.4 optional: true - '@emnapi/runtime@1.11.2': + '@img/sharp-freebsd-wasm32@0.35.5': dependencies: - tslib: 2.8.1 + '@img/sharp-wasm32': 0.35.5 optional: true - '@emnapi/runtime@1.11.3': - dependencies: - tslib: 2.8.1 + '@img/sharp-libvips-darwin-arm64@1.3.4': optional: true - '@emnapi/wasi-threads@1.2.2': - dependencies: - tslib: 2.8.1 + '@img/sharp-libvips-darwin-x64@1.3.4': optional: true - '@esbuild/aix-ppc64@0.27.0': + '@img/sharp-libvips-linux-arm64@1.3.4': optional: true - '@esbuild/aix-ppc64@0.27.3': + '@img/sharp-libvips-linux-arm@1.3.4': optional: true - '@esbuild/aix-ppc64@0.28.1': + '@img/sharp-libvips-linux-ppc64@1.3.4': optional: true - '@esbuild/android-arm64@0.27.0': + '@img/sharp-libvips-linux-riscv64@1.3.4': optional: true - '@esbuild/android-arm64@0.27.3': + '@img/sharp-libvips-linux-s390x@1.3.4': optional: true - '@esbuild/android-arm64@0.28.1': + '@img/sharp-libvips-linux-x64@1.3.4': optional: true - '@esbuild/android-arm@0.27.0': + '@img/sharp-libvips-linuxmusl-arm64@1.3.4': optional: true - '@esbuild/android-arm@0.27.3': + '@img/sharp-libvips-linuxmusl-x64@1.3.4': optional: true - '@esbuild/android-arm@0.28.1': + '@img/sharp-linux-arm64@0.35.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.3.4 optional: true - '@esbuild/android-x64@0.27.0': + '@img/sharp-linux-arm@0.35.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.3.4 optional: true - '@esbuild/android-x64@0.27.3': + '@img/sharp-linux-ppc64@0.35.5': + optionalDependencies: + '@img/sharp-libvips-linux-ppc64': 1.3.4 optional: true - '@esbuild/android-x64@0.28.1': + '@img/sharp-linux-riscv64@0.35.5': + optionalDependencies: + '@img/sharp-libvips-linux-riscv64': 1.3.4 optional: true - '@esbuild/darwin-arm64@0.27.0': + '@img/sharp-linux-s390x@0.35.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.3.4 optional: true - '@esbuild/darwin-arm64@0.27.3': + '@img/sharp-linux-x64@0.35.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.3.4 optional: true - '@esbuild/darwin-arm64@0.28.1': + '@img/sharp-linuxmusl-arm64@0.35.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.3.4 optional: true - '@esbuild/darwin-x64@0.27.0': + '@img/sharp-linuxmusl-x64@0.35.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.3.4 optional: true - '@esbuild/darwin-x64@0.27.3': + '@img/sharp-wasm32@0.35.5': + dependencies: + '@emnapi/runtime': 1.11.3 optional: true - '@esbuild/darwin-x64@0.28.1': + '@img/sharp-webcontainers-wasm32@0.35.5': + dependencies: + '@img/sharp-wasm32': 0.35.5 optional: true - '@esbuild/freebsd-arm64@0.27.0': + '@img/sharp-win32-arm64@0.35.5': optional: true - '@esbuild/freebsd-arm64@0.27.3': + '@img/sharp-win32-ia32@0.35.5': optional: true - '@esbuild/freebsd-arm64@0.28.1': + '@img/sharp-win32-x64@0.35.5': optional: true - '@esbuild/freebsd-x64@0.27.0': - optional: true + '@isaacs/fs-minipass@4.0.1': + dependencies: + minipass: 7.1.3 - '@esbuild/freebsd-x64@0.27.3': - optional: true + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 - '@esbuild/freebsd-x64@0.28.1': - optional: true + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 - '@esbuild/linux-arm64@0.27.0': - optional: true + '@jridgewell/resolve-uri@3.1.2': {} - '@esbuild/linux-arm64@0.27.3': - optional: true + '@jridgewell/sourcemap-codec@1.5.5': {} - '@esbuild/linux-arm64@0.28.1': - optional: true + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 - '@esbuild/linux-arm@0.27.0': - optional: true + '@jridgewell/trace-mapping@0.3.9': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 - '@esbuild/linux-arm@0.27.3': - optional: true + '@mapbox/node-pre-gyp@2.0.3': + dependencies: + consola: 3.4.2 + detect-libc: 2.1.2 + https-proxy-agent: 7.0.6 + node-fetch: 2.7.0 + nopt: 8.1.0 + semver: 7.8.5 + tar: 7.5.22 + transitivePeerDependencies: + - encoding + - supports-color - '@esbuild/linux-arm@0.28.1': - optional: true + '@mermaid-js/parser@0.6.3': + dependencies: + langium: 3.3.1 - '@esbuild/linux-ia32@0.27.0': - optional: true + '@mermaid-js/parser@1.1.0': + dependencies: + langium: 4.2.2 - '@esbuild/linux-ia32@0.27.3': - optional: true + '@monaco-editor/loader@1.7.0': + dependencies: + state-local: 1.0.7 - '@esbuild/linux-ia32@0.28.1': + '@monaco-editor/react@4.7.0(monaco-editor@0.55.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + dependencies: + '@monaco-editor/loader': 1.7.0 + monaco-editor: 0.55.1 + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + + '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': + dependencies: + '@emnapi/core': 1.11.1 + '@emnapi/runtime': 1.11.1 + '@tybys/wasm-util': 0.10.3 optional: true - '@esbuild/linux-loong64@0.27.0': + '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)': + dependencies: + '@emnapi/core': 1.11.2 + '@emnapi/runtime': 1.11.2 + '@tybys/wasm-util': 0.10.3 optional: true - '@esbuild/linux-loong64@0.27.3': - optional: true + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} - '@esbuild/linux-loong64@0.28.1': - optional: true + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.20.1 - '@esbuild/linux-mips64el@0.27.0': - optional: true + '@opentelemetry/api@1.9.0': {} - '@esbuild/linux-mips64el@0.27.3': + '@oxc-parser/binding-android-arm-eabi@0.140.0': optional: true - '@esbuild/linux-mips64el@0.28.1': + '@oxc-parser/binding-android-arm64@0.140.0': optional: true - '@esbuild/linux-ppc64@0.27.0': + '@oxc-parser/binding-darwin-arm64@0.140.0': optional: true - '@esbuild/linux-ppc64@0.27.3': + '@oxc-parser/binding-darwin-x64@0.140.0': optional: true - '@esbuild/linux-ppc64@0.28.1': + '@oxc-parser/binding-freebsd-x64@0.140.0': optional: true - '@esbuild/linux-riscv64@0.27.0': + '@oxc-parser/binding-linux-arm-gnueabihf@0.140.0': optional: true - '@esbuild/linux-riscv64@0.27.3': + '@oxc-parser/binding-linux-arm-musleabihf@0.140.0': optional: true - '@esbuild/linux-riscv64@0.28.1': + '@oxc-parser/binding-linux-arm64-gnu@0.140.0': optional: true - '@esbuild/linux-s390x@0.27.0': + '@oxc-parser/binding-linux-arm64-musl@0.140.0': optional: true - '@esbuild/linux-s390x@0.27.3': + '@oxc-parser/binding-linux-ppc64-gnu@0.140.0': optional: true - '@esbuild/linux-s390x@0.28.1': + '@oxc-parser/binding-linux-riscv64-gnu@0.140.0': optional: true - '@esbuild/linux-x64@0.27.0': + '@oxc-parser/binding-linux-riscv64-musl@0.140.0': optional: true - '@esbuild/linux-x64@0.27.3': + '@oxc-parser/binding-linux-s390x-gnu@0.140.0': optional: true - '@esbuild/linux-x64@0.28.1': + '@oxc-parser/binding-linux-x64-gnu@0.140.0': optional: true - '@esbuild/netbsd-arm64@0.27.0': + '@oxc-parser/binding-linux-x64-musl@0.140.0': optional: true - '@esbuild/netbsd-arm64@0.27.3': + '@oxc-parser/binding-openharmony-arm64@0.140.0': optional: true - '@esbuild/netbsd-arm64@0.28.1': + '@oxc-parser/binding-wasm32-wasi@0.140.0': + dependencies: + '@emnapi/core': 1.11.2 + '@emnapi/runtime': 1.11.2 + '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) optional: true - '@esbuild/netbsd-x64@0.27.0': + '@oxc-parser/binding-win32-arm64-msvc@0.140.0': optional: true - '@esbuild/netbsd-x64@0.27.3': + '@oxc-parser/binding-win32-ia32-msvc@0.140.0': optional: true - '@esbuild/netbsd-x64@0.28.1': + '@oxc-parser/binding-win32-x64-msvc@0.140.0': optional: true - '@esbuild/openbsd-arm64@0.27.0': - optional: true + '@oxc-project/types@0.139.0': {} - '@esbuild/openbsd-arm64@0.27.3': - optional: true + '@oxc-project/types@0.140.0': {} - '@esbuild/openbsd-arm64@0.28.1': + '@oxc-resolver/binding-android-arm-eabi@11.24.2': optional: true - '@esbuild/openbsd-x64@0.27.0': + '@oxc-resolver/binding-android-arm64@11.24.2': optional: true - '@esbuild/openbsd-x64@0.27.3': + '@oxc-resolver/binding-darwin-arm64@11.24.2': optional: true - '@esbuild/openbsd-x64@0.28.1': + '@oxc-resolver/binding-darwin-x64@11.24.2': optional: true - '@esbuild/openharmony-arm64@0.27.0': + '@oxc-resolver/binding-freebsd-x64@11.24.2': optional: true - '@esbuild/openharmony-arm64@0.27.3': + '@oxc-resolver/binding-linux-arm-gnueabihf@11.24.2': optional: true - '@esbuild/openharmony-arm64@0.28.1': + '@oxc-resolver/binding-linux-arm-musleabihf@11.24.2': optional: true - '@esbuild/sunos-x64@0.27.0': + '@oxc-resolver/binding-linux-arm64-gnu@11.24.2': optional: true - '@esbuild/sunos-x64@0.27.3': + '@oxc-resolver/binding-linux-arm64-musl@11.24.2': optional: true - '@esbuild/sunos-x64@0.28.1': + '@oxc-resolver/binding-linux-ppc64-gnu@11.24.2': optional: true - '@esbuild/win32-arm64@0.27.0': + '@oxc-resolver/binding-linux-riscv64-gnu@11.24.2': optional: true - '@esbuild/win32-arm64@0.27.3': + '@oxc-resolver/binding-linux-riscv64-musl@11.24.2': optional: true - '@esbuild/win32-arm64@0.28.1': + '@oxc-resolver/binding-linux-s390x-gnu@11.24.2': optional: true - '@esbuild/win32-ia32@0.27.0': + '@oxc-resolver/binding-linux-x64-gnu@11.24.2': optional: true - '@esbuild/win32-ia32@0.27.3': + '@oxc-resolver/binding-linux-x64-musl@11.24.2': optional: true - '@esbuild/win32-ia32@0.28.1': + '@oxc-resolver/binding-openharmony-arm64@11.24.2': optional: true - '@esbuild/win32-x64@0.27.0': + '@oxc-resolver/binding-wasm32-wasi@11.24.2': + dependencies: + '@emnapi/core': 1.11.2 + '@emnapi/runtime': 1.11.2 + '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) optional: true - '@esbuild/win32-x64@0.27.3': + '@oxc-resolver/binding-win32-arm64-msvc@11.24.2': optional: true - '@esbuild/win32-x64@0.28.1': + '@oxc-resolver/binding-win32-x64-msvc@11.24.2': optional: true - '@excalidraw/excalidraw@0.18.1(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': - dependencies: - '@braintree/sanitize-url': 6.0.2 - '@excalidraw/laser-pointer': 1.3.1 - '@excalidraw/mermaid-to-excalidraw': 2.2.2 - '@excalidraw/random-username': 1.1.0 - '@radix-ui/react-popover': 1.1.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@radix-ui/react-tabs': 1.0.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - browser-fs-access: 0.29.1 - canvas-roundrect-polyfill: 0.0.1 - clsx: 1.1.1 - cross-env: 7.0.3 - es6-promise-pool: 2.5.0 - fractional-indexing: 3.2.0 - fuzzy: 0.1.3 - image-blob-reduce: 3.0.1 - jotai: 2.11.0(@types/react@19.2.17)(react@19.2.8) - jotai-scope: 0.7.2(jotai@2.11.0(@types/react@19.2.17)(react@19.2.8))(react@19.2.8) - lodash.debounce: 4.0.8 - lodash.throttle: 4.1.1 - nanoid: 3.3.18 - open-color: 1.9.1 - pako: 2.0.3 - perfect-freehand: 1.2.0 - pica: 7.1.1 - png-chunk-text: 1.0.0 - png-chunks-encode: 1.0.0 - png-chunks-extract: 1.0.0 - points-on-curve: 1.0.1 - pwacompat: 2.0.17 - react: 19.2.8 - react-dom: 19.2.8(react@19.2.8) - roughjs: 4.6.4 - sass: 1.51.0 - tunnel-rat: 0.1.2(@types/react@19.2.17)(react@19.2.8) - transitivePeerDependencies: - - '@types/react' - - '@types/react-dom' - - immer - - '@excalidraw/laser-pointer@1.3.1': {} - - '@excalidraw/markdown-to-text@0.1.2': {} - - '@excalidraw/mermaid-to-excalidraw@2.2.2': + '@playwright/test@1.62.0': dependencies: - '@excalidraw/markdown-to-text': 0.1.2 - '@mermaid-js/parser': 0.6.3 - mermaid: 11.14.0 - nanoid: 5.1.16 - - '@excalidraw/random-username@1.1.0': {} + playwright: 1.62.0 - '@floating-ui/core@1.7.5': - dependencies: - '@floating-ui/utils': 0.2.11 + '@polka/url@1.0.0-next.29': {} - '@floating-ui/core@1.8.0': + '@poppinss/colors@4.1.6': dependencies: - '@floating-ui/utils': 0.2.12 + kleur: 4.1.5 - '@floating-ui/dom@1.7.6': + '@poppinss/dumper@0.6.5': dependencies: - '@floating-ui/core': 1.7.5 - '@floating-ui/utils': 0.2.11 + '@poppinss/colors': 4.1.6 + '@sindresorhus/is': 7.2.0 + supports-color: 10.2.2 - '@floating-ui/dom@1.8.0': - dependencies: - '@floating-ui/core': 1.8.0 - '@floating-ui/utils': 0.2.12 + '@poppinss/exception@1.2.3': {} - '@floating-ui/react-dom@2.1.8(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@posthog/browser-common@0.2.2': dependencies: - '@floating-ui/dom': 1.7.6 - react: 19.2.8 - react-dom: 19.2.8(react@19.2.8) + '@posthog/core': 1.45.1 + '@posthog/types': 1.398.0 - '@floating-ui/react-dom@2.1.9(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@posthog/core@1.45.1': dependencies: - '@floating-ui/dom': 1.8.0 - react: 19.2.8 - react-dom: 19.2.8(react@19.2.8) + '@posthog/types': 1.398.0 - '@floating-ui/utils@0.2.11': {} + '@posthog/types@1.398.0': {} - '@floating-ui/utils@0.2.12': {} + '@protobuf-ts/runtime@2.11.1': {} - '@iconify/types@2.0.0': {} + '@radix-ui/number@1.1.3': {} - '@iconify/utils@3.1.1': + '@radix-ui/primitive@1.0.0': dependencies: - '@antfu/install-pkg': 1.1.0 - '@iconify/types': 2.0.0 - mlly: 1.8.2 + '@babel/runtime': 7.29.2 - '@img/colour@1.1.0': {} + '@radix-ui/primitive@1.1.1': {} - '@img/sharp-darwin-arm64@0.35.5': - optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.3.4 - optional: true + '@radix-ui/primitive@1.1.7': {} - '@img/sharp-darwin-x64@0.35.5': + '@radix-ui/react-accessible-icon@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + dependencies: + '@radix-ui/react-visually-hidden': 1.2.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.3.4 - optional: true + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@img/sharp-freebsd-wasm32@0.35.5': + '@radix-ui/react-accordion@1.2.20(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@img/sharp-wasm32': 0.35.5 - optional: true - - '@img/sharp-libvips-darwin-arm64@1.3.4': - optional: true - - '@img/sharp-libvips-darwin-x64@1.3.4': - optional: true - - '@img/sharp-libvips-linux-arm64@1.3.4': - optional: true - - '@img/sharp-libvips-linux-arm@1.3.4': - optional: true - - '@img/sharp-libvips-linux-ppc64@1.3.4': - optional: true - - '@img/sharp-libvips-linux-riscv64@1.3.4': - optional: true - - '@img/sharp-libvips-linux-s390x@1.3.4': - optional: true - - '@img/sharp-libvips-linux-x64@1.3.4': - optional: true - - '@img/sharp-libvips-linuxmusl-arm64@1.3.4': - optional: true - - '@img/sharp-libvips-linuxmusl-x64@1.3.4': - optional: true + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-collapsible': 1.1.20(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-collection': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-direction': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-id': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@img/sharp-linux-arm64@0.35.5': + '@radix-ui/react-alert-dialog@1.1.23(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + dependencies: + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-dialog': 1.1.23(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.3.4 - optional: true + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@img/sharp-linux-arm@0.35.5': + '@radix-ui/react-arrow@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + dependencies: + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.3.4 - optional: true + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@img/sharp-linux-ppc64@0.35.5': + '@radix-ui/react-arrow@1.1.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + dependencies: + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) optionalDependencies: - '@img/sharp-libvips-linux-ppc64': 1.3.4 - optional: true + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@img/sharp-linux-riscv64@0.35.5': + '@radix-ui/react-aspect-ratio@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + dependencies: + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) optionalDependencies: - '@img/sharp-libvips-linux-riscv64': 1.3.4 - optional: true + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@img/sharp-linux-s390x@0.35.5': + '@radix-ui/react-avatar@1.2.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + dependencies: + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-is-hydrated': 0.1.3(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.3.4 - optional: true + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@img/sharp-linux-x64@0.35.5': + '@radix-ui/react-checkbox@1.3.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + dependencies: + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-size': 1.1.4(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.3.4 - optional: true + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@img/sharp-linuxmusl-arm64@0.35.5': + '@radix-ui/react-collapsible@1.1.20(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + dependencies: + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-id': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.3.4 - optional: true + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@img/sharp-linuxmusl-x64@0.35.5': + '@radix-ui/react-collection@1.0.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + dependencies: + '@babel/runtime': 7.29.2 + '@radix-ui/react-compose-refs': 1.0.0(react@19.2.8) + '@radix-ui/react-context': 1.0.0(react@19.2.8) + '@radix-ui/react-primitive': 1.0.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-slot': 1.0.1(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + + '@radix-ui/react-collection@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-slot': 1.3.3(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.3.4 - optional: true + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@img/sharp-wasm32@0.35.5': + '@radix-ui/react-compose-refs@1.0.0(react@19.2.8)': dependencies: - '@emnapi/runtime': 1.11.3 - optional: true + '@babel/runtime': 7.29.2 + react: 19.2.8 - '@img/sharp-webcontainers-wasm32@0.35.5': + '@radix-ui/react-compose-refs@1.1.1(@types/react@19.2.17)(react@19.2.8)': dependencies: - '@img/sharp-wasm32': 0.35.5 - optional: true + react: 19.2.8 + optionalDependencies: + '@types/react': 19.2.17 - '@img/sharp-win32-arm64@0.35.5': - optional: true + '@radix-ui/react-compose-refs@1.1.5(@types/react@19.2.17)(react@19.2.8)': + dependencies: + react: 19.2.8 + optionalDependencies: + '@types/react': 19.2.17 - '@img/sharp-win32-ia32@0.35.5': - optional: true + '@radix-ui/react-context-menu@2.3.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + dependencies: + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-menu': 2.1.24(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@img/sharp-win32-x64@0.35.5': - optional: true + '@radix-ui/react-context@1.0.0(react@19.2.8)': + dependencies: + '@babel/runtime': 7.29.2 + react: 19.2.8 - '@isaacs/fs-minipass@4.0.1': + '@radix-ui/react-context@1.1.1(@types/react@19.2.17)(react@19.2.8)': dependencies: - minipass: 7.1.3 + react: 19.2.8 + optionalDependencies: + '@types/react': 19.2.17 - '@jridgewell/gen-mapping@0.3.13': + '@radix-ui/react-context@1.2.2(@types/react@19.2.17)(react@19.2.8)': dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.31 + react: 19.2.8 + optionalDependencies: + '@types/react': 19.2.17 - '@jridgewell/remapping@2.3.5': + '@radix-ui/react-dialog@1.1.23(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-focus-guards': 1.1.6(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-focus-scope': 1.1.16(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-id': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-portal': 1.1.17(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-slot': 1.3.3(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) + aria-hidden: 1.2.6 + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + react-remove-scroll: 2.7.2(@types/react@19.2.17)(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@jridgewell/resolve-uri@3.1.2': {} + '@radix-ui/react-dialog@1.2.0(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + dependencies: + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-dismissable-layer': 1.1.20(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-focus-guards': 1.1.6(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-focus-scope': 1.2.0(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-id': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-portal': 1.1.18(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-presence': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-primitive': 2.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-slot': 1.4.0(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) + aria-hidden: 1.2.6 + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + react-remove-scroll: 2.7.2(@types/react@19.2.17)(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@jridgewell/sourcemap-codec@1.5.5': {} + '@radix-ui/react-direction@1.0.0(react@19.2.8)': + dependencies: + '@babel/runtime': 7.29.2 + react: 19.2.8 - '@jridgewell/trace-mapping@0.3.31': + '@radix-ui/react-direction@1.1.4(@types/react@19.2.17)(react@19.2.8)': dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 + react: 19.2.8 + optionalDependencies: + '@types/react': 19.2.17 - '@jridgewell/trace-mapping@0.3.9': + '@radix-ui/react-dismissable-layer@1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-effect-event': 0.0.5(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@mapbox/node-pre-gyp@2.0.3': + '@radix-ui/react-dismissable-layer@1.1.20(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - consola: 3.4.2 - detect-libc: 2.1.2 - https-proxy-agent: 7.0.6 - node-fetch: 2.7.0 - nopt: 8.1.0 - semver: 7.8.5 - tar: 7.5.22 - transitivePeerDependencies: - - encoding - - supports-color + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-primitive': 2.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-effect-event': 0.0.5(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) + + '@radix-ui/react-dismissable-layer@1.1.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@mermaid-js/parser@0.6.3': + '@radix-ui/react-dropdown-menu@2.1.24(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - langium: 3.3.1 + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-id': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-menu': 2.1.24(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@mermaid-js/parser@1.1.0': + '@radix-ui/react-focus-guards@1.1.1(@types/react@19.2.17)(react@19.2.8)': dependencies: - langium: 4.2.2 + react: 19.2.8 + optionalDependencies: + '@types/react': 19.2.17 - '@monaco-editor/loader@1.7.0': + '@radix-ui/react-focus-guards@1.1.6(@types/react@19.2.17)(react@19.2.8)': dependencies: - state-local: 1.0.7 + react: 19.2.8 + optionalDependencies: + '@types/react': 19.2.17 - '@monaco-editor/react@4.7.0(monaco-editor@0.55.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@radix-ui/react-focus-scope@1.1.16(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@monaco-editor/loader': 1.7.0 - monaco-editor: 0.55.1 + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.17)(react@19.2.8) react: 19.2.8 react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': + '@radix-ui/react-focus-scope@1.1.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@emnapi/core': 1.11.1 - '@emnapi/runtime': 1.11.1 - '@tybys/wasm-util': 0.10.3 - optional: true + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)': + '@radix-ui/react-focus-scope@1.2.0(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@emnapi/core': 1.11.2 - '@emnapi/runtime': 1.11.2 - '@tybys/wasm-util': 0.10.3 - optional: true + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-primitive': 2.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@nodelib/fs.scandir@2.1.5': + '@radix-ui/react-form@0.1.16(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-id': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-label': 2.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@nodelib/fs.walk@1.2.8': + '@radix-ui/react-hover-card@1.1.23(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.20.1 - - '@opentelemetry/api@1.9.0': {} - - '@oxc-parser/binding-android-arm-eabi@0.140.0': - optional: true - - '@oxc-parser/binding-android-arm64@0.140.0': - optional: true - - '@oxc-parser/binding-darwin-arm64@0.140.0': - optional: true - - '@oxc-parser/binding-darwin-x64@0.140.0': - optional: true - - '@oxc-parser/binding-freebsd-x64@0.140.0': - optional: true - - '@oxc-parser/binding-linux-arm-gnueabihf@0.140.0': - optional: true - - '@oxc-parser/binding-linux-arm-musleabihf@0.140.0': - optional: true - - '@oxc-parser/binding-linux-arm64-gnu@0.140.0': - optional: true - - '@oxc-parser/binding-linux-arm64-musl@0.140.0': - optional: true - - '@oxc-parser/binding-linux-ppc64-gnu@0.140.0': - optional: true - - '@oxc-parser/binding-linux-riscv64-gnu@0.140.0': - optional: true - - '@oxc-parser/binding-linux-riscv64-musl@0.140.0': - optional: true - - '@oxc-parser/binding-linux-s390x-gnu@0.140.0': - optional: true - - '@oxc-parser/binding-linux-x64-gnu@0.140.0': - optional: true - - '@oxc-parser/binding-linux-x64-musl@0.140.0': - optional: true - - '@oxc-parser/binding-openharmony-arm64@0.140.0': - optional: true + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-popper': 1.3.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-portal': 1.1.17(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@oxc-parser/binding-wasm32-wasi@0.140.0': + '@radix-ui/react-id@1.0.0(react@19.2.8)': dependencies: - '@emnapi/core': 1.11.2 - '@emnapi/runtime': 1.11.2 - '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) - optional: true - - '@oxc-parser/binding-win32-arm64-msvc@0.140.0': - optional: true - - '@oxc-parser/binding-win32-ia32-msvc@0.140.0': - optional: true - - '@oxc-parser/binding-win32-x64-msvc@0.140.0': - optional: true - - '@oxc-project/types@0.139.0': {} - - '@oxc-project/types@0.140.0': {} - - '@oxc-resolver/binding-android-arm-eabi@11.24.2': - optional: true - - '@oxc-resolver/binding-android-arm64@11.24.2': - optional: true - - '@oxc-resolver/binding-darwin-arm64@11.24.2': - optional: true - - '@oxc-resolver/binding-darwin-x64@11.24.2': - optional: true - - '@oxc-resolver/binding-freebsd-x64@11.24.2': - optional: true - - '@oxc-resolver/binding-linux-arm-gnueabihf@11.24.2': - optional: true - - '@oxc-resolver/binding-linux-arm-musleabihf@11.24.2': - optional: true - - '@oxc-resolver/binding-linux-arm64-gnu@11.24.2': - optional: true - - '@oxc-resolver/binding-linux-arm64-musl@11.24.2': - optional: true - - '@oxc-resolver/binding-linux-ppc64-gnu@11.24.2': - optional: true - - '@oxc-resolver/binding-linux-riscv64-gnu@11.24.2': - optional: true - - '@oxc-resolver/binding-linux-riscv64-musl@11.24.2': - optional: true - - '@oxc-resolver/binding-linux-s390x-gnu@11.24.2': - optional: true - - '@oxc-resolver/binding-linux-x64-gnu@11.24.2': - optional: true - - '@oxc-resolver/binding-linux-x64-musl@11.24.2': - optional: true - - '@oxc-resolver/binding-openharmony-arm64@11.24.2': - optional: true + '@babel/runtime': 7.29.2 + '@radix-ui/react-use-layout-effect': 1.0.0(react@19.2.8) + react: 19.2.8 - '@oxc-resolver/binding-wasm32-wasi@11.24.2': + '@radix-ui/react-id@1.1.0(@types/react@19.2.17)(react@19.2.8)': dependencies: - '@emnapi/core': 1.11.2 - '@emnapi/runtime': 1.11.2 - '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) - optional: true - - '@oxc-resolver/binding-win32-arm64-msvc@11.24.2': - optional: true + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 + optionalDependencies: + '@types/react': 19.2.17 - '@oxc-resolver/binding-win32-x64-msvc@11.24.2': - optional: true + '@radix-ui/react-id@1.1.4(@types/react@19.2.17)(react@19.2.8)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 + optionalDependencies: + '@types/react': 19.2.17 - '@playwright/test@1.62.0': + '@radix-ui/react-label@2.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - playwright: 1.62.0 + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@polka/url@1.0.0-next.29': {} + '@radix-ui/react-menu@2.1.24(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + dependencies: + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-collection': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-direction': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-focus-guards': 1.1.6(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-focus-scope': 1.1.16(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-id': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-popper': 1.3.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-portal': 1.1.17(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-roving-focus': 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-slot': 1.3.3(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.17)(react@19.2.8) + aria-hidden: 1.2.6 + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + react-remove-scroll: 2.7.2(@types/react@19.2.17)(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@poppinss/colors@4.1.6': + '@radix-ui/react-menubar@1.1.24(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - kleur: 4.1.5 + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-collection': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-direction': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-id': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-menu': 2.1.24(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-roving-focus': 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@poppinss/dumper@0.6.5': + '@radix-ui/react-navigation-menu@1.2.22(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@poppinss/colors': 4.1.6 - '@sindresorhus/is': 7.2.0 - supports-color: 10.2.2 - - '@poppinss/exception@1.2.3': {} + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-collection': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-direction': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-id': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-previous': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-visually-hidden': 1.2.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@posthog/browser-common@0.2.2': + '@radix-ui/react-one-time-password-field@0.1.16(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@posthog/core': 1.45.1 - '@posthog/types': 1.398.0 + '@radix-ui/number': 1.1.3 + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-collection': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-direction': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-roving-focus': 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-effect-event': 0.0.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-is-hydrated': 0.1.3(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@posthog/core@1.45.1': + '@radix-ui/react-password-toggle-field@0.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@posthog/types': 1.398.0 - - '@posthog/types@1.398.0': {} - - '@protobuf-ts/runtime@2.11.1': {} + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-id': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-effect-event': 0.0.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-is-hydrated': 0.1.3(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/primitive@1.0.0': + '@radix-ui/react-popover@1.1.23(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@babel/runtime': 7.29.2 - - '@radix-ui/primitive@1.1.1': {} - - '@radix-ui/primitive@1.1.7': {} + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-focus-guards': 1.1.6(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-focus-scope': 1.1.16(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-id': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-popper': 1.3.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-portal': 1.1.17(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-slot': 1.3.3(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.8) + aria-hidden: 1.2.6 + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + react-remove-scroll: 2.7.2(@types/react@19.2.17)(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-arrow@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@radix-ui/react-popover@1.1.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.1.1(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-id': 1.1.0(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-popper': 1.2.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-portal': 1.1.4(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-slot': 1.1.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.2.17)(react@19.2.8) + aria-hidden: 1.2.6 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) + react-remove-scroll: 2.7.2(@types/react@19.2.17)(react@19.2.8) optionalDependencies: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-arrow@1.1.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@radix-ui/react-popper@1.2.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: + '@floating-ui/react-dom': 2.1.8(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-arrow': 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.1.1(@types/react@19.2.17)(react@19.2.8) '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-rect': 1.1.0(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-size': 1.1.0(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/rect': 1.1.0 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) optionalDependencies: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-collection@1.0.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@radix-ui/react-popper@1.3.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@babel/runtime': 7.29.2 - '@radix-ui/react-compose-refs': 1.0.0(react@19.2.8) - '@radix-ui/react-context': 1.0.0(react@19.2.8) - '@radix-ui/react-primitive': 1.0.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@radix-ui/react-slot': 1.0.1(react@19.2.8) + '@floating-ui/react-dom': 2.1.9(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-arrow': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-rect': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-size': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/rect': 1.1.3 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-compose-refs@1.0.0(react@19.2.8)': + '@radix-ui/react-portal@1.1.17(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@babel/runtime': 7.29.2 + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-compose-refs@1.1.1(@types/react@19.2.17)(react@19.2.8)': + '@radix-ui/react-portal@1.1.18(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: + '@radix-ui/react-primitive': 2.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) optionalDependencies: '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-compose-refs@1.1.5(@types/react@19.2.17)(react@19.2.8)': + '@radix-ui/react-portal@1.1.4(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.17)(react@19.2.8) react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) optionalDependencies: '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-context@1.0.0(react@19.2.8)': + '@radix-ui/react-presence@1.0.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: '@babel/runtime': 7.29.2 + '@radix-ui/react-compose-refs': 1.0.0(react@19.2.8) + '@radix-ui/react-use-layout-effect': 1.0.0(react@19.2.8) react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) - '@radix-ui/react-context@1.1.1(@types/react@19.2.17)(react@19.2.8)': + '@radix-ui/react-presence@1.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) optionalDependencies: '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-context@1.2.2(@types/react@19.2.17)(react@19.2.8)': + '@radix-ui/react-presence@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) optionalDependencies: '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-direction@1.0.0(react@19.2.8)': + '@radix-ui/react-presence@1.1.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) + + '@radix-ui/react-primitive@1.0.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: '@babel/runtime': 7.29.2 + '@radix-ui/react-slot': 1.0.1(react@19.2.8) react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) - '@radix-ui/react-dismissable-layer@1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@radix-ui/react-primitive@2.0.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@radix-ui/primitive': 1.1.7 - '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-use-effect-event': 0.0.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-slot': 1.1.2(@types/react@19.2.17)(react@19.2.8) react: 19.2.8 react-dom: 19.2.8(react@19.2.8) optionalDependencies: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-dismissable-layer@1.1.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@radix-ui/react-primitive@2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-slot': 1.3.3(@types/react@19.2.17)(react@19.2.8) react: 19.2.8 react-dom: 19.2.8(react@19.2.8) optionalDependencies: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-focus-guards@1.1.1(@types/react@19.2.17)(react@19.2.8)': + '@radix-ui/react-primitive@2.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: + '@radix-ui/react-slot': 1.4.0(@types/react@19.2.17)(react@19.2.8) react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) optionalDependencies: '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-focus-scope@1.1.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@radix-ui/react-progress@1.1.16(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) react: 19.2.8 react-dom: 19.2.8(react@19.2.8) optionalDependencies: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-id@1.0.0(react@19.2.8)': + '@radix-ui/react-radio-group@1.4.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@babel/runtime': 7.29.2 - '@radix-ui/react-use-layout-effect': 1.0.0(react@19.2.8) + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-direction': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-roving-focus': 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-size': 1.1.4(@types/react@19.2.17)(react@19.2.8) react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-id@1.1.0(@types/react@19.2.17)(react@19.2.8)': + '@radix-ui/react-roving-focus@1.0.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.17)(react@19.2.8) + '@babel/runtime': 7.29.2 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-collection': 1.0.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-compose-refs': 1.0.0(react@19.2.8) + '@radix-ui/react-context': 1.0.0(react@19.2.8) + '@radix-ui/react-direction': 1.0.0(react@19.2.8) + '@radix-ui/react-id': 1.0.0(react@19.2.8) + '@radix-ui/react-primitive': 1.0.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-callback-ref': 1.0.0(react@19.2.8) + '@radix-ui/react-use-controllable-state': 1.0.0(react@19.2.8) react: 19.2.8 - optionalDependencies: - '@types/react': 19.2.17 + react-dom: 19.2.8(react@19.2.8) - '@radix-ui/react-id@1.1.4(@types/react@19.2.17)(react@19.2.8)': + '@radix-ui/react-roving-focus@1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-collection': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-direction': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-id': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-is-hydrated': 0.1.3(@types/react@19.2.17)(react@19.2.8) '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) react: 19.2.8 - optionalDependencies: - '@types/react': 19.2.17 - - '@radix-ui/react-popover@1.1.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-context': 1.1.1(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@radix-ui/react-id': 1.1.0(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-popper': 1.2.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@radix-ui/react-portal': 1.1.4(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@radix-ui/react-slot': 1.1.2(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.2.17)(react@19.2.8) - aria-hidden: 1.2.6 - react: 19.2.8 react-dom: 19.2.8(react@19.2.8) - react-remove-scroll: 2.7.2(@types/react@19.2.17)(react@19.2.8) optionalDependencies: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-popper@1.2.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@radix-ui/react-scroll-area@1.2.18(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@floating-ui/react-dom': 2.1.8(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@radix-ui/react-arrow': 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-context': 1.1.1(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-use-rect': 1.1.0(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-use-size': 1.1.0(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/rect': 1.1.0 + '@radix-ui/number': 1.1.3 + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-direction': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) react: 19.2.8 react-dom: 19.2.8(react@19.2.8) optionalDependencies: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-popper@1.3.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@radix-ui/react-select@2.3.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@floating-ui/react-dom': 2.1.9(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@radix-ui/react-arrow': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/number': 1.1.3 + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-collection': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-direction': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-focus-guards': 1.1.6(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-focus-scope': 1.1.16(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-id': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-popper': 1.3.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-portal': 1.1.17(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-slot': 1.3.3(@types/react@19.2.17)(react@19.2.8) '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.8) '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-use-rect': 1.1.4(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-use-size': 1.1.4(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/rect': 1.1.3 + '@radix-ui/react-use-previous': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-visually-hidden': 1.2.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + aria-hidden: 1.2.6 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) + react-remove-scroll: 2.7.2(@types/react@19.2.17)(react@19.2.8) optionalDependencies: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-portal@1.1.17(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@radix-ui/react-separator@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) react: 19.2.8 react-dom: 19.2.8(react@19.2.8) optionalDependencies: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-portal@1.1.4(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@radix-ui/react-slider@1.4.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/number': 1.1.3 + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-collection': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-direction': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-previous': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-size': 1.1.4(@types/react@19.2.17)(react@19.2.8) react: 19.2.8 react-dom: 19.2.8(react@19.2.8) optionalDependencies: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-presence@1.0.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@radix-ui/react-slot@1.0.1(react@19.2.8)': dependencies: '@babel/runtime': 7.29.2 '@radix-ui/react-compose-refs': 1.0.0(react@19.2.8) - '@radix-ui/react-use-layout-effect': 1.0.0(react@19.2.8) react: 19.2.8 - react-dom: 19.2.8(react@19.2.8) - '@radix-ui/react-presence@1.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@radix-ui/react-slot@1.1.2(@types/react@19.2.17)(react@19.2.8)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.17)(react@19.2.8) react: 19.2.8 - react-dom: 19.2.8(react@19.2.8) optionalDependencies: '@types/react': 19.2.17 - '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-presence@1.1.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@radix-ui/react-slot@1.3.3(@types/react@19.2.17)(react@19.2.8)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) react: 19.2.8 - react-dom: 19.2.8(react@19.2.8) optionalDependencies: '@types/react': 19.2.17 - '@types/react-dom': 19.2.3(@types/react@19.2.17) - - '@radix-ui/react-primitive@1.0.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': - dependencies: - '@babel/runtime': 7.29.2 - '@radix-ui/react-slot': 1.0.1(react@19.2.8) - react: 19.2.8 - react-dom: 19.2.8(react@19.2.8) - '@radix-ui/react-primitive@2.0.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@radix-ui/react-slot@1.4.0(@types/react@19.2.17)(react@19.2.8)': dependencies: - '@radix-ui/react-slot': 1.1.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) react: 19.2.8 - react-dom: 19.2.8(react@19.2.8) optionalDependencies: '@types/react': 19.2.17 - '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-primitive@2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@radix-ui/react-switch@1.3.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@radix-ui/react-slot': 1.3.3(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-size': 1.1.4(@types/react@19.2.17)(react@19.2.8) react: 19.2.8 react-dom: 19.2.8(react@19.2.8) optionalDependencies: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-roving-focus@1.0.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@radix-ui/react-tabs@1.0.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: '@babel/runtime': 7.29.2 '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-collection': 1.0.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@radix-ui/react-compose-refs': 1.0.0(react@19.2.8) '@radix-ui/react-context': 1.0.0(react@19.2.8) '@radix-ui/react-direction': 1.0.0(react@19.2.8) '@radix-ui/react-id': 1.0.0(react@19.2.8) + '@radix-ui/react-presence': 1.0.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8) '@radix-ui/react-primitive': 1.0.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@radix-ui/react-use-callback-ref': 1.0.0(react@19.2.8) + '@radix-ui/react-roving-focus': 1.0.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8) '@radix-ui/react-use-controllable-state': 1.0.0(react@19.2.8) react: 19.2.8 react-dom: 19.2.8(react@19.2.8) - '@radix-ui/react-slot@1.0.1(react@19.2.8)': + '@radix-ui/react-tabs@1.1.21(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@babel/runtime': 7.29.2 - '@radix-ui/react-compose-refs': 1.0.0(react@19.2.8) + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-direction': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-id': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-roving-focus': 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.8) react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-slot@1.1.2(@types/react@19.2.17)(react@19.2.8)': + '@radix-ui/react-toast@1.2.23(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-collection': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-portal': 1.1.17(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-visually-hidden': 1.2.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) optionalDependencies: '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-slot@1.3.3(@types/react@19.2.17)(react@19.2.8)': + '@radix-ui/react-toggle-group@1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-direction': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-roving-focus': 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-toggle': 1.1.18(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.8) react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) optionalDependencies: '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-tabs@1.0.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@radix-ui/react-toggle@1.1.18(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@babel/runtime': 7.29.2 - '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-context': 1.0.0(react@19.2.8) - '@radix-ui/react-direction': 1.0.0(react@19.2.8) - '@radix-ui/react-id': 1.0.0(react@19.2.8) - '@radix-ui/react-presence': 1.0.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@radix-ui/react-primitive': 1.0.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@radix-ui/react-roving-focus': 1.0.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@radix-ui/react-use-controllable-state': 1.0.0(react@19.2.8) + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) + + '@radix-ui/react-toolbar@1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + dependencies: + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-direction': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-roving-focus': 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-separator': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-toggle-group': 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) react: 19.2.8 react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) '@radix-ui/react-tooltip@1.2.16(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: @@ -6105,6 +7395,19 @@ snapshots: optionalDependencies: '@types/react': 19.2.17 + '@radix-ui/react-use-escape-keydown@1.1.5(@types/react@19.2.17)(react@19.2.8)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.17)(react@19.2.8) + react: 19.2.8 + optionalDependencies: + '@types/react': 19.2.17 + + '@radix-ui/react-use-is-hydrated@0.1.3(@types/react@19.2.17)(react@19.2.8)': + dependencies: + react: 19.2.8 + optionalDependencies: + '@types/react': 19.2.17 + '@radix-ui/react-use-layout-effect@1.0.0(react@19.2.8)': dependencies: '@babel/runtime': 7.29.2 @@ -6122,6 +7425,12 @@ snapshots: optionalDependencies: '@types/react': 19.2.17 + '@radix-ui/react-use-previous@1.1.4(@types/react@19.2.17)(react@19.2.8)': + dependencies: + react: 19.2.8 + optionalDependencies: + '@types/react': 19.2.17 + '@radix-ui/react-use-rect@1.1.0(@types/react@19.2.17)(react@19.2.8)': dependencies: '@radix-ui/rect': 1.1.0 @@ -6301,6 +7610,24 @@ snapshots: '@saas-maker/app-health@https://github.com/sass-maker/app-health/releases/download/node-v0.4.0/saas-maker-app-health-0.4.0.tgz': {} + '@saas-maker/ui@https://codeload.github.com/sass-maker/ui-library/tar.gz/af95cd6b4aa4bb2004343655bb495255e9f51c8b#path:/packages/ui(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(tailwindcss@4.3.3)': + dependencies: + '@tanstack/react-table': 9.2.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + class-variance-authority: 0.7.1 + clsx: 2.1.1 + cmdk: 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + lucide-react: 1.48.0(react@19.2.8) + radix-ui: 1.6.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + sonner: 2.0.8(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + tailwind-merge: 3.7.0 + tailwindcss: 4.3.3 + tw-animate-css: 1.4.0 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + '@sindresorhus/is@7.2.0': {} '@size-limit/file@11.2.0(size-limit@11.2.0)': @@ -6379,6 +7706,27 @@ snapshots: tailwindcss: 4.3.3 vite: 8.1.5(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + '@tanstack/react-store@0.11.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + dependencies: + '@tanstack/store': 0.11.2 + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + use-sync-external-store: 1.6.0(react@19.2.8) + + '@tanstack/react-table@9.2.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + dependencies: + '@tanstack/react-store': 0.11.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@tanstack/table-core': 9.2.4 + react: 19.2.8 + transitivePeerDependencies: + - react-dom + + '@tanstack/store@0.11.2': {} + + '@tanstack/table-core@9.2.4': + dependencies: + '@tanstack/store': 0.11.2 + '@ts-morph/common@0.11.1': dependencies: fast-glob: 3.3.3 @@ -6900,10 +8248,26 @@ snapshots: cjs-module-lexer@1.2.3: {} + class-variance-authority@0.7.1: + dependencies: + clsx: 2.1.1 + clsx@1.1.1: {} clsx@2.1.1: {} + cmdk@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8): + dependencies: + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-dialog': 1.2.0(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-id': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + code-block-writer@10.1.1: {} comma-separated-tokens@2.0.3: {} @@ -7843,6 +9207,10 @@ snapshots: dependencies: react: 19.2.8 + lucide-react@1.48.0(react@19.2.8): + dependencies: + react: 19.2.8 + lz-string@1.5.0: {} magic-string@0.30.21: @@ -8520,6 +9888,69 @@ snapshots: queue-microtask@1.2.3: {} + radix-ui@1.6.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8): + dependencies: + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-accessible-icon': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-accordion': 1.2.20(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-alert-dialog': 1.1.23(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-arrow': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-aspect-ratio': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-avatar': 1.2.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-checkbox': 1.3.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-collapsible': 1.1.20(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-collection': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-context-menu': 2.3.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-dialog': 1.1.23(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-direction': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-dropdown-menu': 2.1.24(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-focus-guards': 1.1.6(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-focus-scope': 1.1.16(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-form': 0.1.16(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-hover-card': 1.1.23(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-label': 2.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-menu': 2.1.24(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-menubar': 1.1.24(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-navigation-menu': 1.2.22(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-one-time-password-field': 0.1.16(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-password-toggle-field': 0.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-popover': 1.1.23(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-popper': 1.3.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-portal': 1.1.17(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-progress': 1.1.16(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-radio-group': 1.4.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-roving-focus': 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-scroll-area': 1.2.18(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-select': 2.3.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-separator': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-slider': 1.4.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-slot': 1.3.3(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-switch': 1.3.7(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-tabs': 1.1.21(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-toast': 1.2.23(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-toggle': 1.1.18(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-toggle-group': 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-toolbar': 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-tooltip': 1.2.16(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-effect-event': 0.0.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-escape-keydown': 1.1.5(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-is-hydrated': 0.1.3(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-use-size': 1.1.4(@types/react@19.2.17)(react@19.2.8) + '@radix-ui/react-visually-hidden': 1.2.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) + react-dom@19.2.8(react@19.2.8): dependencies: react: 19.2.8 @@ -8807,6 +10238,13 @@ snapshots: smol-toml@1.7.1: {} + sonner@2.0.8(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8): + dependencies: + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + optionalDependencies: + '@types/react': 19.2.17 + source-map-js@1.2.2: {} space-separated-tokens@2.0.2: {} @@ -8854,6 +10292,8 @@ snapshots: tailwind-merge@3.6.0: {} + tailwind-merge@3.7.0: {} + tailwindcss@4.3.3: {} tapable@2.3.3: {} @@ -8938,6 +10378,8 @@ snapshots: - immer - react + tw-animate-css@1.4.0: {} + typescript@5.9.3: {} typescript@6.0.3: {} diff --git a/public/articles/applying-fsrs-spaced-repetition-to-software-engineering-knowledge.html b/public/articles/applying-fsrs-spaced-repetition-to-software-engineering-knowledge.html index 0fdf031..a0119cc 100644 --- a/public/articles/applying-fsrs-spaced-repetition-to-software-engineering-knowledge.html +++ b/public/articles/applying-fsrs-spaced-repetition-to-software-engineering-knowledge.html @@ -17,6 +17,8 @@ + + @@ -89,16 +91,6 @@

Keep reading

Turn this into practice in the learning workspace →

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/articles/designing-useful-guest-mode-technical-learning.html b/public/articles/designing-useful-guest-mode-technical-learning.html index 535ca16..d6e8260 100644 --- a/public/articles/designing-useful-guest-mode-technical-learning.html +++ b/public/articles/designing-useful-guest-mode-technical-learning.html @@ -17,6 +17,8 @@ + + @@ -79,16 +81,6 @@

Keep reading

Turn this into practice in the learning workspace →

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/articles/how-a-socratic-coding-assistant-should-respond-to-learners.html b/public/articles/how-a-socratic-coding-assistant-should-respond-to-learners.html index d6719ea..ec9d07b 100644 --- a/public/articles/how-a-socratic-coding-assistant-should-respond-to-learners.html +++ b/public/articles/how-a-socratic-coding-assistant-should-respond-to-learners.html @@ -17,6 +17,8 @@ + + @@ -88,16 +90,6 @@

Keep reading

Turn this into practice in the learning workspace →

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/articles/how-to-turn-a-failed-coding-interview-into-a-learning-plan.html b/public/articles/how-to-turn-a-failed-coding-interview-into-a-learning-plan.html index b2d842a..b62e2e3 100644 --- a/public/articles/how-to-turn-a-failed-coding-interview-into-a-learning-plan.html +++ b/public/articles/how-to-turn-a-failed-coding-interview-into-a-learning-plan.html @@ -17,6 +17,8 @@ + + @@ -94,16 +96,6 @@

Keep reading

Turn this into practice in the learning workspace →

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/articles/index.html b/public/articles/index.html index 6922728..475e1af 100644 --- a/public/articles/index.html +++ b/public/articles/index.html @@ -17,6 +17,8 @@ + + @@ -87,16 +89,6 @@

From reading to retention

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/articles/recognition-vs-causal-understanding-in-technical-study.html b/public/articles/recognition-vs-causal-understanding-in-technical-study.html index 7580fbf..0302ea1 100644 --- a/public/articles/recognition-vs-causal-understanding-in-technical-study.html +++ b/public/articles/recognition-vs-causal-understanding-in-technical-study.html @@ -17,6 +17,8 @@ + + @@ -87,16 +89,6 @@

Keep reading

Turn this into practice in the learning workspace →

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/articles/what-counts-as-evidence-of-mastery-in-software-engineering.html b/public/articles/what-counts-as-evidence-of-mastery-in-software-engineering.html index 42cb424..3c0a448 100644 --- a/public/articles/what-counts-as-evidence-of-mastery-in-software-engineering.html +++ b/public/articles/what-counts-as-evidence-of-mastery-in-software-engineering.html @@ -17,6 +17,8 @@ + + @@ -88,16 +90,6 @@

Keep reading

Turn this into practice in the learning workspace →

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/articles/why-technical-learning-needs-an-inspectable-artifact.html b/public/articles/why-technical-learning-needs-an-inspectable-artifact.html index fc75d06..4951440 100644 --- a/public/articles/why-technical-learning-needs-an-inspectable-artifact.html +++ b/public/articles/why-technical-learning-needs-an-inspectable-artifact.html @@ -17,6 +17,8 @@ + + @@ -88,16 +90,6 @@

Keep reading

Turn this into practice in the learning workspace →

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/changelog.html b/public/changelog.html index a9e6a2b..5294c0b 100644 --- a/public/changelog.html +++ b/public/changelog.html @@ -17,6 +17,8 @@ + + @@ -80,16 +82,6 @@

Reader and High Signal joined daily learning

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/ab-testing-engineering.html b/public/curriculum/concepts/ab-testing-engineering.html index c60840e..45518a3 100644 --- a/public/curriculum/concepts/ab-testing-engineering.html +++ b/public/curriculum/concepts/ab-testing-engineering.html @@ -17,6 +17,8 @@ + + @@ -116,16 +118,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/agent-communication-interfaces.html b/public/curriculum/concepts/agent-communication-interfaces.html index 9a3d52b..c7b6c5b 100644 --- a/public/curriculum/concepts/agent-communication-interfaces.html +++ b/public/curriculum/concepts/agent-communication-interfaces.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/agent-environment-contracts.html b/public/curriculum/concepts/agent-environment-contracts.html index 4883723..74b027b 100644 --- a/public/curriculum/concepts/agent-environment-contracts.html +++ b/public/curriculum/concepts/agent-environment-contracts.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/agent-loops.html b/public/curriculum/concepts/agent-loops.html index 6b2fc66..4356516 100644 --- a/public/curriculum/concepts/agent-loops.html +++ b/public/curriculum/concepts/agent-loops.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/agent-memory-context.html b/public/curriculum/concepts/agent-memory-context.html index 7140da8..dbbe917 100644 --- a/public/curriculum/concepts/agent-memory-context.html +++ b/public/curriculum/concepts/agent-memory-context.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/agent-observability.html b/public/curriculum/concepts/agent-observability.html index b186576..6d10210 100644 --- a/public/curriculum/concepts/agent-observability.html +++ b/public/curriculum/concepts/agent-observability.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/agent-permissions-sandboxing.html b/public/curriculum/concepts/agent-permissions-sandboxing.html index 4ed40df..a29722a 100644 --- a/public/curriculum/concepts/agent-permissions-sandboxing.html +++ b/public/curriculum/concepts/agent-permissions-sandboxing.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/agent-run-lifecycle.html b/public/curriculum/concepts/agent-run-lifecycle.html index b352c04..c53df4a 100644 --- a/public/curriculum/concepts/agent-run-lifecycle.html +++ b/public/curriculum/concepts/agent-run-lifecycle.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/agent-scope-control.html b/public/curriculum/concepts/agent-scope-control.html index a6d015d..603c6a9 100644 --- a/public/curriculum/concepts/agent-scope-control.html +++ b/public/curriculum/concepts/agent-scope-control.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/agent-work-state-handoffs.html b/public/curriculum/concepts/agent-work-state-handoffs.html index d683818..dec0608 100644 --- a/public/curriculum/concepts/agent-work-state-handoffs.html +++ b/public/curriculum/concepts/agent-work-state-handoffs.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/ai-regression-testing.html b/public/curriculum/concepts/ai-regression-testing.html index f524c8e..a3f4b2b 100644 --- a/public/curriculum/concepts/ai-regression-testing.html +++ b/public/curriculum/concepts/ai-regression-testing.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/api-design.html b/public/curriculum/concepts/api-design.html index d287009..8382e0f 100644 --- a/public/curriculum/concepts/api-design.html +++ b/public/curriculum/concepts/api-design.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/api-keys.html b/public/curriculum/concepts/api-keys.html index 9756ea8..1e7f0ed 100644 --- a/public/curriculum/concepts/api-keys.html +++ b/public/curriculum/concepts/api-keys.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/array-hashing.html b/public/curriculum/concepts/array-hashing.html index f9cc508..fd03a18 100644 --- a/public/curriculum/concepts/array-hashing.html +++ b/public/curriculum/concepts/array-hashing.html @@ -17,6 +17,8 @@ + + @@ -149,16 +151,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/auth-systems.html b/public/curriculum/concepts/auth-systems.html index e2ec1ac..b5d2b3a 100644 --- a/public/curriculum/concepts/auth-systems.html +++ b/public/curriculum/concepts/auth-systems.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/automated-debugging-remediation.html b/public/curriculum/concepts/automated-debugging-remediation.html index 1b2fc53..6cdcac7 100644 --- a/public/curriculum/concepts/automated-debugging-remediation.html +++ b/public/curriculum/concepts/automated-debugging-remediation.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/b-tree.html b/public/curriculum/concepts/b-tree.html index 01df5d0..78bed1c 100644 --- a/public/curriculum/concepts/b-tree.html +++ b/public/curriculum/concepts/b-tree.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/background-jobs.html b/public/curriculum/concepts/background-jobs.html index 8794b76..fa09c40 100644 --- a/public/curriculum/concepts/background-jobs.html +++ b/public/curriculum/concepts/background-jobs.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/backtracking.html b/public/curriculum/concepts/backtracking.html index a82e980..a8250c3 100644 --- a/public/curriculum/concepts/backtracking.html +++ b/public/curriculum/concepts/backtracking.html @@ -17,6 +17,8 @@ + + @@ -121,16 +123,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/bayesian-inference.html b/public/curriculum/concepts/bayesian-inference.html index 5d0bc07..cf1008c 100644 --- a/public/curriculum/concepts/bayesian-inference.html +++ b/public/curriculum/concepts/bayesian-inference.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/bias-variance-overfitting.html b/public/curriculum/concepts/bias-variance-overfitting.html index 4838f16..55cd010 100644 --- a/public/curriculum/concepts/bias-variance-overfitting.html +++ b/public/curriculum/concepts/bias-variance-overfitting.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/binary-search.html b/public/curriculum/concepts/binary-search.html index 16d88a2..1fd61ce 100644 --- a/public/curriculum/concepts/binary-search.html +++ b/public/curriculum/concepts/binary-search.html @@ -17,6 +17,8 @@ + + @@ -114,16 +116,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/bit-manipulation.html b/public/curriculum/concepts/bit-manipulation.html index 9c7b1a6..9df55ae 100644 --- a/public/curriculum/concepts/bit-manipulation.html +++ b/public/curriculum/concepts/bit-manipulation.html @@ -17,6 +17,8 @@ + + @@ -128,16 +130,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/bm25.html b/public/curriculum/concepts/bm25.html index 561bcb2..1229d88 100644 --- a/public/curriculum/concepts/bm25.html +++ b/public/curriculum/concepts/bm25.html @@ -17,6 +17,8 @@ + + @@ -120,16 +122,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/booking-inventory.html b/public/curriculum/concepts/booking-inventory.html index d38c660..7fa4fa1 100644 --- a/public/curriculum/concepts/booking-inventory.html +++ b/public/curriculum/concepts/booking-inventory.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/browser-computer-use-agents.html b/public/curriculum/concepts/browser-computer-use-agents.html index dc9f5c2..5d061e2 100644 --- a/public/curriculum/concepts/browser-computer-use-agents.html +++ b/public/curriculum/concepts/browser-computer-use-agents.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/brute-force-vector-db.html b/public/curriculum/concepts/brute-force-vector-db.html index b31b8cb..854a053 100644 --- a/public/curriculum/concepts/brute-force-vector-db.html +++ b/public/curriculum/concepts/brute-force-vector-db.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/buffer-pool.html b/public/curriculum/concepts/buffer-pool.html index d30d3fd..e8c4d66 100644 --- a/public/curriculum/concepts/buffer-pool.html +++ b/public/curriculum/concepts/buffer-pool.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/caching.html b/public/curriculum/concepts/caching.html index f6b38ea..8350259 100644 --- a/public/curriculum/concepts/caching.html +++ b/public/curriculum/concepts/caching.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/cap-theorem.html b/public/curriculum/concepts/cap-theorem.html index 52729e0..088f1e3 100644 --- a/public/curriculum/concepts/cap-theorem.html +++ b/public/curriculum/concepts/cap-theorem.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/capacity-estimation.html b/public/curriculum/concepts/capacity-estimation.html index aa252c5..e8aabed 100644 --- a/public/curriculum/concepts/capacity-estimation.html +++ b/public/curriculum/concepts/capacity-estimation.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/cdn-edge-delivery.html b/public/curriculum/concepts/cdn-edge-delivery.html index c6b676b..3bb1cb9 100644 --- a/public/curriculum/concepts/cdn-edge-delivery.html +++ b/public/curriculum/concepts/cdn-edge-delivery.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/chunking.html b/public/curriculum/concepts/chunking.html index 41cc90a..305dc37 100644 --- a/public/curriculum/concepts/chunking.html +++ b/public/curriculum/concepts/chunking.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/cicd-developer-environments.html b/public/curriculum/concepts/cicd-developer-environments.html index 770f87f..6d24362 100644 --- a/public/curriculum/concepts/cicd-developer-environments.html +++ b/public/curriculum/concepts/cicd-developer-environments.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/classical-distributions.html b/public/curriculum/concepts/classical-distributions.html index b4fc5d6..91fac69 100644 --- a/public/curriculum/concepts/classical-distributions.html +++ b/public/curriculum/concepts/classical-distributions.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/click-models.html b/public/curriculum/concepts/click-models.html index 42c3b63..d29524e 100644 --- a/public/curriculum/concepts/click-models.html +++ b/public/curriculum/concepts/click-models.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/cloud-infrastructure.html b/public/curriculum/concepts/cloud-infrastructure.html index f0f281d..45f8667 100644 --- a/public/curriculum/concepts/cloud-infrastructure.html +++ b/public/curriculum/concepts/cloud-infrastructure.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/code-review-systems.html b/public/curriculum/concepts/code-review-systems.html index 22eeb04..060d753 100644 --- a/public/curriculum/concepts/code-review-systems.html +++ b/public/curriculum/concepts/code-review-systems.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/codebase-graphs.html b/public/curriculum/concepts/codebase-graphs.html index 192e1d9..17806d0 100644 --- a/public/curriculum/concepts/codebase-graphs.html +++ b/public/curriculum/concepts/codebase-graphs.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/coding-agent-benchmarks.html b/public/curriculum/concepts/coding-agent-benchmarks.html index 4bcdddf..7a2f0b3 100644 --- a/public/curriculum/concepts/coding-agent-benchmarks.html +++ b/public/curriculum/concepts/coding-agent-benchmarks.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/coding-agent-systems.html b/public/curriculum/concepts/coding-agent-systems.html index f055667..eebb2e8 100644 --- a/public/curriculum/concepts/coding-agent-systems.html +++ b/public/curriculum/concepts/coding-agent-systems.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/collaboration-productivity.html b/public/curriculum/concepts/collaboration-productivity.html index ea9c38e..96b1992 100644 --- a/public/curriculum/concepts/collaboration-productivity.html +++ b/public/curriculum/concepts/collaboration-productivity.html @@ -17,6 +17,8 @@ + + @@ -112,16 +114,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/columnar-storage.html b/public/curriculum/concepts/columnar-storage.html index eb7e5a1..875073d 100644 --- a/public/curriculum/concepts/columnar-storage.html +++ b/public/curriculum/concepts/columnar-storage.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/combinatorics.html b/public/curriculum/concepts/combinatorics.html index 8a2f652..a8eaaa4 100644 --- a/public/curriculum/concepts/combinatorics.html +++ b/public/curriculum/concepts/combinatorics.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/command-chain.html b/public/curriculum/concepts/command-chain.html index 916f2f6..9b4b9fd 100644 --- a/public/curriculum/concepts/command-chain.html +++ b/public/curriculum/concepts/command-chain.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/communication.html b/public/curriculum/concepts/communication.html index bd8f04a..26e8c1a 100644 --- a/public/curriculum/concepts/communication.html +++ b/public/curriculum/concepts/communication.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/compaction.html b/public/curriculum/concepts/compaction.html index ec70a09..9a58935 100644 --- a/public/curriculum/concepts/compaction.html +++ b/public/curriculum/concepts/compaction.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/complexity-analysis.html b/public/curriculum/concepts/complexity-analysis.html index 7b61704..1eabfd1 100644 --- a/public/curriculum/concepts/complexity-analysis.html +++ b/public/curriculum/concepts/complexity-analysis.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/compute-memory-storage-hierarchy.html b/public/curriculum/concepts/compute-memory-storage-hierarchy.html index 389f4f2..07d5e70 100644 --- a/public/curriculum/concepts/compute-memory-storage-hierarchy.html +++ b/public/curriculum/concepts/compute-memory-storage-hierarchy.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/concurrency-design.html b/public/curriculum/concepts/concurrency-design.html index 5a6cc0d..0e327ec 100644 --- a/public/curriculum/concepts/concurrency-design.html +++ b/public/curriculum/concepts/concurrency-design.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/conflict-resolution.html b/public/curriculum/concepts/conflict-resolution.html index 2b12f71..1777912 100644 --- a/public/curriculum/concepts/conflict-resolution.html +++ b/public/curriculum/concepts/conflict-resolution.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/consensus.html b/public/curriculum/concepts/consensus.html index 08a40bc..e52e246 100644 --- a/public/curriculum/concepts/consensus.html +++ b/public/curriculum/concepts/consensus.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/consistent-hashing.html b/public/curriculum/concepts/consistent-hashing.html index 2e6614a..f6cf876 100644 --- a/public/curriculum/concepts/consistent-hashing.html +++ b/public/curriculum/concepts/consistent-hashing.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/containers-kubernetes.html b/public/curriculum/concepts/containers-kubernetes.html index aaf5b3a..48aeb5b 100644 --- a/public/curriculum/concepts/containers-kubernetes.html +++ b/public/curriculum/concepts/containers-kubernetes.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/context-packing.html b/public/curriculum/concepts/context-packing.html index 181343c..7466236 100644 --- a/public/curriculum/concepts/context-packing.html +++ b/public/curriculum/concepts/context-packing.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/continuous-batching.html b/public/curriculum/concepts/continuous-batching.html index bdaa57a..96eb298 100644 --- a/public/curriculum/concepts/continuous-batching.html +++ b/public/curriculum/concepts/continuous-batching.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/covariance-correlation.html b/public/curriculum/concepts/covariance-correlation.html index 9fe975f..77f63b0 100644 --- a/public/curriculum/concepts/covariance-correlation.html +++ b/public/curriculum/concepts/covariance-correlation.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/curse-of-dimensionality.html b/public/curriculum/concepts/curse-of-dimensionality.html index ebc782d..0caed31 100644 --- a/public/curriculum/concepts/curse-of-dimensionality.html +++ b/public/curriculum/concepts/curse-of-dimensionality.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/customer-obsession.html b/public/curriculum/concepts/customer-obsession.html index a47e56e..f29ce90 100644 --- a/public/curriculum/concepts/customer-obsession.html +++ b/public/curriculum/concepts/customer-obsession.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/data-representation.html b/public/curriculum/concepts/data-representation.html index dddded1..ee94cc6 100644 --- a/public/curriculum/concepts/data-representation.html +++ b/public/curriculum/concepts/data-representation.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/decorator-structural.html b/public/curriculum/concepts/decorator-structural.html index 2badd5d..38ff58c 100644 --- a/public/curriculum/concepts/decorator-structural.html +++ b/public/curriculum/concepts/decorator-structural.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/dependency-blast-radius.html b/public/curriculum/concepts/dependency-blast-radius.html index 6dc2c0f..33bb24b 100644 --- a/public/curriculum/concepts/dependency-blast-radius.html +++ b/public/curriculum/concepts/dependency-blast-radius.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/derivatives-and-gradients.html b/public/curriculum/concepts/derivatives-and-gradients.html index a43fbd2..7965708 100644 --- a/public/curriculum/concepts/derivatives-and-gradients.html +++ b/public/curriculum/concepts/derivatives-and-gradients.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/descriptive-statistics.html b/public/curriculum/concepts/descriptive-statistics.html index 252e46c..530d860 100644 --- a/public/curriculum/concepts/descriptive-statistics.html +++ b/public/curriculum/concepts/descriptive-statistics.html @@ -17,6 +17,8 @@ + + @@ -116,16 +118,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/disk-based-ann.html b/public/curriculum/concepts/disk-based-ann.html index 8989e54..a10a61f 100644 --- a/public/curriculum/concepts/disk-based-ann.html +++ b/public/curriculum/concepts/disk-based-ann.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/distributed-failure-recovery.html b/public/curriculum/concepts/distributed-failure-recovery.html index 04a8cf5..a2520c6 100644 --- a/public/curriculum/concepts/distributed-failure-recovery.html +++ b/public/curriculum/concepts/distributed-failure-recovery.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/distributed-infra.html b/public/curriculum/concepts/distributed-infra.html index 5363f0d..58d15d3 100644 --- a/public/curriculum/concepts/distributed-infra.html +++ b/public/curriculum/concepts/distributed-infra.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/distributed-workflows-temporal.html b/public/curriculum/concepts/distributed-workflows-temporal.html index 6b5d29c..993c7a1 100644 --- a/public/curriculum/concepts/distributed-workflows-temporal.html +++ b/public/curriculum/concepts/distributed-workflows-temporal.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/dp-1d.html b/public/curriculum/concepts/dp-1d.html index cfb5bb4..827d817 100644 --- a/public/curriculum/concepts/dp-1d.html +++ b/public/curriculum/concepts/dp-1d.html @@ -17,6 +17,8 @@ + + @@ -156,16 +158,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/dp-2d.html b/public/curriculum/concepts/dp-2d.html index a216446..be882e3 100644 --- a/public/curriculum/concepts/dp-2d.html +++ b/public/curriculum/concepts/dp-2d.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/durable-agent-execution.html b/public/curriculum/concepts/durable-agent-execution.html index 86d0fed..39eb336 100644 --- a/public/curriculum/concepts/durable-agent-execution.html +++ b/public/curriculum/concepts/durable-agent-execution.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/ecommerce-payments.html b/public/curriculum/concepts/ecommerce-payments.html index 6661ea9..d4a09a7 100644 --- a/public/curriculum/concepts/ecommerce-payments.html +++ b/public/curriculum/concepts/ecommerce-payments.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/eigenvalues-decomposition.html b/public/curriculum/concepts/eigenvalues-decomposition.html index bc8fe8b..99b291d 100644 --- a/public/curriculum/concepts/eigenvalues-decomposition.html +++ b/public/curriculum/concepts/eigenvalues-decomposition.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/embeddings.html b/public/curriculum/concepts/embeddings.html index 389e0d9..afc6871 100644 --- a/public/curriculum/concepts/embeddings.html +++ b/public/curriculum/concepts/embeddings.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/estimation-confidence.html b/public/curriculum/concepts/estimation-confidence.html index e788478..1eeaee7 100644 --- a/public/curriculum/concepts/estimation-confidence.html +++ b/public/curriculum/concepts/estimation-confidence.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/event-streaming-kafka.html b/public/curriculum/concepts/event-streaming-kafka.html index 1641507..233b27e 100644 --- a/public/curriculum/concepts/event-streaming-kafka.html +++ b/public/curriculum/concepts/event-streaming-kafka.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/evidence-backed-verification.html b/public/curriculum/concepts/evidence-backed-verification.html index ae26910..9feed64 100644 --- a/public/curriculum/concepts/evidence-backed-verification.html +++ b/public/curriculum/concepts/evidence-backed-verification.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/factory-creational.html b/public/curriculum/concepts/factory-creational.html index 05be607..4cbbc17 100644 --- a/public/curriculum/concepts/factory-creational.html +++ b/public/curriculum/concepts/factory-creational.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/failure-and-learning.html b/public/curriculum/concepts/failure-and-learning.html index 14e1df5..e591ab9 100644 --- a/public/curriculum/concepts/failure-and-learning.html +++ b/public/curriculum/concepts/failure-and-learning.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/flashattention-kernels.html b/public/curriculum/concepts/flashattention-kernels.html index 8770746..c481c4b 100644 --- a/public/curriculum/concepts/flashattention-kernels.html +++ b/public/curriculum/concepts/flashattention-kernels.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/game-design.html b/public/curriculum/concepts/game-design.html index c0a74bb..93c01c2 100644 --- a/public/curriculum/concepts/game-design.html +++ b/public/curriculum/concepts/game-design.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/gpu-utilization.html b/public/curriculum/concepts/gpu-utilization.html index 72fdc45..2d52f3a 100644 --- a/public/curriculum/concepts/gpu-utilization.html +++ b/public/curriculum/concepts/gpu-utilization.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/graphs.html b/public/curriculum/concepts/graphs.html index 1fd7654..4f688b3 100644 --- a/public/curriculum/concepts/graphs.html +++ b/public/curriculum/concepts/graphs.html @@ -17,6 +17,8 @@ + + @@ -121,16 +123,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/greedy.html b/public/curriculum/concepts/greedy.html index 2dfbdc4..857815c 100644 --- a/public/curriculum/concepts/greedy.html +++ b/public/curriculum/concepts/greedy.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/hallucination-failure-detection.html b/public/curriculum/concepts/hallucination-failure-detection.html index d6ea292..f56d1e5 100644 --- a/public/curriculum/concepts/hallucination-failure-detection.html +++ b/public/curriculum/concepts/hallucination-failure-detection.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/harness-evaluation.html b/public/curriculum/concepts/harness-evaluation.html index 80e8a2b..475999f 100644 --- a/public/curriculum/concepts/harness-evaluation.html +++ b/public/curriculum/concepts/harness-evaluation.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/heap.html b/public/curriculum/concepts/heap.html index 65d5c9f..b3f0ebd 100644 --- a/public/curriculum/concepts/heap.html +++ b/public/curriculum/concepts/heap.html @@ -17,6 +17,8 @@ + + @@ -128,16 +130,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/hnsw.html b/public/curriculum/concepts/hnsw.html index 7b033b5..9eceb92 100644 --- a/public/curriculum/concepts/hnsw.html +++ b/public/curriculum/concepts/hnsw.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/http-lifecycle.html b/public/curriculum/concepts/http-lifecycle.html index fe4b0f2..02d3edd 100644 --- a/public/curriculum/concepts/http-lifecycle.html +++ b/public/curriculum/concepts/http-lifecycle.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/human-computer-interaction.html b/public/curriculum/concepts/human-computer-interaction.html index 678e063..e0111e5 100644 --- a/public/curriculum/concepts/human-computer-interaction.html +++ b/public/curriculum/concepts/human-computer-interaction.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/human-review-systems.html b/public/curriculum/concepts/human-review-systems.html index 0fd93df..635e347 100644 --- a/public/curriculum/concepts/human-review-systems.html +++ b/public/curriculum/concepts/human-review-systems.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/hybrid-search.html b/public/curriculum/concepts/hybrid-search.html index 0ca535f..2682d81 100644 --- a/public/curriculum/concepts/hybrid-search.html +++ b/public/curriculum/concepts/hybrid-search.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/hypothesis-testing.html b/public/curriculum/concepts/hypothesis-testing.html index 0ac7c61..a851b39 100644 --- a/public/curriculum/concepts/hypothesis-testing.html +++ b/public/curriculum/concepts/hypothesis-testing.html @@ -17,6 +17,8 @@ + + @@ -124,16 +126,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/ide-cli-tooling.html b/public/curriculum/concepts/ide-cli-tooling.html index 366fb63..62cebd7 100644 --- a/public/curriculum/concepts/ide-cli-tooling.html +++ b/public/curriculum/concepts/ide-cli-tooling.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/idempotency.html b/public/curriculum/concepts/idempotency.html index 922d0b8..abe5dad 100644 --- a/public/curriculum/concepts/idempotency.html +++ b/public/curriculum/concepts/idempotency.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/image-video-generation.html b/public/curriculum/concepts/image-video-generation.html index a8ff786..f0cbeb6 100644 --- a/public/curriculum/concepts/image-video-generation.html +++ b/public/curriculum/concepts/image-video-generation.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/independent-agent-verification.html b/public/curriculum/concepts/independent-agent-verification.html index 9032bd0..a9e2394 100644 --- a/public/curriculum/concepts/independent-agent-verification.html +++ b/public/curriculum/concepts/independent-agent-verification.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/index-updates-tombstones.html b/public/curriculum/concepts/index-updates-tombstones.html index cfd3ca2..fd0ddbf 100644 --- a/public/curriculum/concepts/index-updates-tombstones.html +++ b/public/curriculum/concepts/index-updates-tombstones.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/inference-cost-latency.html b/public/curriculum/concepts/inference-cost-latency.html index e6dadda..c04b544 100644 --- a/public/curriculum/concepts/inference-cost-latency.html +++ b/public/curriculum/concepts/inference-cost-latency.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/inference-engines.html b/public/curriculum/concepts/inference-engines.html index ec33024..d01c6a8 100644 --- a/public/curriculum/concepts/inference-engines.html +++ b/public/curriculum/concepts/inference-engines.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/inference-hardware.html b/public/curriculum/concepts/inference-hardware.html index 84ab54d..470b454 100644 --- a/public/curriculum/concepts/inference-hardware.html +++ b/public/curriculum/concepts/inference-hardware.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/information-entropy.html b/public/curriculum/concepts/information-entropy.html index c0ede6d..b134443 100644 --- a/public/curriculum/concepts/information-entropy.html +++ b/public/curriculum/concepts/information-entropy.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/infrastructure-automation.html b/public/curriculum/concepts/infrastructure-automation.html index eafad4d..99fa4b8 100644 --- a/public/curriculum/concepts/infrastructure-automation.html +++ b/public/curriculum/concepts/infrastructure-automation.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/innovation-and-creativity.html b/public/curriculum/concepts/innovation-and-creativity.html index a4ac088..7c0dac1 100644 --- a/public/curriculum/concepts/innovation-and-creativity.html +++ b/public/curriculum/concepts/innovation-and-creativity.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/interactive-2d-3d-systems.html b/public/curriculum/concepts/interactive-2d-3d-systems.html index d7e4a28..1720dcb 100644 --- a/public/curriculum/concepts/interactive-2d-3d-systems.html +++ b/public/curriculum/concepts/interactive-2d-3d-systems.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/intervals.html b/public/curriculum/concepts/intervals.html index 9c19319..2b9ffea 100644 --- a/public/curriculum/concepts/intervals.html +++ b/public/curriculum/concepts/intervals.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/inverted-index.html b/public/curriculum/concepts/inverted-index.html index f9f5e7a..313d7f5 100644 --- a/public/curriculum/concepts/inverted-index.html +++ b/public/curriculum/concepts/inverted-index.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/isolation-levels.html b/public/curriculum/concepts/isolation-levels.html index 6306a15..5d1812c 100644 --- a/public/curriculum/concepts/isolation-levels.html +++ b/public/curriculum/concepts/isolation-levels.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/ivf.html b/public/curriculum/concepts/ivf.html index e23e725..069ed80 100644 --- a/public/curriculum/concepts/ivf.html +++ b/public/curriculum/concepts/ivf.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/join-algorithms.html b/public/curriculum/concepts/join-algorithms.html index bfb75f8..da798e6 100644 --- a/public/curriculum/concepts/join-algorithms.html +++ b/public/curriculum/concepts/join-algorithms.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/kv-cache-paged-attention.html b/public/curriculum/concepts/kv-cache-paged-attention.html index 0dfbc9d..efbaf29 100644 --- a/public/curriculum/concepts/kv-cache-paged-attention.html +++ b/public/curriculum/concepts/kv-cache-paged-attention.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/landing-pages.html b/public/curriculum/concepts/landing-pages.html index 59bb489..dd37858 100644 --- a/public/curriculum/concepts/landing-pages.html +++ b/public/curriculum/concepts/landing-pages.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/leadership-and-influence.html b/public/curriculum/concepts/leadership-and-influence.html index 1b33cea..9254aad 100644 --- a/public/curriculum/concepts/leadership-and-influence.html +++ b/public/curriculum/concepts/leadership-and-influence.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/learning-to-rank.html b/public/curriculum/concepts/learning-to-rank.html index 2542ad8..4610ab5 100644 --- a/public/curriculum/concepts/learning-to-rank.html +++ b/public/curriculum/concepts/learning-to-rank.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/linked-list.html b/public/curriculum/concepts/linked-list.html index afa63b5..ae1ee83 100644 --- a/public/curriculum/concepts/linked-list.html +++ b/public/curriculum/concepts/linked-list.html @@ -17,6 +17,8 @@ + + @@ -114,16 +116,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/llm-evals.html b/public/curriculum/concepts/llm-evals.html index e820efa..25e0012 100644 --- a/public/curriculum/concepts/llm-evals.html +++ b/public/curriculum/concepts/llm-evals.html @@ -17,6 +17,8 @@ + + @@ -119,16 +121,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/load-balancing.html b/public/curriculum/concepts/load-balancing.html index 1ae3449..72331c0 100644 --- a/public/curriculum/concepts/load-balancing.html +++ b/public/curriculum/concepts/load-balancing.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/local-on-device-inference.html b/public/curriculum/concepts/local-on-device-inference.html index 4bf1819..3bd9b6f 100644 --- a/public/curriculum/concepts/local-on-device-inference.html +++ b/public/curriculum/concepts/local-on-device-inference.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/location-transport.html b/public/curriculum/concepts/location-transport.html index 221a8c8..51d0fde 100644 --- a/public/curriculum/concepts/location-transport.html +++ b/public/curriculum/concepts/location-transport.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/long-running-scheduled-agents.html b/public/curriculum/concepts/long-running-scheduled-agents.html index a4a2ee4..7f63721 100644 --- a/public/curriculum/concepts/long-running-scheduled-agents.html +++ b/public/curriculum/concepts/long-running-scheduled-agents.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/lsm-tree.html b/public/curriculum/concepts/lsm-tree.html index 7de9f13..0aa15dc 100644 --- a/public/curriculum/concepts/lsm-tree.html +++ b/public/curriculum/concepts/lsm-tree.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/math-geometry.html b/public/curriculum/concepts/math-geometry.html index 3e60c8d..15a1b73 100644 --- a/public/curriculum/concepts/math-geometry.html +++ b/public/curriculum/concepts/math-geometry.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/matrices-and-transformations.html b/public/curriculum/concepts/matrices-and-transformations.html index 7048a30..d2a9122 100644 --- a/public/curriculum/concepts/matrices-and-transformations.html +++ b/public/curriculum/concepts/matrices-and-transformations.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/matrix-rank-basis.html b/public/curriculum/concepts/matrix-rank-basis.html index ef61516..66f4f2d 100644 --- a/public/curriculum/concepts/matrix-rank-basis.html +++ b/public/curriculum/concepts/matrix-rank-basis.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/maximum-likelihood.html b/public/curriculum/concepts/maximum-likelihood.html index 599e6e1..b6ce109 100644 --- a/public/curriculum/concepts/maximum-likelihood.html +++ b/public/curriculum/concepts/maximum-likelihood.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/mcp-integrations.html b/public/curriculum/concepts/mcp-integrations.html index c309f7e..3f4e8a2 100644 --- a/public/curriculum/concepts/mcp-integrations.html +++ b/public/curriculum/concepts/mcp-integrations.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/message-queues.html b/public/curriculum/concepts/message-queues.html index 1d82a1b..6602693 100644 --- a/public/curriculum/concepts/message-queues.html +++ b/public/curriculum/concepts/message-queues.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/messaging-realtime.html b/public/curriculum/concepts/messaging-realtime.html index 2c7b072..81e74d4 100644 --- a/public/curriculum/concepts/messaging-realtime.html +++ b/public/curriculum/concepts/messaging-realtime.html @@ -17,6 +17,8 @@ + + @@ -120,16 +122,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/metadata-filtering.html b/public/curriculum/concepts/metadata-filtering.html index bb72806..92d2fe1 100644 --- a/public/curriculum/concepts/metadata-filtering.html +++ b/public/curriculum/concepts/metadata-filtering.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/minimum-spanning-tree.html b/public/curriculum/concepts/minimum-spanning-tree.html index e59f449..329cf50 100644 --- a/public/curriculum/concepts/minimum-spanning-tree.html +++ b/public/curriculum/concepts/minimum-spanning-tree.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/ml-adamw.html b/public/curriculum/concepts/ml-adamw.html index 0af84d5..ef8b448 100644 --- a/public/curriculum/concepts/ml-adamw.html +++ b/public/curriculum/concepts/ml-adamw.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/ml-backprop.html b/public/curriculum/concepts/ml-backprop.html index df4d9da..3dae7b6 100644 --- a/public/curriculum/concepts/ml-backprop.html +++ b/public/curriculum/concepts/ml-backprop.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/ml-browser-runtime.html b/public/curriculum/concepts/ml-browser-runtime.html index f3a5245..144415c 100644 --- a/public/curriculum/concepts/ml-browser-runtime.html +++ b/public/curriculum/concepts/ml-browser-runtime.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/ml-checkpointing.html b/public/curriculum/concepts/ml-checkpointing.html index f1d6811..b17d1cd 100644 --- a/public/curriculum/concepts/ml-checkpointing.html +++ b/public/curriculum/concepts/ml-checkpointing.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/ml-data-engineering.html b/public/curriculum/concepts/ml-data-engineering.html index 7c1ac01..29b4178 100644 --- a/public/curriculum/concepts/ml-data-engineering.html +++ b/public/curriculum/concepts/ml-data-engineering.html @@ -17,6 +17,8 @@ + + @@ -119,16 +121,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/ml-embeddings.html b/public/curriculum/concepts/ml-embeddings.html index 0ac88cd..69a3606 100644 --- a/public/curriculum/concepts/ml-embeddings.html +++ b/public/curriculum/concepts/ml-embeddings.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/ml-evaluation.html b/public/curriculum/concepts/ml-evaluation.html index 122f22a..4945c5e 100644 --- a/public/curriculum/concepts/ml-evaluation.html +++ b/public/curriculum/concepts/ml-evaluation.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/ml-gradient-descent.html b/public/curriculum/concepts/ml-gradient-descent.html index f43b985..ab04d3e 100644 --- a/public/curriculum/concepts/ml-gradient-descent.html +++ b/public/curriculum/concepts/ml-gradient-descent.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/ml-language-modeling.html b/public/curriculum/concepts/ml-language-modeling.html index 171ed03..fc58617 100644 --- a/public/curriculum/concepts/ml-language-modeling.html +++ b/public/curriculum/concepts/ml-language-modeling.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/ml-lora.html b/public/curriculum/concepts/ml-lora.html index 1b41020..579b0f0 100644 --- a/public/curriculum/concepts/ml-lora.html +++ b/public/curriculum/concepts/ml-lora.html @@ -17,6 +17,8 @@ + + @@ -119,16 +121,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/ml-math.html b/public/curriculum/concepts/ml-math.html index aa27d83..18a15c9 100644 --- a/public/curriculum/concepts/ml-math.html +++ b/public/curriculum/concepts/ml-math.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/ml-multi-head.html b/public/curriculum/concepts/ml-multi-head.html index 6e700bd..8d9bfd3 100644 --- a/public/curriculum/concepts/ml-multi-head.html +++ b/public/curriculum/concepts/ml-multi-head.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/ml-pretraining.html b/public/curriculum/concepts/ml-pretraining.html index b1098b7..b1501a3 100644 --- a/public/curriculum/concepts/ml-pretraining.html +++ b/public/curriculum/concepts/ml-pretraining.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/ml-rl-alignment.html b/public/curriculum/concepts/ml-rl-alignment.html index feda920..d3830f3 100644 --- a/public/curriculum/concepts/ml-rl-alignment.html +++ b/public/curriculum/concepts/ml-rl-alignment.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/ml-sampling.html b/public/curriculum/concepts/ml-sampling.html index 1957fca..91e146b 100644 --- a/public/curriculum/concepts/ml-sampling.html +++ b/public/curriculum/concepts/ml-sampling.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/ml-self-attention.html b/public/curriculum/concepts/ml-self-attention.html index d50ce1d..8ad4c62 100644 --- a/public/curriculum/concepts/ml-self-attention.html +++ b/public/curriculum/concepts/ml-self-attention.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/ml-softmax-xent.html b/public/curriculum/concepts/ml-softmax-xent.html index 2ab79e2..824be90 100644 --- a/public/curriculum/concepts/ml-softmax-xent.html +++ b/public/curriculum/concepts/ml-softmax-xent.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/ml-tokenization.html b/public/curriculum/concepts/ml-tokenization.html index 9986e57..e8eafd3 100644 --- a/public/curriculum/concepts/ml-tokenization.html +++ b/public/curriculum/concepts/ml-tokenization.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/ml-training.html b/public/curriculum/concepts/ml-training.html index 47992fd..c886b11 100644 --- a/public/curriculum/concepts/ml-training.html +++ b/public/curriculum/concepts/ml-training.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/ml-transformer-block.html b/public/curriculum/concepts/ml-transformer-block.html index 6e4d04a..10f807e 100644 --- a/public/curriculum/concepts/ml-transformer-block.html +++ b/public/curriculum/concepts/ml-transformer-block.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/ml-webgpu.html b/public/curriculum/concepts/ml-webgpu.html index de80b59..5d0df7f 100644 --- a/public/curriculum/concepts/ml-webgpu.html +++ b/public/curriculum/concepts/ml-webgpu.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/model-quantization.html b/public/curriculum/concepts/model-quantization.html index 1396ca2..1b9ff98 100644 --- a/public/curriculum/concepts/model-quantization.html +++ b/public/curriculum/concepts/model-quantization.html @@ -17,6 +17,8 @@ + + @@ -123,16 +125,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/model-routing.html b/public/curriculum/concepts/model-routing.html index 5fb2e04..eca42e3 100644 --- a/public/curriculum/concepts/model-routing.html +++ b/public/curriculum/concepts/model-routing.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/momentum-backtest.html b/public/curriculum/concepts/momentum-backtest.html index 1ae22a6..688c2ea 100644 --- a/public/curriculum/concepts/momentum-backtest.html +++ b/public/curriculum/concepts/momentum-backtest.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/monitoring-analytics.html b/public/curriculum/concepts/monitoring-analytics.html index 6e2d184..180d0dc 100644 --- a/public/curriculum/concepts/monitoring-analytics.html +++ b/public/curriculum/concepts/monitoring-analytics.html @@ -17,6 +17,8 @@ + + @@ -120,16 +122,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/monotonic-stack.html b/public/curriculum/concepts/monotonic-stack.html index d08ed13..ab7ef4b 100644 --- a/public/curriculum/concepts/monotonic-stack.html +++ b/public/curriculum/concepts/monotonic-stack.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/multi-agent-coordination.html b/public/curriculum/concepts/multi-agent-coordination.html index 283b85e..4962740 100644 --- a/public/curriculum/concepts/multi-agent-coordination.html +++ b/public/curriculum/concepts/multi-agent-coordination.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/multimodal-models.html b/public/curriculum/concepts/multimodal-models.html index 09d671f..6635085 100644 --- a/public/curriculum/concepts/multimodal-models.html +++ b/public/curriculum/concepts/multimodal-models.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/multivariable-optimization.html b/public/curriculum/concepts/multivariable-optimization.html index e7b5191..14107f8 100644 --- a/public/curriculum/concepts/multivariable-optimization.html +++ b/public/curriculum/concepts/multivariable-optimization.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/network-protocol-engineering.html b/public/curriculum/concepts/network-protocol-engineering.html index b73e501..6ddf4df 100644 --- a/public/curriculum/concepts/network-protocol-engineering.html +++ b/public/curriculum/concepts/network-protocol-engineering.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/normalization.html b/public/curriculum/concepts/normalization.html index 08a9ba6..64fa131 100644 --- a/public/curriculum/concepts/normalization.html +++ b/public/curriculum/concepts/normalization.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/numerical-stability.html b/public/curriculum/concepts/numerical-stability.html index 24d2479..9fa40d0 100644 --- a/public/curriculum/concepts/numerical-stability.html +++ b/public/curriculum/concepts/numerical-stability.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/object-modeling.html b/public/curriculum/concepts/object-modeling.html index 847e61a..cf0894b 100644 --- a/public/curriculum/concepts/object-modeling.html +++ b/public/curriculum/concepts/object-modeling.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/object-storage.html b/public/curriculum/concepts/object-storage.html index 216f0a9..c9059f4 100644 --- a/public/curriculum/concepts/object-storage.html +++ b/public/curriculum/concepts/object-storage.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/observer-pattern.html b/public/curriculum/concepts/observer-pattern.html index 431e65c..8686809 100644 --- a/public/curriculum/concepts/observer-pattern.html +++ b/public/curriculum/concepts/observer-pattern.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/open-weight-models.html b/public/curriculum/concepts/open-weight-models.html index 9fd9965..8cd275b 100644 --- a/public/curriculum/concepts/open-weight-models.html +++ b/public/curriculum/concepts/open-weight-models.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/operating-system-mechanics.html b/public/curriculum/concepts/operating-system-mechanics.html index 8352ac9..05c9692 100644 --- a/public/curriculum/concepts/operating-system-mechanics.html +++ b/public/curriculum/concepts/operating-system-mechanics.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/ownership-and-accountability.html b/public/curriculum/concepts/ownership-and-accountability.html index c3b117e..0d3c847 100644 --- a/public/curriculum/concepts/ownership-and-accountability.html +++ b/public/curriculum/concepts/ownership-and-accountability.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/pagination.html b/public/curriculum/concepts/pagination.html index b6398ca..cdd2ddf 100644 --- a/public/curriculum/concepts/pagination.html +++ b/public/curriculum/concepts/pagination.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/pca-projection.html b/public/curriculum/concepts/pca-projection.html index bbf23e9..e2848b4 100644 --- a/public/curriculum/concepts/pca-projection.html +++ b/public/curriculum/concepts/pca-projection.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/platform-scheduling-orchestration.html b/public/curriculum/concepts/platform-scheduling-orchestration.html index e08ad1c..9a45062 100644 --- a/public/curriculum/concepts/platform-scheduling-orchestration.html +++ b/public/curriculum/concepts/platform-scheduling-orchestration.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/portfolio-risk-metrics.html b/public/curriculum/concepts/portfolio-risk-metrics.html index c9f1c26..6ed7897 100644 --- a/public/curriculum/concepts/portfolio-risk-metrics.html +++ b/public/curriculum/concepts/portfolio-risk-metrics.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/pose-motion-tracking.html b/public/curriculum/concepts/pose-motion-tracking.html index 1b83a8a..05b5617 100644 --- a/public/curriculum/concepts/pose-motion-tracking.html +++ b/public/curriculum/concepts/pose-motion-tracking.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/positioning.html b/public/curriculum/concepts/positioning.html index 4b8905f..214d8ad 100644 --- a/public/curriculum/concepts/positioning.html +++ b/public/curriculum/concepts/positioning.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/prefix-sums.html b/public/curriculum/concepts/prefix-sums.html index 6ca6488..346da7d 100644 --- a/public/curriculum/concepts/prefix-sums.html +++ b/public/curriculum/concepts/prefix-sums.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/probability-fundamentals.html b/public/curriculum/concepts/probability-fundamentals.html index 49adbe4..b094174 100644 --- a/public/curriculum/concepts/probability-fundamentals.html +++ b/public/curriculum/concepts/probability-fundamentals.html @@ -17,6 +17,8 @@ + + @@ -120,16 +122,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/problem-solving-and-decision-making.html b/public/curriculum/concepts/problem-solving-and-decision-making.html index 0dbe617..208b98b 100644 --- a/public/curriculum/concepts/problem-solving-and-decision-making.html +++ b/public/curriculum/concepts/problem-solving-and-decision-making.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/product-analytics.html b/public/curriculum/concepts/product-analytics.html index 4d6ab18..9cd2935 100644 --- a/public/curriculum/concepts/product-analytics.html +++ b/public/curriculum/concepts/product-analytics.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/product-quantization.html b/public/curriculum/concepts/product-quantization.html index cc5733a..3cf6bfe 100644 --- a/public/curriculum/concepts/product-quantization.html +++ b/public/curriculum/concepts/product-quantization.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/program-memory-model.html b/public/curriculum/concepts/program-memory-model.html index 3fe40a5..4b149a3 100644 --- a/public/curriculum/concepts/program-memory-model.html +++ b/public/curriculum/concepts/program-memory-model.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/prompt-versioning.html b/public/curriculum/concepts/prompt-versioning.html index 430042a..bdebeba 100644 --- a/public/curriculum/concepts/prompt-versioning.html +++ b/public/curriculum/concepts/prompt-versioning.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/quality-cost-latency-measurement.html b/public/curriculum/concepts/quality-cost-latency-measurement.html index 43947c6..962b9a0 100644 --- a/public/curriculum/concepts/quality-cost-latency-measurement.html +++ b/public/curriculum/concepts/quality-cost-latency-measurement.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/query-execution-optimization.html b/public/curriculum/concepts/query-execution-optimization.html index 36b64f4..7619fb0 100644 --- a/public/curriculum/concepts/query-execution-optimization.html +++ b/public/curriculum/concepts/query-execution-optimization.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/query-rewriting.html b/public/curriculum/concepts/query-rewriting.html index 81225c1..f074f63 100644 --- a/public/curriculum/concepts/query-rewriting.html +++ b/public/curriculum/concepts/query-rewriting.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/queueing-theory.html b/public/curriculum/concepts/queueing-theory.html index 6d17c92..b0b42ef 100644 --- a/public/curriculum/concepts/queueing-theory.html +++ b/public/curriculum/concepts/queueing-theory.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/quickselect.html b/public/curriculum/concepts/quickselect.html index 3de4d36..c312441 100644 --- a/public/curriculum/concepts/quickselect.html +++ b/public/curriculum/concepts/quickselect.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/rag-system-design.html b/public/curriculum/concepts/rag-system-design.html index f4e0fa1..ff92272 100644 --- a/public/curriculum/concepts/rag-system-design.html +++ b/public/curriculum/concepts/rag-system-design.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/rag.html b/public/curriculum/concepts/rag.html index 10c4e8e..dfec264 100644 --- a/public/curriculum/concepts/rag.html +++ b/public/curriculum/concepts/rag.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/random-variables.html b/public/curriculum/concepts/random-variables.html index 03d0f03..6aa54c6 100644 --- a/public/curriculum/concepts/random-variables.html +++ b/public/curriculum/concepts/random-variables.html @@ -17,6 +17,8 @@ + + @@ -116,16 +118,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/random-walks-markov.html b/public/curriculum/concepts/random-walks-markov.html index c71cdf6..803d003 100644 --- a/public/curriculum/concepts/random-walks-markov.html +++ b/public/curriculum/concepts/random-walks-markov.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/ranking-metrics.html b/public/curriculum/concepts/ranking-metrics.html index 35ec47e..8b42de0 100644 --- a/public/curriculum/concepts/ranking-metrics.html +++ b/public/curriculum/concepts/ranking-metrics.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/rate-limiter-design.html b/public/curriculum/concepts/rate-limiter-design.html index 76b316a..15f7683 100644 --- a/public/curriculum/concepts/rate-limiter-design.html +++ b/public/curriculum/concepts/rate-limiter-design.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/rate-limiting.html b/public/curriculum/concepts/rate-limiting.html index 22a554a..d3c1a54 100644 --- a/public/curriculum/concepts/rate-limiting.html +++ b/public/curriculum/concepts/rate-limiting.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/recall-latency-tradeoffs.html b/public/curriculum/concepts/recall-latency-tradeoffs.html index 2751e4b..0cf1e49 100644 --- a/public/curriculum/concepts/recall-latency-tradeoffs.html +++ b/public/curriculum/concepts/recall-latency-tradeoffs.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/recursion-and-induction.html b/public/curriculum/concepts/recursion-and-induction.html index 49c2e1b..7d9edc0 100644 --- a/public/curriculum/concepts/recursion-and-induction.html +++ b/public/curriculum/concepts/recursion-and-induction.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/regression-basics.html b/public/curriculum/concepts/regression-basics.html index 1faa7b7..8cedde9 100644 --- a/public/curriculum/concepts/regression-basics.html +++ b/public/curriculum/concepts/regression-basics.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/reliability-fault-tolerance.html b/public/curriculum/concepts/reliability-fault-tolerance.html index 9ca8eb1..7a3df24 100644 --- a/public/curriculum/concepts/reliability-fault-tolerance.html +++ b/public/curriculum/concepts/reliability-fault-tolerance.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/replication.html b/public/curriculum/concepts/replication.html index 8e6fe51..1567304 100644 --- a/public/curriculum/concepts/replication.html +++ b/public/curriculum/concepts/replication.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/repository-instruction-topology.html b/public/curriculum/concepts/repository-instruction-topology.html index 1c0cd5b..c4c2d87 100644 --- a/public/curriculum/concepts/repository-instruction-topology.html +++ b/public/curriculum/concepts/repository-instruction-topology.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/repository-intelligence.html b/public/curriculum/concepts/repository-intelligence.html index 2a38863..19b7d74 100644 --- a/public/curriculum/concepts/repository-intelligence.html +++ b/public/curriculum/concepts/repository-intelligence.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/requirements-scoping.html b/public/curriculum/concepts/requirements-scoping.html index 8914a8f..f65a1dd 100644 --- a/public/curriculum/concepts/requirements-scoping.html +++ b/public/curriculum/concepts/requirements-scoping.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/reranking.html b/public/curriculum/concepts/reranking.html index f4534f6..5e43e82 100644 --- a/public/curriculum/concepts/reranking.html +++ b/public/curriculum/concepts/reranking.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/retries-and-circuit-breakers.html b/public/curriculum/concepts/retries-and-circuit-breakers.html index 0b177a7..57a229f 100644 --- a/public/curriculum/concepts/retries-and-circuit-breakers.html +++ b/public/curriculum/concepts/retries-and-circuit-breakers.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/retries-dlq.html b/public/curriculum/concepts/retries-dlq.html index 4aaef87..9fb5109 100644 --- a/public/curriculum/concepts/retries-dlq.html +++ b/public/curriculum/concepts/retries-dlq.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/returns-volatility.html b/public/curriculum/concepts/returns-volatility.html index 3bb5efc..f2bc53f 100644 --- a/public/curriculum/concepts/returns-volatility.html +++ b/public/curriculum/concepts/returns-volatility.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/robotics-systems.html b/public/curriculum/concepts/robotics-systems.html index 78d9f22..598199a 100644 --- a/public/curriculum/concepts/robotics-systems.html +++ b/public/curriculum/concepts/robotics-systems.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/runtime-performance-engineering.html b/public/curriculum/concepts/runtime-performance-engineering.html index 38a3fa3..50f52b3 100644 --- a/public/curriculum/concepts/runtime-performance-engineering.html +++ b/public/curriculum/concepts/runtime-performance-engineering.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/sampling-and-clt.html b/public/curriculum/concepts/sampling-and-clt.html index 2f77af3..42d135e 100644 --- a/public/curriculum/concepts/sampling-and-clt.html +++ b/public/curriculum/concepts/sampling-and-clt.html @@ -17,6 +17,8 @@ + + @@ -116,16 +118,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/sandbox-execution-environments.html b/public/curriculum/concepts/sandbox-execution-environments.html index d424d7b..95c64b9 100644 --- a/public/curriculum/concepts/sandbox-execution-environments.html +++ b/public/curriculum/concepts/sandbox-execution-environments.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/search-discovery.html b/public/curriculum/concepts/search-discovery.html index 8e0f37f..14e463e 100644 --- a/public/curriculum/concepts/search-discovery.html +++ b/public/curriculum/concepts/search-discovery.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/search-evals.html b/public/curriculum/concepts/search-evals.html index 8c2e9a0..fd7efa8 100644 --- a/public/curriculum/concepts/search-evals.html +++ b/public/curriculum/concepts/search-evals.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/search-platform-design.html b/public/curriculum/concepts/search-platform-design.html index 0c1ec3b..71ce719 100644 --- a/public/curriculum/concepts/search-platform-design.html +++ b/public/curriculum/concepts/search-platform-design.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/secondary-index.html b/public/curriculum/concepts/secondary-index.html index 56bb5b7..e9037bb 100644 --- a/public/curriculum/concepts/secondary-index.html +++ b/public/curriculum/concepts/secondary-index.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/security-isolation-boundaries.html b/public/curriculum/concepts/security-isolation-boundaries.html index 577f6e8..4ff3dca 100644 --- a/public/curriculum/concepts/security-isolation-boundaries.html +++ b/public/curriculum/concepts/security-isolation-boundaries.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/seo.html b/public/curriculum/concepts/seo.html index a8df05b..7035c07 100644 --- a/public/curriculum/concepts/seo.html +++ b/public/curriculum/concepts/seo.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/sharding.html b/public/curriculum/concepts/sharding.html index 8836031..c312dbe 100644 --- a/public/curriculum/concepts/sharding.html +++ b/public/curriculum/concepts/sharding.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/shortest-path.html b/public/curriculum/concepts/shortest-path.html index 22848df..c17a9e2 100644 --- a/public/curriculum/concepts/shortest-path.html +++ b/public/curriculum/concepts/shortest-path.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/sliding-window.html b/public/curriculum/concepts/sliding-window.html index 9396b7f..7f8a49e 100644 --- a/public/curriculum/concepts/sliding-window.html +++ b/public/curriculum/concepts/sliding-window.html @@ -17,6 +17,8 @@ + + @@ -114,16 +116,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/social-media.html b/public/curriculum/concepts/social-media.html index 34b076a..f3324e0 100644 --- a/public/curriculum/concepts/social-media.html +++ b/public/curriculum/concepts/social-media.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/software-supply-chain-health.html b/public/curriculum/concepts/software-supply-chain-health.html index a0a5a77..a90039b 100644 --- a/public/curriculum/concepts/software-supply-chain-health.html +++ b/public/curriculum/concepts/software-supply-chain-health.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/sorting.html b/public/curriculum/concepts/sorting.html index 1b9b83b..f74ec90 100644 --- a/public/curriculum/concepts/sorting.html +++ b/public/curriculum/concepts/sorting.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/spatial-interfaces.html b/public/curriculum/concepts/spatial-interfaces.html index 90824da..248c899 100644 --- a/public/curriculum/concepts/spatial-interfaces.html +++ b/public/curriculum/concepts/spatial-interfaces.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/speculative-decoding.html b/public/curriculum/concepts/speculative-decoding.html index 5b6ac74..d5bbfbd 100644 --- a/public/curriculum/concepts/speculative-decoding.html +++ b/public/curriculum/concepts/speculative-decoding.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/stack.html b/public/curriculum/concepts/stack.html index d229bbd..dfae10b 100644 --- a/public/curriculum/concepts/stack.html +++ b/public/curriculum/concepts/stack.html @@ -17,6 +17,8 @@ + + @@ -128,16 +130,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/state-management.html b/public/curriculum/concepts/state-management.html index 9f8c916..4023881 100644 --- a/public/curriculum/concepts/state-management.html +++ b/public/curriculum/concepts/state-management.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/static-dynamic-analysis.html b/public/curriculum/concepts/static-dynamic-analysis.html index a6adf77..3a6f2c7 100644 --- a/public/curriculum/concepts/static-dynamic-analysis.html +++ b/public/curriculum/concepts/static-dynamic-analysis.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/stationarity-autocorrelation.html b/public/curriculum/concepts/stationarity-autocorrelation.html index 4e1c5ad..8cc898f 100644 --- a/public/curriculum/concepts/stationarity-autocorrelation.html +++ b/public/curriculum/concepts/stationarity-autocorrelation.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/storage-retrieval.html b/public/curriculum/concepts/storage-retrieval.html index b084855..87e12f2 100644 --- a/public/curriculum/concepts/storage-retrieval.html +++ b/public/curriculum/concepts/storage-retrieval.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/strategy-pattern.html b/public/curriculum/concepts/strategy-pattern.html index 7614df7..586c914 100644 --- a/public/curriculum/concepts/strategy-pattern.html +++ b/public/curriculum/concepts/strategy-pattern.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/streaming-media.html b/public/curriculum/concepts/streaming-media.html index 921e597..7577f3e 100644 --- a/public/curriculum/concepts/streaming-media.html +++ b/public/curriculum/concepts/streaming-media.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/string-matching.html b/public/curriculum/concepts/string-matching.html index 1fcc7c9..25b6970 100644 --- a/public/curriculum/concepts/string-matching.html +++ b/public/curriculum/concepts/string-matching.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/structured-outputs.html b/public/curriculum/concepts/structured-outputs.html index 841d9bb..b9fc00b 100644 --- a/public/curriculum/concepts/structured-outputs.html +++ b/public/curriculum/concepts/structured-outputs.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/teamwork-and-collaboration.html b/public/curriculum/concepts/teamwork-and-collaboration.html index 9d4a504..080e85e 100644 --- a/public/curriculum/concepts/teamwork-and-collaboration.html +++ b/public/curriculum/concepts/teamwork-and-collaboration.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/testing-infrastructure.html b/public/curriculum/concepts/testing-infrastructure.html index 69ffcd8..4b0af52 100644 --- a/public/curriculum/concepts/testing-infrastructure.html +++ b/public/curriculum/concepts/testing-infrastructure.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/tf-idf.html b/public/curriculum/concepts/tf-idf.html index c84860f..3ef9bc7 100644 --- a/public/curriculum/concepts/tf-idf.html +++ b/public/curriculum/concepts/tf-idf.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/time-management-and-prioritization.html b/public/curriculum/concepts/time-management-and-prioritization.html index 0fb1f32..2d8ea82 100644 --- a/public/curriculum/concepts/time-management-and-prioritization.html +++ b/public/curriculum/concepts/time-management-and-prioritization.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/tokenization.html b/public/curriculum/concepts/tokenization.html index 6ffe0ac..f3e3c9a 100644 --- a/public/curriculum/concepts/tokenization.html +++ b/public/curriculum/concepts/tokenization.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/tool-calling.html b/public/curriculum/concepts/tool-calling.html index 1ab2ac0..c3b7508 100644 --- a/public/curriculum/concepts/tool-calling.html +++ b/public/curriculum/concepts/tool-calling.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/tool-use-evaluations.html b/public/curriculum/concepts/tool-use-evaluations.html index b899b3c..c60baac 100644 --- a/public/curriculum/concepts/tool-use-evaluations.html +++ b/public/curriculum/concepts/tool-use-evaluations.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/top-k-pruning.html b/public/curriculum/concepts/top-k-pruning.html index a6d5983..b513f22 100644 --- a/public/curriculum/concepts/top-k-pruning.html +++ b/public/curriculum/concepts/top-k-pruning.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/topk-vector-search.html b/public/curriculum/concepts/topk-vector-search.html index ed6ffc9..5f52026 100644 --- a/public/curriculum/concepts/topk-vector-search.html +++ b/public/curriculum/concepts/topk-vector-search.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/tracing-replay.html b/public/curriculum/concepts/tracing-replay.html index 6ec191b..4238ef3 100644 --- a/public/curriculum/concepts/tracing-replay.html +++ b/public/curriculum/concepts/tracing-replay.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/transaction-processing.html b/public/curriculum/concepts/transaction-processing.html index 866bd86..b666217 100644 --- a/public/curriculum/concepts/transaction-processing.html +++ b/public/curriculum/concepts/transaction-processing.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/trees.html b/public/curriculum/concepts/trees.html index 64ad6d2..d162fd8 100644 --- a/public/curriculum/concepts/trees.html +++ b/public/curriculum/concepts/trees.html @@ -17,6 +17,8 @@ + + @@ -142,16 +144,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/tries.html b/public/curriculum/concepts/tries.html index b19b282..e9fac26 100644 --- a/public/curriculum/concepts/tries.html +++ b/public/curriculum/concepts/tries.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/two-pointers.html b/public/curriculum/concepts/two-pointers.html index 0e89579..a857d55 100644 --- a/public/curriculum/concepts/two-pointers.html +++ b/public/curriculum/concepts/two-pointers.html @@ -17,6 +17,8 @@ + + @@ -121,16 +123,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/union-find.html b/public/curriculum/concepts/union-find.html index 8dc50ef..6f8b548 100644 --- a/public/curriculum/concepts/union-find.html +++ b/public/curriculum/concepts/union-find.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/unique-id-generation.html b/public/curriculum/concepts/unique-id-generation.html index 37f5e7d..c5c42ee 100644 --- a/public/curriculum/concepts/unique-id-generation.html +++ b/public/curriculum/concepts/unique-id-generation.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/ux-interface-design.html b/public/curriculum/concepts/ux-interface-design.html index 042ebbc..5b1c095 100644 --- a/public/curriculum/concepts/ux-interface-design.html +++ b/public/curriculum/concepts/ux-interface-design.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/vector-quantization.html b/public/curriculum/concepts/vector-quantization.html index 800d642..2fe7f63 100644 --- a/public/curriculum/concepts/vector-quantization.html +++ b/public/curriculum/concepts/vector-quantization.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/vector-similarity.html b/public/curriculum/concepts/vector-similarity.html index 9e2de17..bc0f5fc 100644 --- a/public/curriculum/concepts/vector-similarity.html +++ b/public/curriculum/concepts/vector-similarity.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/vectors-and-spaces.html b/public/curriculum/concepts/vectors-and-spaces.html index 2819005..322f6eb 100644 --- a/public/curriculum/concepts/vectors-and-spaces.html +++ b/public/curriculum/concepts/vectors-and-spaces.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/vision-models.html b/public/curriculum/concepts/vision-models.html index bb2b0d1..4cd09ea 100644 --- a/public/curriculum/concepts/vision-models.html +++ b/public/curriculum/concepts/vision-models.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/voice-audio-systems.html b/public/curriculum/concepts/voice-audio-systems.html index d68be2d..5adc246 100644 --- a/public/curriculum/concepts/voice-audio-systems.html +++ b/public/curriculum/concepts/voice-audio-systems.html @@ -17,6 +17,8 @@ + + @@ -115,16 +117,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/wal.html b/public/curriculum/concepts/wal.html index 9f87663..447971f 100644 --- a/public/curriculum/concepts/wal.html +++ b/public/curriculum/concepts/wal.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/warehouses-lakehouses.html b/public/curriculum/concepts/warehouses-lakehouses.html index 21f111c..60e3904 100644 --- a/public/curriculum/concepts/warehouses-lakehouses.html +++ b/public/curriculum/concepts/warehouses-lakehouses.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/web-mobile-engineering.html b/public/curriculum/concepts/web-mobile-engineering.html index 71179df..58663cf 100644 --- a/public/curriculum/concepts/web-mobile-engineering.html +++ b/public/curriculum/concepts/web-mobile-engineering.html @@ -17,6 +17,8 @@ + + @@ -111,16 +113,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/web-security-basics.html b/public/curriculum/concepts/web-security-basics.html index cee84fb..c18ba91 100644 --- a/public/curriculum/concepts/web-security-basics.html +++ b/public/curriculum/concepts/web-security-basics.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/concepts/webhooks.html b/public/curriculum/concepts/webhooks.html index be13db5..6374fca 100644 --- a/public/curriculum/concepts/webhooks.html +++ b/public/curriculum/concepts/webhooks.html @@ -17,6 +17,8 @@ + + @@ -107,16 +109,6 @@

Learning paths

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/index.html b/public/curriculum/index.html index 13657f7..45975f2 100644 --- a/public/curriculum/index.html +++ b/public/curriculum/index.html @@ -17,6 +17,8 @@ + + @@ -248,16 +250,6 @@

Requested domain coverage

- - - - - +

Get SWE Interview Prep updates

A short note when something new ships. No spam, and you can leave with one click.

SWE Interview Prep

Built for active learning: Concept → Drill → Build → Review → Apply.

Send feedback

Read by the person who builds SWE Interview Prep.

What is it about?

Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

Opens in a new tab
SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
diff --git a/public/curriculum/roadmaps/agent-systems-12w.html b/public/curriculum/roadmaps/agent-systems-12w.html index 6f75cf0..25016ef 100644 --- a/public/curriculum/roadmaps/agent-systems-12w.html +++ b/public/curriculum/roadmaps/agent-systems-12w.html @@ -17,6 +17,8 @@ + + @@ -84,16 +86,6 @@

Build evidence

  • Synthesize: Agent Systems — En

    Start this roadmap in the interactive app →

    - - - - - +

    Get SWE Interview Prep updates

    A short note when something new ships. No spam, and you can leave with one click.

    SWE Interview Prep

    Built for active learning: Concept → Drill → Build → Review → Apply.

    Send feedback

    Read by the person who builds SWE Interview Prep.

    What is it about?

    Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

    Opens in a new tab
    SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
    diff --git a/public/curriculum/roadmaps/ai-infra-12-month.html b/public/curriculum/roadmaps/ai-infra-12-month.html index 5d6ef94..7e28404 100644 --- a/public/curriculum/roadmaps/ai-infra-12-month.html +++ b/public/curriculum/roadmaps/ai-infra-12-month.html @@ -17,6 +17,8 @@ + + @@ -98,16 +100,6 @@

    Build evidence

    • Search platform design doc — A

      Start this roadmap in the interactive app →

      - - - - - +

      Get SWE Interview Prep updates

      A short note when something new ships. No spam, and you can leave with one click.

      SWE Interview Prep

      Built for active learning: Concept → Drill → Build → Review → Apply.

      Send feedback

      Read by the person who builds SWE Interview Prep.

      What is it about?

      Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

      Opens in a new tab
      SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
      diff --git a/public/curriculum/roadmaps/ai-models-training-12w.html b/public/curriculum/roadmaps/ai-models-training-12w.html index 9f98b7f..a92b810 100644 --- a/public/curriculum/roadmaps/ai-models-training-12w.html +++ b/public/curriculum/roadmaps/ai-models-training-12w.html @@ -17,6 +17,8 @@ + + @@ -84,16 +86,6 @@

      Build evidence

      • Synthesize: AI Models & TrainingStart this roadmap in the interactive app →

        - - - - - +

        Get SWE Interview Prep updates

        A short note when something new ships. No spam, and you can leave with one click.

        SWE Interview Prep

        Built for active learning: Concept → Drill → Build → Review → Apply.

        Send feedback

        Read by the person who builds SWE Interview Prep.

        What is it about?

        Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

        Opens in a new tab
        SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
        diff --git a/public/curriculum/roadmaps/ai-reliability-12w.html b/public/curriculum/roadmaps/ai-reliability-12w.html index 036d815..bce6174 100644 --- a/public/curriculum/roadmaps/ai-reliability-12w.html +++ b/public/curriculum/roadmaps/ai-reliability-12w.html @@ -17,6 +17,8 @@ + + @@ -84,16 +86,6 @@

        Build evidence

        • Synthesize: Evaluation & AI Reliabili

          Start this roadmap in the interactive app →

          - - - - - +

          Get SWE Interview Prep updates

          A short note when something new ships. No spam, and you can leave with one click.

          SWE Interview Prep

          Built for active learning: Concept → Drill → Build → Review → Apply.

          Send feedback

          Read by the person who builds SWE Interview Prep.

          What is it about?

          Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

          Opens in a new tab
          SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
          diff --git a/public/curriculum/roadmaps/ai-search-infra-90-day.html b/public/curriculum/roadmaps/ai-search-infra-90-day.html index ba7a68b..90d8035 100644 --- a/public/curriculum/roadmaps/ai-search-infra-90-day.html +++ b/public/curriculum/roadmaps/ai-search-infra-90-day.html @@ -17,6 +17,8 @@ + + @@ -91,16 +93,6 @@

          Build evidence

          • RAG pipeline v0 — An end-to-en

            Start this roadmap in the interactive app →

            - - - - - +

            Get SWE Interview Prep updates

            A short note when something new ships. No spam, and you can leave with one click.

            SWE Interview Prep

            Built for active learning: Concept → Drill → Build → Review → Apply.

            Send feedback

            Read by the person who builds SWE Interview Prep.

            What is it about?

            Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

            Opens in a new tab
            SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
            diff --git a/public/curriculum/roadmaps/application-engineering-12w.html b/public/curriculum/roadmaps/application-engineering-12w.html index b14744c..21ae9b0 100644 --- a/public/curriculum/roadmaps/application-engineering-12w.html +++ b/public/curriculum/roadmaps/application-engineering-12w.html @@ -17,6 +17,8 @@ + + @@ -84,16 +86,6 @@

            Build evidence

            • Synthesize: Application EngineeringStart this roadmap in the interactive app →

              - - - - - +

              Get SWE Interview Prep updates

              A short note when something new ships. No spam, and you can leave with one click.

              SWE Interview Prep

              Built for active learning: Concept → Drill → Build → Review → Apply.

              Send feedback

              Read by the person who builds SWE Interview Prep.

              What is it about?

              Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

              Opens in a new tab
              SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
              diff --git a/public/curriculum/roadmaps/behavioral-practice.html b/public/curriculum/roadmaps/behavioral-practice.html index b7d646d..596c174 100644 --- a/public/curriculum/roadmaps/behavioral-practice.html +++ b/public/curriculum/roadmaps/behavioral-practice.html @@ -17,6 +17,8 @@ + + @@ -84,16 +86,6 @@

              Concepts

              Start this roadmap in the interactive app →

              - - - - - +

              Get SWE Interview Prep updates

              A short note when something new ships. No spam, and you can leave with one click.

              SWE Interview Prep

              Built for active learning: Concept → Drill → Build → Review → Apply.

              Send feedback

              Read by the person who builds SWE Interview Prep.

              What is it about?

              Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

              Opens in a new tab
              SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
              diff --git a/public/curriculum/roadmaps/db-disk-first.html b/public/curriculum/roadmaps/db-disk-first.html index 4992ea8..d80af1f 100644 --- a/public/curriculum/roadmaps/db-disk-first.html +++ b/public/curriculum/roadmaps/db-disk-first.html @@ -17,6 +17,8 @@ + + @@ -126,16 +128,6 @@

              Concepts

              Start this roadmap in the interactive app →

              - - - - - +

              Get SWE Interview Prep updates

              A short note when something new ships. No spam, and you can leave with one click.

              SWE Interview Prep

              Built for active learning: Concept → Drill → Build → Review → Apply.

              Send feedback

              Read by the person who builds SWE Interview Prep.

              What is it about?

              Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

              Opens in a new tab
              SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
              diff --git a/public/curriculum/roadmaps/developer-tools-12w.html b/public/curriculum/roadmaps/developer-tools-12w.html index cc6b4fe..729101e 100644 --- a/public/curriculum/roadmaps/developer-tools-12w.html +++ b/public/curriculum/roadmaps/developer-tools-12w.html @@ -17,6 +17,8 @@ + + @@ -84,16 +86,6 @@

              Build evidence

              • Synthesize: Developer Tools & Code In

                Start this roadmap in the interactive app →

                - - - - - +

                Get SWE Interview Prep updates

                A short note when something new ships. No spam, and you can leave with one click.

                SWE Interview Prep

                Built for active learning: Concept → Drill → Build → Review → Apply.

                Send feedback

                Read by the person who builds SWE Interview Prep.

                What is it about?

                Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                Opens in a new tab
                SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                diff --git a/public/curriculum/roadmaps/distributed-systems-12w.html b/public/curriculum/roadmaps/distributed-systems-12w.html index 914d880..58c3164 100644 --- a/public/curriculum/roadmaps/distributed-systems-12w.html +++ b/public/curriculum/roadmaps/distributed-systems-12w.html @@ -17,6 +17,8 @@ + + @@ -84,16 +86,6 @@

                Build evidence

                • Synthesize: Distributed Systems

                  Start this roadmap in the interactive app →

                  - - - - - +

                  Get SWE Interview Prep updates

                  A short note when something new ships. No spam, and you can leave with one click.

                  SWE Interview Prep

                  Built for active learning: Concept → Drill → Build → Review → Apply.

                  Send feedback

                  Read by the person who builds SWE Interview Prep.

                  What is it about?

                  Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                  Opens in a new tab
                  SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                  diff --git a/public/curriculum/roadmaps/dsa-practice.html b/public/curriculum/roadmaps/dsa-practice.html index ec1e337..e3a24a0 100644 --- a/public/curriculum/roadmaps/dsa-practice.html +++ b/public/curriculum/roadmaps/dsa-practice.html @@ -17,6 +17,8 @@ + + @@ -105,16 +107,6 @@

                  Concepts

                  Start this roadmap in the interactive app →

                  - - - - - +

                  Get SWE Interview Prep updates

                  A short note when something new ships. No spam, and you can leave with one click.

                  SWE Interview Prep

                  Built for active learning: Concept → Drill → Build → Review → Apply.

                  Send feedback

                  Read by the person who builds SWE Interview Prep.

                  What is it about?

                  Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                  Opens in a new tab
                  SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                  diff --git a/public/curriculum/roadmaps/harness-engineering.html b/public/curriculum/roadmaps/harness-engineering.html index bc5800b..b60681c 100644 --- a/public/curriculum/roadmaps/harness-engineering.html +++ b/public/curriculum/roadmaps/harness-engineering.html @@ -17,6 +17,8 @@ + + @@ -112,16 +114,6 @@

                  Build evidence

                  • Automate and Evaluate a Maker-Checker Loo

                    Start this roadmap in the interactive app →

                    - - - - - +

                    Get SWE Interview Prep updates

                    A short note when something new ships. No spam, and you can leave with one click.

                    SWE Interview Prep

                    Built for active learning: Concept → Drill → Build → Review → Apply.

                    Send feedback

                    Read by the person who builds SWE Interview Prep.

                    What is it about?

                    Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                    Opens in a new tab
                    SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                    diff --git a/public/curriculum/roadmaps/hld-practice.html b/public/curriculum/roadmaps/hld-practice.html index f65bf02..8ccd4d2 100644 --- a/public/curriculum/roadmaps/hld-practice.html +++ b/public/curriculum/roadmaps/hld-practice.html @@ -17,6 +17,8 @@ + + @@ -91,16 +93,6 @@

                    Concepts

                    Start this roadmap in the interactive app →

                    - - - - - +

                    Get SWE Interview Prep updates

                    A short note when something new ships. No spam, and you can leave with one click.

                    SWE Interview Prep

                    Built for active learning: Concept → Drill → Build → Review → Apply.

                    Send feedback

                    Read by the person who builds SWE Interview Prep.

                    What is it about?

                    Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                    Opens in a new tab
                    SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                    diff --git a/public/curriculum/roadmaps/inference-serving-12w.html b/public/curriculum/roadmaps/inference-serving-12w.html index c9cd280..5ace4a9 100644 --- a/public/curriculum/roadmaps/inference-serving-12w.html +++ b/public/curriculum/roadmaps/inference-serving-12w.html @@ -17,6 +17,8 @@ + + @@ -84,16 +86,6 @@

                    Build evidence

                    • Synthesize: Inference & ServingStart this roadmap in the interactive app →

                      - - - - - +

                      Get SWE Interview Prep updates

                      A short note when something new ships. No spam, and you can leave with one click.

                      SWE Interview Prep

                      Built for active learning: Concept → Drill → Build → Review → Apply.

                      Send feedback

                      Read by the person who builds SWE Interview Prep.

                      What is it about?

                      Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                      Opens in a new tab
                      SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                      diff --git a/public/curriculum/roadmaps/infrastructure-platforms-12w.html b/public/curriculum/roadmaps/infrastructure-platforms-12w.html index 0df6418..622c7d1 100644 --- a/public/curriculum/roadmaps/infrastructure-platforms-12w.html +++ b/public/curriculum/roadmaps/infrastructure-platforms-12w.html @@ -17,6 +17,8 @@ + + @@ -84,16 +86,6 @@

                      Build evidence

                      • Synthesize: Infrastructure & Platform

                        Start this roadmap in the interactive app →

                        - - - - - +

                        Get SWE Interview Prep updates

                        A short note when something new ships. No spam, and you can leave with one click.

                        SWE Interview Prep

                        Built for active learning: Concept → Drill → Build → Review → Apply.

                        Send feedback

                        Read by the person who builds SWE Interview Prep.

                        What is it about?

                        Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                        Opens in a new tab
                        SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                        diff --git a/public/curriculum/roadmaps/lld-practice.html b/public/curriculum/roadmaps/lld-practice.html index 08a7a7b..1ce9d13 100644 --- a/public/curriculum/roadmaps/lld-practice.html +++ b/public/curriculum/roadmaps/lld-practice.html @@ -17,6 +17,8 @@ + + @@ -84,16 +86,6 @@

                        Concepts

                        Start this roadmap in the interactive app →

                        - - - - - +

                        Get SWE Interview Prep updates

                        A short note when something new ships. No spam, and you can leave with one click.

                        SWE Interview Prep

                        Built for active learning: Concept → Drill → Build → Review → Apply.

                        Send feedback

                        Read by the person who builds SWE Interview Prep.

                        What is it about?

                        Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                        Opens in a new tab
                        SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                        diff --git a/public/curriculum/roadmaps/math-rating-climb-30d.html b/public/curriculum/roadmaps/math-rating-climb-30d.html index e6f4dd1..d9b1c68 100644 --- a/public/curriculum/roadmaps/math-rating-climb-30d.html +++ b/public/curriculum/roadmaps/math-rating-climb-30d.html @@ -17,6 +17,8 @@ + + @@ -91,16 +93,6 @@

                        Concepts

                        Start this roadmap in the interactive app →

                        - - - - - +

                        Get SWE Interview Prep updates

                        A short note when something new ships. No spam, and you can leave with one click.

                        SWE Interview Prep

                        Built for active learning: Concept → Drill → Build → Review → Apply.

                        Send feedback

                        Read by the person who builds SWE Interview Prep.

                        What is it about?

                        Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                        Opens in a new tab
                        SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                        diff --git a/public/curriculum/roadmaps/math-stack-12w.html b/public/curriculum/roadmaps/math-stack-12w.html index 285f332..afe3b60 100644 --- a/public/curriculum/roadmaps/math-stack-12w.html +++ b/public/curriculum/roadmaps/math-stack-12w.html @@ -17,6 +17,8 @@ + + @@ -147,16 +149,6 @@

                        Build evidence

                        • Simple momentum backtest vs SPY/QQQStart this roadmap in the interactive app →

                          - - - - - +

                          Get SWE Interview Prep updates

                          A short note when something new ships. No spam, and you can leave with one click.

                          SWE Interview Prep

                          Built for active learning: Concept → Drill → Build → Review → Apply.

                          Send feedback

                          Read by the person who builds SWE Interview Prep.

                          What is it about?

                          Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                          Opens in a new tab
                          SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                          diff --git a/public/curriculum/roadmaps/multimodal-spatial-12w.html b/public/curriculum/roadmaps/multimodal-spatial-12w.html index 8b0c124..dfb48cc 100644 --- a/public/curriculum/roadmaps/multimodal-spatial-12w.html +++ b/public/curriculum/roadmaps/multimodal-spatial-12w.html @@ -17,6 +17,8 @@ + + @@ -84,16 +86,6 @@

                          Build evidence

                          • Synthesize: Multimodal & Spatial Comp

                            Start this roadmap in the interactive app →

                            - - - - - +

                            Get SWE Interview Prep updates

                            A short note when something new ships. No spam, and you can leave with one click.

                            SWE Interview Prep

                            Built for active learning: Concept → Drill → Build → Review → Apply.

                            Send feedback

                            Read by the person who builds SWE Interview Prep.

                            What is it about?

                            Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                            Opens in a new tab
                            SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                            diff --git a/public/curriculum/roadmaps/prob-stats-30d.html b/public/curriculum/roadmaps/prob-stats-30d.html index 2d10ee3..c6062ff 100644 --- a/public/curriculum/roadmaps/prob-stats-30d.html +++ b/public/curriculum/roadmaps/prob-stats-30d.html @@ -17,6 +17,8 @@ + + @@ -98,16 +100,6 @@

                            Build evidence

                            • Analyze a fake trading signal

                              Start this roadmap in the interactive app →

                              - - - - - +

                              Get SWE Interview Prep updates

                              A short note when something new ships. No spam, and you can leave with one click.

                              SWE Interview Prep

                              Built for active learning: Concept → Drill → Build → Review → Apply.

                              Send feedback

                              Read by the person who builds SWE Interview Prep.

                              What is it about?

                              Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                              Opens in a new tab
                              SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                              diff --git a/public/curriculum/roadmaps/reset-9-day.html b/public/curriculum/roadmaps/reset-9-day.html index 5d5503e..5226f2a 100644 --- a/public/curriculum/roadmaps/reset-9-day.html +++ b/public/curriculum/roadmaps/reset-9-day.html @@ -17,6 +17,8 @@ + + @@ -91,16 +93,6 @@

                              Build evidence

                              • Search eval harness — A reusab

                                Start this roadmap in the interactive app →

                                - - - - - +

                                Get SWE Interview Prep updates

                                A short note when something new ships. No spam, and you can leave with one click.

                                SWE Interview Prep

                                Built for active learning: Concept → Drill → Build → Review → Apply.

                                Send feedback

                                Read by the person who builds SWE Interview Prep.

                                What is it about?

                                Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                                Opens in a new tab
                                SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                                diff --git a/public/curriculum/roadmaps/retrieval-30-day.html b/public/curriculum/roadmaps/retrieval-30-day.html index 0d1a9b0..b8dbf7c 100644 --- a/public/curriculum/roadmaps/retrieval-30-day.html +++ b/public/curriculum/roadmaps/retrieval-30-day.html @@ -17,6 +17,8 @@ + + @@ -98,16 +100,6 @@

                                Build evidence

                                • Hybrid search v0 in HighSignal

                                  Start this roadmap in the interactive app →

                                  - - - - - +

                                  Get SWE Interview Prep updates

                                  A short note when something new ships. No spam, and you can leave with one click.

                                  SWE Interview Prep

                                  Built for active learning: Concept → Drill → Build → Review → Apply.

                                  Send feedback

                                  Read by the person who builds SWE Interview Prep.

                                  What is it about?

                                  Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                                  Opens in a new tab
                                  SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                                  diff --git a/public/curriculum/roadmaps/runtime.html b/public/curriculum/roadmaps/runtime.html index e547ac6..28ffbe6 100644 --- a/public/curriculum/roadmaps/runtime.html +++ b/public/curriculum/roadmaps/runtime.html @@ -17,6 +17,8 @@ + + @@ -133,16 +135,6 @@

                                  Concepts

                                  Start this roadmap in the interactive app →

                                  - - - - - +

                                  Get SWE Interview Prep updates

                                  A short note when something new ships. No spam, and you can leave with one click.

                                  SWE Interview Prep

                                  Built for active learning: Concept → Drill → Build → Review → Apply.

                                  Send feedback

                                  Read by the person who builds SWE Interview Prep.

                                  What is it about?

                                  Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                                  Opens in a new tab
                                  SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                                  diff --git a/public/curriculum/roadmaps/swe-landscape.html b/public/curriculum/roadmaps/swe-landscape.html index 04e7912..1a36d84 100644 --- a/public/curriculum/roadmaps/swe-landscape.html +++ b/public/curriculum/roadmaps/swe-landscape.html @@ -17,6 +17,8 @@ + + @@ -154,16 +156,6 @@

                                  Concepts

                                  Start this roadmap in the interactive app →

                                  - - - - - +

                                  Get SWE Interview Prep updates

                                  A short note when something new ships. No spam, and you can leave with one click.

                                  SWE Interview Prep

                                  Built for active learning: Concept → Drill → Build → Review → Apply.

                                  Send feedback

                                  Read by the person who builds SWE Interview Prep.

                                  What is it about?

                                  Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                                  Opens in a new tab
                                  SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                                  diff --git a/public/curriculum/roadmaps/systems-foundations-12w.html b/public/curriculum/roadmaps/systems-foundations-12w.html index 6eb7724..72d86c9 100644 --- a/public/curriculum/roadmaps/systems-foundations-12w.html +++ b/public/curriculum/roadmaps/systems-foundations-12w.html @@ -17,6 +17,8 @@ + + @@ -84,16 +86,6 @@

                                  Build evidence

                                  • Synthesize: Systems Foundations

                                    Start this roadmap in the interactive app →

                                    - - - - - +

                                    Get SWE Interview Prep updates

                                    A short note when something new ships. No spam, and you can leave with one click.

                                    SWE Interview Prep

                                    Built for active learning: Concept → Drill → Build → Review → Apply.

                                    Send feedback

                                    Read by the person who builds SWE Interview Prep.

                                    What is it about?

                                    Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                                    Opens in a new tab
                                    SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                                    diff --git a/public/curriculum/roadmaps/trace-a-tensor.html b/public/curriculum/roadmaps/trace-a-tensor.html index 4e110eb..efba8d9 100644 --- a/public/curriculum/roadmaps/trace-a-tensor.html +++ b/public/curriculum/roadmaps/trace-a-tensor.html @@ -17,6 +17,8 @@ + + @@ -91,16 +93,6 @@

                                    Build evidence

                                    • Trace a Tensor: Diagnose and Optimize One

                                      Start this roadmap in the interactive app →

                                      - - - - - +

                                      Get SWE Interview Prep updates

                                      A short note when something new ships. No spam, and you can leave with one click.

                                      SWE Interview Prep

                                      Built for active learning: Concept → Drill → Build → Review → Apply.

                                      Send feedback

                                      Read by the person who builds SWE Interview Prep.

                                      What is it about?

                                      Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                                      Opens in a new tab
                                      SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                                      diff --git a/public/curriculum/styles.css b/public/curriculum/styles.css index 3b07a0d..099fc5c 100644 --- a/public/curriculum/styles.css +++ b/public/curriculum/styles.css @@ -1,4 +1,4 @@ -:root{color-scheme:dark;--bg:#09090b;--panel:#141418;--text:#f7f7f8;--muted:#a1a1aa;--line:#29292f;--accent:#67e8f9} +@layer page,theme,base,components,utilities;@layer page{:root{color-scheme:dark;--bg:#09090b;--panel:#141418;--text:#f7f7f8;--muted:#a1a1aa;--line:#29292f;--accent:#67e8f9} *{box-sizing:border-box} html{font-family:"Geist",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);line-height:1.65} body{margin:0} @@ -27,7 +27,7 @@ a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:3px} .compact-menu nav{position:absolute;right:0;top:calc(100% + 8px);width:min(352px,calc(100vw - 32px));max-height:calc(100vh - 80px);overflow-y:auto;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:#000;padding:8px} .compact-menu nav p{margin:0;padding:8px 12px 4px;color:rgba(255,255,255,.38);font-size:.6875rem;font-weight:600} .compact-menu nav hr{margin:8px 12px;border:0;border-top:1px solid rgba(255,255,255,.08)} -main,footer{width:min(1120px,calc(100% - 32px));margin:auto} +main,body>footer{width:min(1120px,calc(100% - 32px));margin:auto} main{padding:48px 0 80px} .breadcrumbs{display:flex;gap:10px;flex-wrap:wrap;color:#71717a;font-size:.82rem;margin-bottom:28px} .breadcrumbs a{color:var(--muted);text-decoration:none} @@ -51,14 +51,8 @@ h4{color:#d4d4d8} .link-list,.resource-list{padding-left:20px} .link-list li,.resource-list li{margin:.45em 0} .cta{margin-top:36px;font-weight:700} -footer{border-top:1px solid var(--line);padding:28px 0 48px;color:var(--muted);font-size:.86rem} -fleet-footer-extension{--fleet-footer-canvas:var(--bg);--fleet-footer-lower:var(--bg);--fleet-footer-border:var(--line);--fleet-footer-max-width:1120px;--fleet-footer-app-mobile-signature-size:2rem;color:var(--text)} -fleet-footer-extension>footer[slot=navigation]{width:100%;margin:0;padding:0;border:0;font-size:14px} -fleet-footer-extension .footer-routes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem} -fleet-footer-extension .footer-routes section{min-width:0;display:flex;flex-direction:column;align-items:flex-start} -fleet-footer-extension .footer-routes h2{margin:0 0 .5rem;color:var(--muted)} -fleet-footer-extension .footer-routes a{text-decoration:none} -fleet-footer-extension>footer[slot=navigation]>p{margin-top:1.5rem;font-size:12px;color:var(--muted)} +body>footer{border-top:1px solid var(--line);padding:28px 0 48px;color:var(--muted);font-size:.86rem} @media(max-width:1023px){.site-header-inner{padding:0 16px}.desktop-nav{display:none}.compact-menu{display:block}} @media(max-width:520px){.brand span{display:none}main{padding-top:32px}} -@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto;transition-duration:.001ms!important}} \ No newline at end of file +@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto;transition-duration:.001ms!important}}} +studio-footer input[name=email]{min-height:3rem} \ No newline at end of file diff --git a/public/curriculum/tracks/agent-systems.html b/public/curriculum/tracks/agent-systems.html index a03e390..1453248 100644 --- a/public/curriculum/tracks/agent-systems.html +++ b/public/curriculum/tracks/agent-systems.html @@ -17,6 +17,8 @@ + + @@ -136,16 +138,6 @@

                                      Harness Evaluation

                                      - - - - - +

                                      Get SWE Interview Prep updates

                                      A short note when something new ships. No spam, and you can leave with one click.

                                      SWE Interview Prep

                                      Built for active learning: Concept → Drill → Build → Review → Apply.

                                      Send feedback

                                      Read by the person who builds SWE Interview Prep.

                                      What is it about?

                                      Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                                      Opens in a new tab
                                      SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                                      diff --git a/public/curriculum/tracks/ai-reliability.html b/public/curriculum/tracks/ai-reliability.html index a939dab..e9bb598 100644 --- a/public/curriculum/tracks/ai-reliability.html +++ b/public/curriculum/tracks/ai-reliability.html @@ -17,6 +17,8 @@ + + @@ -124,16 +126,6 @@

                                      Harness Evaluation

                                      - - - - - +

                                      Get SWE Interview Prep updates

                                      A short note when something new ships. No spam, and you can leave with one click.

                                      SWE Interview Prep

                                      Built for active learning: Concept → Drill → Build → Review → Apply.

                                      Send feedback

                                      Read by the person who builds SWE Interview Prep.

                                      What is it about?

                                      Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                                      Opens in a new tab
                                      SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                                      diff --git a/public/curriculum/tracks/ai-systems.html b/public/curriculum/tracks/ai-systems.html index 2fc802b..b25ab15 100644 --- a/public/curriculum/tracks/ai-systems.html +++ b/public/curriculum/tracks/ai-systems.html @@ -17,6 +17,8 @@ + + @@ -196,16 +198,6 @@

                                      Open-Weight Models

                                      - - - - - +

                                      Get SWE Interview Prep updates

                                      A short note when something new ships. No spam, and you can leave with one click.

                                      SWE Interview Prep

                                      Built for active learning: Concept → Drill → Build → Review → Apply.

                                      Send feedback

                                      Read by the person who builds SWE Interview Prep.

                                      What is it about?

                                      Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                                      Opens in a new tab
                                      SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                                      diff --git a/public/curriculum/tracks/application-engineering.html b/public/curriculum/tracks/application-engineering.html index af2aa5b..ec2c742 100644 --- a/public/curriculum/tracks/application-engineering.html +++ b/public/curriculum/tracks/application-engineering.html @@ -17,6 +17,8 @@ + + @@ -84,16 +86,6 @@

                                      2D/3D Interactive S - - - - - +

                                      Get SWE Interview Prep updates

                                      A short note when something new ships. No spam, and you can leave with one click.

                                      SWE Interview Prep

                                      Built for active learning: Concept → Drill → Build → Review → Apply.

                                      Send feedback

                                      Read by the person who builds SWE Interview Prep.

                                      What is it about?

                                      Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                                      Opens in a new tab
                                      SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                                      diff --git a/public/curriculum/tracks/backend.html b/public/curriculum/tracks/backend.html index ed593c5..ed1bc07 100644 --- a/public/curriculum/tracks/backend.html +++ b/public/curriculum/tracks/backend.html @@ -17,6 +17,8 @@ + + @@ -132,16 +134,6 @@

                                      Pagination

                                      - - - - - +

                                      Get SWE Interview Prep updates

                                      A short note when something new ships. No spam, and you can leave with one click.

                                      SWE Interview Prep

                                      Built for active learning: Concept → Drill → Build → Review → Apply.

                                      Send feedback

                                      Read by the person who builds SWE Interview Prep.

                                      What is it about?

                                      Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                                      Opens in a new tab
                                      SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                                      diff --git a/public/curriculum/tracks/behavioral.html b/public/curriculum/tracks/behavioral.html index 4c55921..4283c8c 100644 --- a/public/curriculum/tracks/behavioral.html +++ b/public/curriculum/tracks/behavioral.html @@ -17,6 +17,8 @@ + + @@ -108,16 +110,6 @@

                                      Ownership - - - - - +

                                      Get SWE Interview Prep updates

                                      A short note when something new ships. No spam, and you can leave with one click.

                                      SWE Interview Prep

                                      Built for active learning: Concept → Drill → Build → Review → Apply.

                                      Send feedback

                                      Read by the person who builds SWE Interview Prep.

                                      What is it about?

                                      Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                                      Opens in a new tab
                                      SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                                      diff --git a/public/curriculum/tracks/databases.html b/public/curriculum/tracks/databases.html index e53c18b..3318c62 100644 --- a/public/curriculum/tracks/databases.html +++ b/public/curriculum/tracks/databases.html @@ -17,6 +17,8 @@ + + @@ -140,16 +142,6 @@

                                      Buffer Pool

                                      - - - - - +

                                      Get SWE Interview Prep updates

                                      A short note when something new ships. No spam, and you can leave with one click.

                                      SWE Interview Prep

                                      Built for active learning: Concept → Drill → Build → Review → Apply.

                                      Send feedback

                                      Read by the person who builds SWE Interview Prep.

                                      What is it about?

                                      Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                                      Opens in a new tab
                                      SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                                      diff --git a/public/curriculum/tracks/developer-tools.html b/public/curriculum/tracks/developer-tools.html index f784f46..8db35ac 100644 --- a/public/curriculum/tracks/developer-tools.html +++ b/public/curriculum/tracks/developer-tools.html @@ -17,6 +17,8 @@ + + @@ -120,16 +122,6 @@

                                      Agent Scope Control - - - - - +

                                      Get SWE Interview Prep updates

                                      A short note when something new ships. No spam, and you can leave with one click.

                                      SWE Interview Prep

                                      Built for active learning: Concept → Drill → Build → Review → Apply.

                                      Send feedback

                                      Read by the person who builds SWE Interview Prep.

                                      What is it about?

                                      Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                                      Opens in a new tab
                                      SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                                      diff --git a/public/curriculum/tracks/distributed-systems.html b/public/curriculum/tracks/distributed-systems.html index 95f8755..d4a4045 100644 --- a/public/curriculum/tracks/distributed-systems.html +++ b/public/curriculum/tracks/distributed-systems.html @@ -17,6 +17,8 @@ + + @@ -112,16 +114,6 @@

                                      Distributed Fail - - - - - +

                                      Get SWE Interview Prep updates

                                      A short note when something new ships. No spam, and you can leave with one click.

                                      SWE Interview Prep

                                      Built for active learning: Concept → Drill → Build → Review → Apply.

                                      Send feedback

                                      Read by the person who builds SWE Interview Prep.

                                      What is it about?

                                      Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                                      Opens in a new tab
                                      SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                                      diff --git a/public/curriculum/tracks/dsa.html b/public/curriculum/tracks/dsa.html index c137e80..9079cd8 100644 --- a/public/curriculum/tracks/dsa.html +++ b/public/curriculum/tracks/dsa.html @@ -17,6 +17,8 @@ + + @@ -176,16 +178,6 @@

                                      Quickselect

                                      - - - - - +

                                      Get SWE Interview Prep updates

                                      A short note when something new ships. No spam, and you can leave with one click.

                                      SWE Interview Prep

                                      Built for active learning: Concept → Drill → Build → Review → Apply.

                                      Send feedback

                                      Read by the person who builds SWE Interview Prep.

                                      What is it about?

                                      Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                                      Opens in a new tab
                                      SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                                      diff --git a/public/curriculum/tracks/go-to-market.html b/public/curriculum/tracks/go-to-market.html index 38bd1c1..0d498af 100644 --- a/public/curriculum/tracks/go-to-market.html +++ b/public/curriculum/tracks/go-to-market.html @@ -17,6 +17,8 @@ + + @@ -84,16 +86,6 @@

                                      Product Analytics

                                      - - - - - +

                                      Get SWE Interview Prep updates

                                      A short note when something new ships. No spam, and you can leave with one click.

                                      SWE Interview Prep

                                      Built for active learning: Concept → Drill → Build → Review → Apply.

                                      Send feedback

                                      Read by the person who builds SWE Interview Prep.

                                      What is it about?

                                      Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                                      Opens in a new tab
                                      SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                                      diff --git a/public/curriculum/tracks/inference-serving.html b/public/curriculum/tracks/inference-serving.html index 9908521..8c898f1 100644 --- a/public/curriculum/tracks/inference-serving.html +++ b/public/curriculum/tracks/inference-serving.html @@ -17,6 +17,8 @@ + + @@ -116,16 +118,6 @@

                                      Inference Hardware

                                      - - - - - +

                                      Get SWE Interview Prep updates

                                      A short note when something new ships. No spam, and you can leave with one click.

                                      SWE Interview Prep

                                      Built for active learning: Concept → Drill → Build → Review → Apply.

                                      Send feedback

                                      Read by the person who builds SWE Interview Prep.

                                      What is it about?

                                      Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                                      Opens in a new tab
                                      SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                                      diff --git a/public/curriculum/tracks/infrastructure-platforms.html b/public/curriculum/tracks/infrastructure-platforms.html index cb88333..532ee7b 100644 --- a/public/curriculum/tracks/infrastructure-platforms.html +++ b/public/curriculum/tracks/infrastructure-platforms.html @@ -17,6 +17,8 @@ + + @@ -108,16 +110,6 @@

                                      Infrastructure Auto - - - - - +

                                      Get SWE Interview Prep updates

                                      A short note when something new ships. No spam, and you can leave with one click.

                                      SWE Interview Prep

                                      Built for active learning: Concept → Drill → Build → Review → Apply.

                                      Send feedback

                                      Read by the person who builds SWE Interview Prep.

                                      What is it about?

                                      Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                                      Opens in a new tab
                                      SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                                      diff --git a/public/curriculum/tracks/mathematics.html b/public/curriculum/tracks/mathematics.html index 16bcf4a..878f49b 100644 --- a/public/curriculum/tracks/mathematics.html +++ b/public/curriculum/tracks/mathematics.html @@ -17,6 +17,8 @@ + + @@ -188,16 +190,6 @@

                                      Numerical Stability - - - - - +

                                      Get SWE Interview Prep updates

                                      A short note when something new ships. No spam, and you can leave with one click.

                                      SWE Interview Prep

                                      Built for active learning: Concept → Drill → Build → Review → Apply.

                                      Send feedback

                                      Read by the person who builds SWE Interview Prep.

                                      What is it about?

                                      Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                                      Opens in a new tab
                                      SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                                      diff --git a/public/curriculum/tracks/multimodal-spatial.html b/public/curriculum/tracks/multimodal-spatial.html index cf6a568..3bded36 100644 --- a/public/curriculum/tracks/multimodal-spatial.html +++ b/public/curriculum/tracks/multimodal-spatial.html @@ -17,6 +17,8 @@ + + @@ -100,16 +102,6 @@

                                      Human-Computer Int - - - - - +

                                      Get SWE Interview Prep updates

                                      A short note when something new ships. No spam, and you can leave with one click.

                                      SWE Interview Prep

                                      Built for active learning: Concept → Drill → Build → Review → Apply.

                                      Send feedback

                                      Read by the person who builds SWE Interview Prep.

                                      What is it about?

                                      Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                                      Opens in a new tab
                                      SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                                      diff --git a/public/curriculum/tracks/search-ir.html b/public/curriculum/tracks/search-ir.html index c7e1d2c..f928487 100644 --- a/public/curriculum/tracks/search-ir.html +++ b/public/curriculum/tracks/search-ir.html @@ -17,6 +17,8 @@ + + @@ -120,16 +122,6 @@

                                      Click Models & Position Bias - - - - - +

                                      Get SWE Interview Prep updates

                                      A short note when something new ships. No spam, and you can leave with one click.

                                      SWE Interview Prep

                                      Built for active learning: Concept → Drill → Build → Review → Apply.

                                      Send feedback

                                      Read by the person who builds SWE Interview Prep.

                                      What is it about?

                                      Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                                      Opens in a new tab
                                      SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                                      diff --git a/public/curriculum/tracks/system-design.html b/public/curriculum/tracks/system-design.html index 9e02765..5c9435b 100644 --- a/public/curriculum/tracks/system-design.html +++ b/public/curriculum/tracks/system-design.html @@ -17,6 +17,8 @@ + + @@ -172,16 +174,6 @@

                                      CDN & Edge Delivery - - - - - +

                                      Get SWE Interview Prep updates

                                      A short note when something new ships. No spam, and you can leave with one click.

                                      SWE Interview Prep

                                      Built for active learning: Concept → Drill → Build → Review → Apply.

                                      Send feedback

                                      Read by the person who builds SWE Interview Prep.

                                      What is it about?

                                      Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                                      Opens in a new tab
                                      SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                                      diff --git a/public/curriculum/tracks/systems-foundations.html b/public/curriculum/tracks/systems-foundations.html index 8bd01ac..2109975 100644 --- a/public/curriculum/tracks/systems-foundations.html +++ b/public/curriculum/tracks/systems-foundations.html @@ -17,6 +17,8 @@ + + @@ -100,16 +102,6 @@

                                      Program Memory Model - - - - - +

                                      Get SWE Interview Prep updates

                                      A short note when something new ships. No spam, and you can leave with one click.

                                      SWE Interview Prep

                                      Built for active learning: Concept → Drill → Build → Review → Apply.

                                      Send feedback

                                      Read by the person who builds SWE Interview Prep.

                                      What is it about?

                                      Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                                      Opens in a new tab
                                      SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                                      diff --git a/public/curriculum/tracks/vector-db.html b/public/curriculum/tracks/vector-db.html index c7ad2ae..b39a89b 100644 --- a/public/curriculum/tracks/vector-db.html +++ b/public/curriculum/tracks/vector-db.html @@ -17,6 +17,8 @@ + + @@ -116,16 +118,6 @@

                                      Index Updates & - - - - - +

                                      Get SWE Interview Prep updates

                                      A short note when something new ships. No spam, and you can leave with one click.

                                      SWE Interview Prep

                                      Built for active learning: Concept → Drill → Build → Review → Apply.

                                      Send feedback

                                      Read by the person who builds SWE Interview Prep.

                                      What is it about?

                                      Sends what you write, this page's address (without query or fragment), and anything you point at or attach.

                                      Opens in a new tab
                                      SWE Interview Prep: A practical learning workshop centers a small built artifact and review notebook. Concept sketches, a drill jig and an application folio form a physical sequence in the wings; the journey ends with evidence rather than a trophy.
                                      diff --git a/public/footer.css b/public/footer.css new file mode 100644 index 0000000..502f389 --- /dev/null +++ b/public/footer.css @@ -0,0 +1 @@ +/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties;@layer theme,base,components,utilities;@layer theme{:root,:host{--font-sans: var(--font-sans);--font-mono: var(--font-mono);--color-black: #000;--spacing: .25rem;--text-xs: .75rem;--text-xs--line-height: calc(1 / .75);--text-sm: .875rem;--text-sm--line-height: calc(1.25 / .875);--text-base: 1rem;--text-base--line-height: 1.5 ;--text-lg: 1.125rem;--text-lg--line-height: calc(1.75 / 1.125);--text-2xl: 1.5rem;--text-2xl--line-height: calc(2 / 1.5);--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--leading-relaxed: 1.625;--default-transition-duration: .15s;--default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);--font-display: var(--font-display);--font-accent: var(--font-accent);--font-text: var(--font-text)}}@layer utilities{.visible{visibility:visible}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border-width:0}.absolute{position:absolute}.relative{position:relative}.inset-x-0{inset-inline:0px}.bottom-0{bottom:0}.bottom-\[-0\.02em\]{bottom:-.02em}.isolate{isolation:isolate}.m-auto{margin:auto}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mt-14{margin-top:calc(var(--spacing) * 14)}.mt-\[clamp\(1\.5rem\,4vw\,3rem\)\]{margin-top:clamp(1.5rem,4vw,3rem)}.mt-\[clamp\(2rem\,5vw\,3\.5rem\)\]{margin-top:clamp(2rem,5vw,3.5rem)}.mt-\[clamp\(3\.5rem\,7vw\,4\.5rem\)\]{margin-top:clamp(3.5rem,7vw,4.5rem)}.mt-\[clamp\(3rem\,6vw\,4\.5rem\)\]{margin-top:clamp(3rem,6vw,4.5rem)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.aspect-\[5\/2\]{aspect-ratio:5/2}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-\[1\.125rem\]{width:1.125rem;height:1.125rem}.h-1\/2{height:50%}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-\[clamp\(12rem\,30vw\,26rem\)\]{height:clamp(12rem,30vw,26rem)}.h-\[clamp\(16rem\,38vw\,34rem\)\]{height:clamp(16rem,38vw,34rem)}.min-h-\[4\.5rem\]{min-height:4.5rem}.min-h-\[6rem\]{min-height:6rem}.w-\[min\(34rem\,calc\(100vw-2rem\)\)\]{width:min(34rem,calc(100vw - 2rem))}.w-full{width:100%}.max-w-\[24em\]{max-width:24em}.max-w-\[26em\]{max-width:26em}.max-w-\[75rem\]{max-width:75rem}.min-w-0{min-width:0px}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.cursor-pointer{cursor:pointer}.resize-y{resize:vertical}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-10{gap:calc(var(--spacing) * 10)}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-x-8{column-gap:calc(var(--spacing) * 8)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-2\.5{row-gap:calc(var(--spacing) * 2.5)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overflow-hidden{overflow:hidden}.rounded-2xl{border-radius:calc(var(--radius) + 10px)}.rounded-\[1\.75rem\]{border-radius:1.75rem}.rounded-full{border-radius:calc(infinity * 1px)}.rounded-lg{border-radius:var(--radius)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-border{border-color:var(--border)}.border-input{border-color:var(--input)}.bg-background{background-color:var(--background)}.bg-brand-soft{background-color:var(--brand-soft)}.bg-card{background-color:var(--card)}.bg-primary{background-color:var(--primary)}.bg-surface{background-color:var(--surface)}.bg-gradient-to-t{--tw-gradient-position: to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-black\/20{--tw-gradient-from: color-mix(in srgb, #000 20%, transparent);@supports (color: color-mix(in lab,red,red)){--tw-gradient-from: color-mix(in oklab, var(--color-black) 20%, transparent)}--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to: transparent;--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.\[mask-image\:linear-gradient\(to_bottom\,transparent\,black_30\%\)\]{mask-image:linear-gradient(to bottom,transparent,black 30%)}.\[mask-image\:linear-gradient\(to_bottom\,transparent\,black_35\%\)\]{mask-image:linear-gradient(to bottom,transparent,black 35%)}.\[mask-image\:radial-gradient\(ellipse_75\%_85\%_at_50\%_55\%\,black_55\%\,transparent_100\%\)\]{mask-image:radial-gradient(ellipse 75% 85% at 50% 55%,black 55%,transparent 100%)}.bg-cover{background-size:cover}.bg-clip-text{background-clip:text}.object-cover{object-fit:cover}.p-0{padding:0}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-\[clamp\(1\.25rem\,4vw\,3\.5rem\)\]{padding-inline:clamp(1.25rem,4vw,3.5rem)}.py-2{padding-block:calc(var(--spacing) * 2)}.pt-7{padding-top:calc(var(--spacing) * 7)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pt-\[clamp\(4rem\,7vw\,6rem\)\]{padding-top:clamp(4rem,7vw,6rem)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.text-center{text-align:center}.font-display{font-family:var(--font-display)}.font-text{font-family:var(--font-text)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading, var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading, var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading, var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading, var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading, var(--text-xs--line-height))}.text-\[0\.6875rem\]{font-size:.6875rem}.text-\[0\.8125rem\]{font-size:.8125rem}.text-\[0\.9375rem\]{font-size:.9375rem}.text-\[1\.0625rem\]{font-size:1.0625rem}.text-\[clamp\(1\.75rem\,1\.3rem\+1\.6vw\,2\.5rem\)\]{font-size:clamp(1.75rem,1.3rem + 1.6vw,2.5rem)}.text-\[clamp\(6rem\,22vw\,20rem\)\]{font-size:clamp(6rem,22vw,20rem)}.leading-\[0\.8\]{--tw-leading: .8;line-height:.8}.leading-\[1\.05\]{--tw-leading: 1.05;line-height:1.05}.leading-relaxed{--tw-leading: var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight: var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight: var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight: var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[-0\.03em\]{--tw-tracking: -.03em;letter-spacing:-.03em}.tracking-\[-0\.06em\]{--tw-tracking: -.06em;letter-spacing:-.06em}.text-balance{text-wrap:balance}.whitespace-nowrap{white-space:nowrap}.text-\[\#fbf5ec\]{color:#fbf5ec}.text-brand-ink{color:var(--brand-ink)}.text-foreground{color:var(--foreground)}.text-foreground\/90{color:var(--foreground);@supports (color: color-mix(in lab,red,red)){color:color-mix(in oklab,var(--foreground) 90%,transparent)}}.text-muted-foreground{color:var(--muted-foreground)}.text-primary-foreground{color:var(--primary-foreground)}.text-transparent{color:transparent}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.accent-\[var\(--brand\)\]{accent-color:var(--brand)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / .25));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow: 0 1px 2px var(--tw-shadow-color, hsl(var(--shadow-color) / .06));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-border{--tw-ring-color: var(--border)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.outline-none{--tw-outline-style: none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.backdrop\:bg-black\/40::backdrop{background-color:color-mix(in srgb,#000 40%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.backdrop\:backdrop-blur-\[2px\]::backdrop{--tw-backdrop-blur: blur(2px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.empty\:hidden:empty{display:none}@media(hover:hover){.hover\:border-foreground\/30:hover{border-color:var(--foreground)}@supports (color: color-mix(in lab,red,red)){.hover\:border-foreground\/30:hover{border-color:color-mix(in oklab,var(--foreground) 30%,transparent)}}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:text-brand-ink:hover{color:var(--brand-ink)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:opacity-90:hover{opacity:90%}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-3:focus-visible{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-ring\/25:focus-visible{--tw-ring-color: var(--ring);@supports (color: color-mix(in lab,red,red)){--tw-ring-color: color-mix(in oklab, var(--ring) 25%, transparent)}}.focus-visible\:outline-none:focus-visible{--tw-outline-style: none;outline-style:none}.disabled\:opacity-60:disabled{opacity:60%}.has-\[\:checked\]\:border-brand:has(:is(:checked)){border-color:var(--brand)}.has-\[\:checked\]\:bg-brand-soft:has(:is(:checked)){background-color:var(--brand-soft)}.has-\[\:checked\]\:text-brand-ink:has(:is(:checked)){color:var(--brand-ink)}.has-\[\:focus-visible\]\:ring-3:has(:is(:focus-visible)){--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.has-\[\:focus-visible\]\:ring-ring\/25:has(:is(:focus-visible)){--tw-ring-color: var(--ring);@supports (color: color-mix(in lab,red,red)){--tw-ring-color: color-mix(in oklab, var(--ring) 25%, transparent)}}@media(width>=40rem){.sm\:aspect-\[3\/1\]{aspect-ratio:3/1}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:p-7{padding:calc(var(--spacing) * 7)}.sm\:p-9{padding:calc(var(--spacing) * 9)}}@media(width>=64rem){.lg\:grid-cols-\[1fr_1\.15fr\]{grid-template-columns:1fr 1.15fr}.lg\:grid-cols-\[1fr_1fr\]{grid-template-columns:1fr 1fr}.lg\:items-center{align-items:center}.lg\:gap-12{gap:calc(var(--spacing) * 12)}.lg\:gap-14{gap:calc(var(--spacing) * 14)}}}:where(:root){--font-accent: var(--font-display);--display-case: lowercase;--ui-case: lowercase;--display-weight: 750;--display-tracking: -.035em;--display-leading: 1.02;--eyebrow-transform: var(--ui-case);--eyebrow-tracking: 0;--radius: .75rem;--brand: oklch(.55 .2 264);--brand-foreground: oklch(.99 0 0);--brand-soft: oklch(.95 .03 264);--brand-ink: var(--brand);--background: oklch(.993 0 0);--foreground: oklch(.17 .005 270);--surface: oklch(.975 .002 270);--card: oklch(1 0 0);--primary: oklch(.2 .005 270);--primary-foreground: oklch(.99 0 0);--muted-foreground: oklch(.47 .008 270);--accent: oklch(.955 .003 270);--border: oklch(.91 .003 270);--input: oklch(.89 .004 270);--ring: var(--brand);--shadow-color: 240 10% 10%}[data-mode=dark]{--background: oklch(.145 .004 270);--foreground: oklch(.97 .002 270);--surface: oklch(.175 .004 270);--card: oklch(.18 .004 270);--primary: oklch(.97 .002 270);--primary-foreground: oklch(.17 .005 270);--muted-foreground: oklch(.7 .008 270);--accent: oklch(.24 .005 270);--border: oklch(1 0 0 / .1);--input: oklch(1 0 0 / .14);--brand-soft: var(--brand);@supports (color: color-mix(in lab,red,red)){--brand-soft: color-mix(in oklch, var(--brand) 18%, transparent)}--shadow-color: 0 0% 0%}[data-theme=paper]{--font-accent: var(--font-display);--display-weight: 420;--display-tracking: -.025em;--display-leading: 1.04;--radius: .375rem;--background: oklch(.975 .008 85);--foreground: oklch(.22 .012 60);--surface: oklch(.955 .012 82);--card: oklch(.99 .005 85);--primary: oklch(.24 .012 60);--primary-foreground: oklch(.975 .008 85);--muted-foreground: oklch(.48 .02 60);--accent: oklch(.93 .016 80);--border: oklch(.87 .016 75);--input: oklch(.85 .018 75);--brand: oklch(.52 .15 38);--brand-soft: oklch(.93 .035 55);--shadow-color: 30 25% 20%}[data-theme=ink]{--font-accent: "Instrument Serif", Georgia, serif;--display-weight: 750;--display-tracking: -.04em;--display-leading: 1;--radius: .625rem;--background: oklch(.13 .006 265);--foreground: oklch(.96 .004 265);--surface: oklch(.16 .008 265);--card: oklch(.17 .008 265);--primary: oklch(.96 .004 265);--primary-foreground: oklch(.15 .006 265);--muted-foreground: oklch(.68 .012 265);--accent: oklch(.23 .01 265);--border: oklch(1 0 0 / .09);--input: oklch(1 0 0 / .13);--brand: oklch(.7 .16 255);--brand-foreground: oklch(.14 .01 265);--brand-soft: oklch(.7 .16 255 / .14);--shadow-color: 0 0% 0%;color-scheme:dark}[data-theme=hearth]{--font-accent: var(--font-display);--display-weight: 560;--display-tracking: -.03em;--display-leading: 1.02;--radius: 1.125rem;--background: oklch(.975 .012 75);--foreground: oklch(.24 .03 40);--surface: oklch(.955 .02 70);--card: oklch(.99 .008 75);--primary: oklch(.26 .035 40);--primary-foreground: oklch(.98 .01 75);--muted-foreground: oklch(.5 .035 45);--accent: oklch(.93 .025 65);--border: oklch(.88 .025 65);--input: oklch(.86 .03 60);--brand: oklch(.56 .15 35);--brand-soft: oklch(.92 .045 45);--shadow-color: 25 40% 25%}[data-theme=signal]{--font-accent: var(--font-display);--display-weight: 400;--display-tracking: -.02em;--display-leading: .98;--radius: 1rem;--background: oklch(.99 .004 90);--foreground: oklch(.18 .01 60);--primary: oklch(.18 .01 60);--primary-foreground: oklch(.99 .004 90);--brand: oklch(.82 .16 85);--brand-foreground: oklch(.18 .01 60);--surface: oklch(.965 .018 80);--card: oklch(.995 .004 90);--muted-foreground: oklch(.47 .02 60);--brand-soft: oklch(.95 .06 90);--border: oklch(.88 .01 80)}[data-theme=gallery]{--font-accent: var(--font-display);--display-weight: 800;--display-tracking: -.038em;--display-leading: .98;--radius: 1.25rem;--background: #f7f1e8;--foreground: #1d1611;--surface: #efe6d9;--card: #fbf7f1;--primary: #1d1611;--primary-foreground: #f7f1e8;--muted-foreground: #6b5f54;--accent: #efe6d9;--border: rgb(29 22 17 / .12);--input: rgb(29 22 17 / .16);--brand: #c4592f;--brand-foreground: #fff8f1;--brand-soft: #f3dccd;--shadow-color: 25 40% 15%}[data-theme=gallery][data-mode=dark],[data-surface=editorial-dark]{--background: #171513;--foreground: #eee7dd;--card: #211e1a;--card-foreground: var(--foreground);--popover: var(--card);--popover-foreground: var(--foreground);--surface: #28231e;--muted: #28231e;--muted-foreground: #b5aa9d;--border: #40382f;--input: var(--border);--hairline: var(--border);--primary: var(--foreground);--primary-foreground: var(--background);--secondary: var(--surface);--secondary-foreground: var(--foreground);--accent: var(--surface);--accent-foreground: var(--foreground);--brand-ink: #d1b399;--accent-ink: var(--brand-ink);--ring: var(--brand-ink);--destructive: oklch(.75 .14 25);color-scheme:dark}@layer components{.font-display{font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:var(--display-tracking);line-height:var(--display-leading);font-optical-sizing:auto;text-wrap:balance}.eyebrow{font-family:var(--font-mono);font-size:.75rem;line-height:1rem;font-weight:500;letter-spacing:var(--eyebrow-tracking);text-transform:var(--eyebrow-transform);color:var(--muted-foreground)}.container-page{width:100%;max-width:76rem;margin-inline:auto;padding-inline:clamp(1rem,.5rem + 2.5vw,2.5rem)}:where(h1,h2,h3,h4).font-display{text-transform:var(--display-case)}.ui-case{text-transform:var(--ui-case)}}:where(:root){--font-sans: ui-sans-serif,system-ui,sans-serif;--font-display: ui-sans-serif,system-ui,sans-serif;--font-text: var(--font-sans);--font-mono: ui-monospace,monospace}studio-footer{display:block}@layer base{:where(studio-footer){font-family:var(--font-sans);color:var(--foreground);line-height:1.5}:where(studio-footer *,studio-footer *:before,studio-footer *:after){box-sizing:border-box;border:0 solid}:where(studio-footer h2,studio-footer p,studio-footer ul,studio-footer fieldset){margin:0;padding:0}:where(studio-footer ul){list-style:none}:where(studio-footer a){color:inherit;text-decoration:inherit}:where(studio-footer button,studio-footer input,studio-footer textarea){font:inherit;color:inherit;background:transparent}:where(studio-footer button){cursor:pointer}:where(studio-footer svg,studio-footer img){display:block;vertical-align:middle}:where(studio-footer img){max-width:100%}:where(studio-footer dialog:not([open])){display:none}:where(studio-footer :focus-visible){outline:2px solid var(--ring);outline-offset:2px}}@property --tw-border-style{syntax: "*"; inherits: false; initial-value: solid;}@property --tw-gradient-position{syntax: "*"; inherits: false;}@property --tw-gradient-from{syntax: ""; inherits: false; initial-value: #0000;}@property --tw-gradient-via{syntax: ""; inherits: false; initial-value: #0000;}@property --tw-gradient-to{syntax: ""; inherits: false; initial-value: #0000;}@property --tw-gradient-stops{syntax: "*"; inherits: false;}@property --tw-gradient-via-stops{syntax: "*"; inherits: false;}@property --tw-gradient-from-position{syntax: ""; inherits: false; initial-value: 0%;}@property --tw-gradient-via-position{syntax: ""; inherits: false; initial-value: 50%;}@property --tw-gradient-to-position{syntax: ""; inherits: false; initial-value: 100%;}@property --tw-leading{syntax: "*"; inherits: false;}@property --tw-font-weight{syntax: "*"; inherits: false;}@property --tw-tracking{syntax: "*"; inherits: false;}@property --tw-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: "*"; inherits: false;}@property --tw-shadow-alpha{syntax: ""; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: "*"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: ""; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: "*"; inherits: false;}@property --tw-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: "*"; inherits: false;}@property --tw-inset-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: "*"; inherits: false;}@property --tw-ring-offset-width{syntax: ""; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: "*"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-backdrop-blur{syntax: "*"; inherits: false;}@property --tw-backdrop-brightness{syntax: "*"; inherits: false;}@property --tw-backdrop-contrast{syntax: "*"; inherits: false;}@property --tw-backdrop-grayscale{syntax: "*"; inherits: false;}@property --tw-backdrop-hue-rotate{syntax: "*"; inherits: false;}@property --tw-backdrop-invert{syntax: "*"; inherits: false;}@property --tw-backdrop-opacity{syntax: "*"; inherits: false;}@property --tw-backdrop-saturate{syntax: "*"; inherits: false;}@property --tw-backdrop-sepia{syntax: "*"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-gradient-position: initial;--tw-gradient-from: #0000;--tw-gradient-via: #0000;--tw-gradient-to: #0000;--tw-gradient-stops: initial;--tw-gradient-via-stops: initial;--tw-gradient-from-position: 0%;--tw-gradient-via-position: 50%;--tw-gradient-to-position: 100%;--tw-leading: initial;--tw-font-weight: initial;--tw-tracking: initial;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-backdrop-blur: initial;--tw-backdrop-brightness: initial;--tw-backdrop-contrast: initial;--tw-backdrop-grayscale: initial;--tw-backdrop-hue-rotate: initial;--tw-backdrop-invert: initial;--tw-backdrop-opacity: initial;--tw-backdrop-saturate: initial;--tw-backdrop-sepia: initial}}} diff --git a/public/footer.js b/public/footer.js new file mode 100644 index 0000000..fdb2f69 --- /dev/null +++ b/public/footer.js @@ -0,0 +1 @@ +var M=e=>String(e).replace(/[&<>"']/g,t=>({"&":"&","<":"<",">":">",'"':""","'":"'"})[t]),R=e=>({html:e}),oe=e=>Array.isArray(e)?e.map(oe).join(""):e==null||typeof e=="boolean"?"":typeof e=="object"&&"html"in e?e.html:M(e),Ae=({children:e})=>R(oe(e)),ut={className:"class",htmlFor:"for",defaultChecked:"checked",defaultValue:"value",autoComplete:"autoComplete",maxLength:"maxLength",minLength:"minLength",formAction:"formAction",fillRule:"fill-rule",strokeWidth:"stroke-width",strokeLinecap:"stroke-linecap",strokeLinejoin:"stroke-linejoin"},pt=new Set(["required","checked","disabled","multiple","hidden"]),ft=new Set(["input","img","br","hr","meta","link"]);function a(e,t,...r){if(t||={},typeof e=="function")return e({...t,children:r});let o="";for(let[n,i]of Object.entries(t))if(!(["children","key","ref"].includes(n)||i==null)&&!(e==="textarea"&&n==="defaultValue")&&(n=ut[n]||n,n==="style"&&(i=Object.entries(i).filter(([,b])=>b!=null&&b!==!1).map(([b,k])=>b.replace(/[A-Z]/g,f=>"-"+f.toLowerCase())+":"+k).join(";")),!(n==="style"&&!i))){if(pt.has(n)){i&&(o+=` ${n}=""`);continue}o+=` ${n}="${M(i)}"`}let s=e==="textarea"&&t.defaultValue!=null?M(t.defaultValue):oe(r);return R(`<${e}${o}${ft.has(e)?"/>":">"+s+""}`)}var ze=oe;var Le=e=>R(''.replace("__CLASS__",M(e.className||""))),Pe=e=>R(''.replace("__CLASS__",M(e.className||""))),_e=e=>R(''.replace("__CLASS__",M(e.className||""))),je=e=>R(''.replace("__CLASS__",M(e.className||""))),Me=e=>R(''.replace("__CLASS__",M(e.className||""))),Re=e=>R(''.replace("__CLASS__",M(e.className||""))),Ie=e=>R(''.replace("__CLASS__",M(e.className||"")));function Te(e){var t,r,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t{let r=new Array(e.length+t.length);for(let o=0;o({classGroupId:e,validator:t}),We=(e=new Map,t=null,r)=>({nextPart:e,validators:t,classGroupId:r});var Ge=[],ht="arbitrary..",xt=e=>{let t=yt(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:i=>{if(i.startsWith("[")&&i.endsWith("]"))return kt(i);let b=i.split("-"),k=b[0]===""&&b.length>1?1:0;return Be(b,k,t)},getConflictingClassGroupIds:(i,b)=>{if(b){let k=o[i],f=r[i];return k?f?bt(f,k):k:f||Ge}return r[i]||Ge}}},Be=(e,t,r)=>{if(e.length-t===0)return r.classGroupId;let s=e[t],n=r.nextPart.get(s);if(n){let f=Be(e,t+1,n);if(f)return f}let i=r.validators;if(i===null)return;let b=t===0?e.join("-"):e.slice(t).join("-"),k=i.length;for(let f=0;fe.slice(1,-1).indexOf(":")===-1?void 0:(()=>{let t=e.slice(1,-1),r=t.indexOf(":"),o=t.slice(0,r);return o?ht+o:void 0})(),yt=e=>{let{theme:t,classGroups:r}=e;return wt(r,t)},wt=(e,t)=>{let r=We();for(let o in e){let s=e[o];ue(s,r,o,t)}return r},ue=(e,t,r,o)=>{let s=e.length;for(let n=0;n{if(typeof e=="string"){St(e,t,r);return}if(typeof e=="function"){Ct(e,t,r,o);return}Nt(e,t,r,o)},St=(e,t,r)=>{let o=e===""?t:$e(t,e);o.classGroupId=r},Ct=(e,t,r,o)=>{if(At(e)){ue(e(o),t,r,o);return}t.validators===null&&(t.validators=[]),t.validators.push(gt(r,e))},Nt=(e,t,r,o)=>{let s=Object.entries(e),n=s.length;for(let i=0;i{let r=e,o=t.split("-"),s=o.length;for(let n=0;n"isThemeGetter"in e&&e.isThemeGetter===!0,zt=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,r=Object.create(null),o=Object.create(null),s=(n,i)=>{r[n]=i,t++,t>e&&(t=0,o=r,r=Object.create(null))};return{get(n){let i=r[n];if(i!==void 0)return i;if((i=o[n])!==void 0)return s(n,i),i},set(n,i){n in r?r[n]=i:s(n,i)}}};var Lt=[],Ee=(e,t,r,o,s)=>({modifiers:e,hasImportantModifier:t,baseClassName:r,maybePostfixModifierPosition:o,isExternal:s}),Pt=e=>{let{prefix:t,experimentalParseClassName:r}=e,o=s=>{let n=[],i=0,b=0,k=0,f,m=s.length;for(let v=0;vk?f-k:void 0;return Ee(n,g,y,S)};if(t){let s=t+":",n=o;o=i=>i.startsWith(s)?n(i.slice(s.length)):Ee(Lt,!1,i,void 0,!0)}if(r){let s=o;o=n=>r({className:n,parseClassName:s})}return o},_t=e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((r,o)=>{t.set(r,1e6+o)}),r=>{let o=[],s=[];for(let n=0;n0&&(s.sort(),o.push(...s),s=[]),o.push(i)):s.push(i)}return s.length>0&&(s.sort(),o.push(...s)),o}},jt=e=>({cache:zt(e.cacheSize),parseClassName:Pt(e),sortModifiers:_t(e),postfixLookupClassGroupIds:Mt(e),...xt(e)}),Mt=e=>{let t=Object.create(null),r=e.postfixLookupClassGroups;if(r)for(let o=0;o{let{parseClassName:r,getClassGroupId:o,getConflictingClassGroupIds:s,sortModifiers:n,postfixLookupClassGroupIds:i}=t,b=[],k=e.trim().split(Rt),f="";for(let m=k.length-1;m>=0;m-=1){let p=k[m],{isExternal:y,modifiers:g,hasImportantModifier:S,baseClassName:v,maybePostfixModifierPosition:w}=r(p);if(y){f=p+(f.length>0?" "+f:f);continue}let h=!!w,C;if(h){let N=v.substring(0,w);C=o(N);let d=C&&i[C]?o(v):void 0;d&&d!==C&&(C=d,h=!1)}else C=o(v);if(!C){if(!h){f=p+(f.length>0?" "+f:f);continue}if(C=o(v),!C){f=p+(f.length>0?" "+f:f);continue}h=!1}let E=g.length===0?"":g.length===1?g[0]:n(g).join(":"),T=S?E+"!":E,F=T+C;if(b.indexOf(F)>-1)continue;b.push(F);let O=s(C,h);for(let N=0;N0?" "+f:f)}return f},Tt=(...e)=>{let t=0,r,o,s="";for(;t{if(typeof e=="string")return e;let t,r="";for(let o=0;o{let r,o,s,n,i=k=>{let f=t.reduce((m,p)=>p(m),e());return r=jt(f),o=r.cache.get,s=r.cache.set,n=b,b(k)},b=k=>{let f=o(k);if(f)return f;let m=It(k,r);return s(k,m),m};return n=i,(...k)=>n(Tt(...k))},Gt=[],A=e=>{let t=r=>r[e]||Gt;return t.isThemeGetter=!0,t.themeKey=e,t},He=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Ke=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Et=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,Ot=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Vt=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,qt=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix|color|light-dark)\(.+\)$/,Wt=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Bt=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,V=e=>Et.test(e),x=e=>!!e&&!Number.isNaN(Number(e)),I=e=>!!e&&Number.isInteger(Number(e)),me=e=>e.endsWith("%")&&x(e.slice(0,-1)),G=e=>Ot.test(e),Ue=()=>!0,$t=e=>Vt.test(e)&&!qt.test(e),pe=()=>!1,Dt=e=>Wt.test(e),Ht=e=>Bt.test(e),Kt=e=>!l(e)&&!c(e),Ut=e=>e.startsWith("@container")&&(e[10]==="/"&&e[11]!==void 0||e[11]==="s"&&e[16]!==void 0&&e.startsWith("-size/",10)||e[11]==="n"&&e[18]!==void 0&&e.startsWith("-normal/",10)),Xt=e=>q(e,Je,pe),l=e=>He.test(e),B=e=>q(e,Qe,$t),Oe=e=>q(e,ro,x),Yt=e=>q(e,et,Ue),Jt=e=>q(e,Ze,pe),Ve=e=>q(e,Xe,pe),Qt=e=>q(e,Ye,Ht),re=e=>q(e,tt,Dt),c=e=>Ke.test(e),U=e=>$(e,Qe),Zt=e=>$(e,Ze),qe=e=>$(e,Xe),eo=e=>$(e,Je),to=e=>$(e,Ye),se=e=>$(e,tt,!0),oo=e=>$(e,et,!0),q=(e,t,r)=>{let o=He.exec(e);return o?o[1]?t(o[1]):r(o[2]):!1},$=(e,t,r=!1)=>{let o=Ke.exec(e);return o?o[1]?t(o[1]):r:!1},Xe=e=>e==="position"||e==="percentage",Ye=e=>e==="image"||e==="url",Je=e=>e==="length"||e==="size"||e==="bg-size",Qe=e=>e==="length",ro=e=>e==="number",Ze=e=>e==="family-name",et=e=>e==="number"||e==="weight",tt=e=>e==="shadow";var so=()=>{let e=A("color"),t=A("font"),r=A("text"),o=A("font-weight"),s=A("tracking"),n=A("leading"),i=A("breakpoint"),b=A("container"),k=A("spacing"),f=A("radius"),m=A("shadow"),p=A("inset-shadow"),y=A("text-shadow"),g=A("drop-shadow"),S=A("blur"),v=A("perspective"),w=A("aspect"),h=A("ease"),C=A("animate"),E=()=>["auto","avoid","all","avoid-page","page","left","right","column"],T=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],F=()=>[...T(),c,l],O=()=>["auto","hidden","clip","visible","scroll"],N=()=>["auto","contain","none"],d=()=>[c,l,k],_=()=>[V,"full","auto",...d()],xe=()=>[I,"none","subgrid",c,l],ke=()=>["auto",{span:["full",I,c,l]},I,c,l],J=()=>[I,"auto",c,l],ye=()=>["auto","min","max","fr",c,l],ne=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],K=()=>["start","end","center","stretch","center-safe","end-safe"],j=()=>["auto",...d()],W=()=>[V,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...d()],ie=()=>[b,V,"screen","full","dvw","lvw","svw","min","max","fit",...d()],le=()=>[V,"screen","full","lh","dvh","lvh","svh","min","max","fit",...d()],u=()=>[e,c,l],we=()=>[...T(),qe,Ve,{position:[c,l]}],ve=()=>["no-repeat",{repeat:["","x","y","space","round"]}],Se=()=>["auto","cover","contain",eo,Xt,{size:[c,l]}],ce=()=>[me,U,B],L=()=>["","none","full",f,c,l],P=()=>["",x,U,B],Q=()=>["solid","dashed","dotted","double"],Ce=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],z=()=>[x,me,qe,Ve],Ne=()=>["","none",S,c,l],Z=()=>["none",x,c,l],ee=()=>["none",x,c,l],de=()=>[x,c,l],te=()=>[V,"full",...d()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[G],breakpoint:[G],color:[Ue],container:[G],"drop-shadow":[G],ease:["in","out","in-out"],font:[Kt],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[G],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[G],shadow:[G],spacing:["px",x],text:[G],"text-shadow":[G],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",V,l,c,w]}],container:["container"],"container-type":[{"@container":["","normal","size",c,l]}],"container-named":[Ut],columns:[{columns:[x,"auto",l,c,b]}],"break-after":[{"break-after":E()}],"break-before":[{"break-before":E()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:F()}],overflow:[{overflow:O()}],"overflow-x":[{"overflow-x":O()}],"overflow-y":[{"overflow-y":O()}],overscroll:[{overscroll:N()}],"overscroll-x":[{"overscroll-x":N()}],"overscroll-y":[{"overscroll-y":N()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:_()}],"inset-x":[{"inset-x":_()}],"inset-y":[{"inset-y":_()}],start:[{"inset-s":_(),start:_()}],end:[{"inset-e":_(),end:_()}],"inset-bs":[{"inset-bs":_()}],"inset-be":[{"inset-be":_()}],top:[{top:_()}],right:[{right:_()}],bottom:[{bottom:_()}],left:[{left:_()}],visibility:["visible","invisible","collapse"],z:[{z:[I,"auto",c,l]}],basis:[{basis:[V,"full","auto",b,...d()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[x,V,"auto","initial","none",l]}],grow:[{grow:["",x,c,l]}],shrink:[{shrink:["",x,c,l]}],order:[{order:[I,"first","last","none",c,l]}],"grid-cols":[{"grid-cols":xe()}],"col-start-end":[{col:ke()}],"col-start":[{"col-start":J()}],"col-end":[{"col-end":J()}],"grid-rows":[{"grid-rows":xe()}],"row-start-end":[{row:ke()}],"row-start":[{"row-start":J()}],"row-end":[{"row-end":J()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":ye()}],"auto-rows":[{"auto-rows":ye()}],gap:[{gap:d()}],"gap-x":[{"gap-x":d()}],"gap-y":[{"gap-y":d()}],"justify-content":[{justify:[...ne(),"normal"]}],"justify-items":[{"justify-items":[...K(),"normal"]}],"justify-self":[{"justify-self":["auto",...K()]}],"align-content":[{content:["normal",...ne()]}],"align-items":[{items:[...K(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...K(),{baseline:["","last"]}]}],"place-content":[{"place-content":ne()}],"place-items":[{"place-items":[...K(),"baseline"]}],"place-self":[{"place-self":["auto",...K()]}],p:[{p:d()}],px:[{px:d()}],py:[{py:d()}],ps:[{ps:d()}],pe:[{pe:d()}],pbs:[{pbs:d()}],pbe:[{pbe:d()}],pt:[{pt:d()}],pr:[{pr:d()}],pb:[{pb:d()}],pl:[{pl:d()}],m:[{m:j()}],mx:[{mx:j()}],my:[{my:j()}],ms:[{ms:j()}],me:[{me:j()}],mbs:[{mbs:j()}],mbe:[{mbe:j()}],mt:[{mt:j()}],mr:[{mr:j()}],mb:[{mb:j()}],ml:[{ml:j()}],"space-x":[{"space-x":d()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":d()}],"space-y-reverse":["space-y-reverse"],size:[{size:W()}],"inline-size":[{inline:["auto",...ie()]}],"min-inline-size":[{"min-inline":["auto",...ie()]}],"max-inline-size":[{"max-inline":["none",...ie()]}],"block-size":[{block:["auto",...le()]}],"min-block-size":[{"min-block":["auto",...le()]}],"max-block-size":[{"max-block":["none",...le()]}],w:[{w:[b,"screen",...W()]}],"min-w":[{"min-w":[b,"screen","none",...W()]}],"max-w":[{"max-w":[b,"screen","none","prose",{screen:[i]},...W()]}],h:[{h:["screen","lh",...W()]}],"min-h":[{"min-h":["screen","lh","none",...W()]}],"max-h":[{"max-h":["screen","lh","none",...W()]}],"font-size":[{text:["base",r,U,B]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[o,oo,Yt]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",me,l]}],"font-family":[{font:[Zt,Jt,t]}],"font-features":[{"font-features":[l]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[s,c,l]}],"line-clamp":[{"line-clamp":[x,"none",c,Oe]}],leading:[{leading:["none",n,...d()]}],"list-image":[{"list-image":["none",c,l]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",c,l]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:u()}],"text-color":[{text:u()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Q(),"wavy"]}],"text-decoration-thickness":[{decoration:[x,"from-font","auto",c,B]}],"text-decoration-color":[{decoration:u()}],"underline-offset":[{"underline-offset":[x,"auto",c,l]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:d()}],"tab-size":[{tab:[I,c,l]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",c,l]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",c,l]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:we()}],"bg-repeat":[{bg:ve()}],"bg-size":[{bg:Se()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},I,c,l],radial:["",c,l],conic:["",I,c,l]},to,Qt]}],"bg-color":[{bg:u()}],"gradient-from-pos":[{from:ce()}],"gradient-via-pos":[{via:ce()}],"gradient-to-pos":[{to:ce()}],"gradient-from":[{from:u()}],"gradient-via":[{via:u()}],"gradient-to":[{to:u()}],rounded:[{rounded:L()}],"rounded-s":[{"rounded-s":L()}],"rounded-e":[{"rounded-e":L()}],"rounded-t":[{"rounded-t":L()}],"rounded-r":[{"rounded-r":L()}],"rounded-b":[{"rounded-b":L()}],"rounded-l":[{"rounded-l":L()}],"rounded-ss":[{"rounded-ss":L()}],"rounded-se":[{"rounded-se":L()}],"rounded-ee":[{"rounded-ee":L()}],"rounded-es":[{"rounded-es":L()}],"rounded-tl":[{"rounded-tl":L()}],"rounded-tr":[{"rounded-tr":L()}],"rounded-br":[{"rounded-br":L()}],"rounded-bl":[{"rounded-bl":L()}],"border-w":[{border:P()}],"border-w-x":[{"border-x":P()}],"border-w-y":[{"border-y":P()}],"border-w-s":[{"border-s":P()}],"border-w-e":[{"border-e":P()}],"border-w-bs":[{"border-bs":P()}],"border-w-be":[{"border-be":P()}],"border-w-t":[{"border-t":P()}],"border-w-r":[{"border-r":P()}],"border-w-b":[{"border-b":P()}],"border-w-l":[{"border-l":P()}],"divide-x":[{"divide-x":P()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":P()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...Q(),"hidden","none"]}],"divide-style":[{divide:[...Q(),"hidden","none"]}],"border-color":[{border:u()}],"border-color-x":[{"border-x":u()}],"border-color-y":[{"border-y":u()}],"border-color-s":[{"border-s":u()}],"border-color-e":[{"border-e":u()}],"border-color-bs":[{"border-bs":u()}],"border-color-be":[{"border-be":u()}],"border-color-t":[{"border-t":u()}],"border-color-r":[{"border-r":u()}],"border-color-b":[{"border-b":u()}],"border-color-l":[{"border-l":u()}],"divide-color":[{divide:u()}],"outline-style":[{outline:[...Q(),"none","hidden"]}],"outline-offset":[{"outline-offset":[x,c,l]}],"outline-w":[{outline:["",x,U,B]}],"outline-color":[{outline:u()}],shadow:[{shadow:["","inner","none",m,se,re]}],"shadow-color":[{shadow:u()}],"inset-shadow":[{"inset-shadow":["none",p,se,re]}],"inset-shadow-color":[{"inset-shadow":u()}],"ring-w":[{ring:P()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:u()}],"ring-offset-w":[{"ring-offset":[x,B]}],"ring-offset-color":[{"ring-offset":u()}],"inset-ring-w":[{"inset-ring":P()}],"inset-ring-color":[{"inset-ring":u()}],"text-shadow":[{"text-shadow":["none",y,se,re]}],"text-shadow-color":[{"text-shadow":u()}],opacity:[{opacity:[x,c,l]}],"mix-blend":[{"mix-blend":[...Ce(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":Ce()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[x]}],"mask-image-linear-from-pos":[{"mask-linear-from":z()}],"mask-image-linear-to-pos":[{"mask-linear-to":z()}],"mask-image-linear-from-color":[{"mask-linear-from":u()}],"mask-image-linear-to-color":[{"mask-linear-to":u()}],"mask-image-t-from-pos":[{"mask-t-from":z()}],"mask-image-t-to-pos":[{"mask-t-to":z()}],"mask-image-t-from-color":[{"mask-t-from":u()}],"mask-image-t-to-color":[{"mask-t-to":u()}],"mask-image-r-from-pos":[{"mask-r-from":z()}],"mask-image-r-to-pos":[{"mask-r-to":z()}],"mask-image-r-from-color":[{"mask-r-from":u()}],"mask-image-r-to-color":[{"mask-r-to":u()}],"mask-image-b-from-pos":[{"mask-b-from":z()}],"mask-image-b-to-pos":[{"mask-b-to":z()}],"mask-image-b-from-color":[{"mask-b-from":u()}],"mask-image-b-to-color":[{"mask-b-to":u()}],"mask-image-l-from-pos":[{"mask-l-from":z()}],"mask-image-l-to-pos":[{"mask-l-to":z()}],"mask-image-l-from-color":[{"mask-l-from":u()}],"mask-image-l-to-color":[{"mask-l-to":u()}],"mask-image-x-from-pos":[{"mask-x-from":z()}],"mask-image-x-to-pos":[{"mask-x-to":z()}],"mask-image-x-from-color":[{"mask-x-from":u()}],"mask-image-x-to-color":[{"mask-x-to":u()}],"mask-image-y-from-pos":[{"mask-y-from":z()}],"mask-image-y-to-pos":[{"mask-y-to":z()}],"mask-image-y-from-color":[{"mask-y-from":u()}],"mask-image-y-to-color":[{"mask-y-to":u()}],"mask-image-radial":[{"mask-radial":[c,l]}],"mask-image-radial-from-pos":[{"mask-radial-from":z()}],"mask-image-radial-to-pos":[{"mask-radial-to":z()}],"mask-image-radial-from-color":[{"mask-radial-from":u()}],"mask-image-radial-to-color":[{"mask-radial-to":u()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":T()}],"mask-image-conic-pos":[{"mask-conic":[x]}],"mask-image-conic-from-pos":[{"mask-conic-from":z()}],"mask-image-conic-to-pos":[{"mask-conic-to":z()}],"mask-image-conic-from-color":[{"mask-conic-from":u()}],"mask-image-conic-to-color":[{"mask-conic-to":u()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:we()}],"mask-repeat":[{mask:ve()}],"mask-size":[{mask:Se()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",c,l]}],filter:[{filter:["","none",c,l]}],blur:[{blur:Ne()}],brightness:[{brightness:[x,c,l]}],contrast:[{contrast:[x,c,l]}],"drop-shadow":[{"drop-shadow":["","none",g,se,re]}],"drop-shadow-color":[{"drop-shadow":u()}],grayscale:[{grayscale:["",x,c,l]}],"hue-rotate":[{"hue-rotate":[x,c,l]}],invert:[{invert:["",x,c,l]}],saturate:[{saturate:[x,c,l]}],sepia:[{sepia:["",x,c,l]}],"backdrop-filter":[{"backdrop-filter":["","none",c,l]}],"backdrop-blur":[{"backdrop-blur":Ne()}],"backdrop-brightness":[{"backdrop-brightness":[x,c,l]}],"backdrop-contrast":[{"backdrop-contrast":[x,c,l]}],"backdrop-grayscale":[{"backdrop-grayscale":["",x,c,l]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[x,c,l]}],"backdrop-invert":[{"backdrop-invert":["",x,c,l]}],"backdrop-opacity":[{"backdrop-opacity":[x,c,l]}],"backdrop-saturate":[{"backdrop-saturate":[x,c,l]}],"backdrop-sepia":[{"backdrop-sepia":["",x,c,l]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":d()}],"border-spacing-x":[{"border-spacing-x":d()}],"border-spacing-y":[{"border-spacing-y":d()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",c,l]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[x,"initial",c,l]}],ease:[{ease:["linear","initial",h,c,l]}],delay:[{delay:[x,c,l]}],animate:[{animate:["none",C,c,l]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[v,c,l]}],"perspective-origin":[{"perspective-origin":F()}],rotate:[{rotate:Z()}],"rotate-x":[{"rotate-x":Z()}],"rotate-y":[{"rotate-y":Z()}],"rotate-z":[{"rotate-z":Z()}],scale:[{scale:ee()}],"scale-x":[{"scale-x":ee()}],"scale-y":[{"scale-y":ee()}],"scale-z":[{"scale-z":ee()}],"scale-3d":["scale-3d"],skew:[{skew:de()}],"skew-x":[{"skew-x":de()}],"skew-y":[{"skew-y":de()}],transform:[{transform:[c,l,"","none","gpu","cpu"]}],"transform-origin":[{origin:F()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:te()}],"translate-x":[{"translate-x":te()}],"translate-y":[{"translate-y":te()}],"translate-z":[{"translate-z":te()}],"translate-none":["translate-none"],zoom:[{zoom:[I,c,l]}],accent:[{accent:u()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:u()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",c,l]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":u()}],"scrollbar-track-color":[{"scrollbar-track":u()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":d()}],"scroll-mx":[{"scroll-mx":d()}],"scroll-my":[{"scroll-my":d()}],"scroll-ms":[{"scroll-ms":d()}],"scroll-me":[{"scroll-me":d()}],"scroll-mbs":[{"scroll-mbs":d()}],"scroll-mbe":[{"scroll-mbe":d()}],"scroll-mt":[{"scroll-mt":d()}],"scroll-mr":[{"scroll-mr":d()}],"scroll-mb":[{"scroll-mb":d()}],"scroll-ml":[{"scroll-ml":d()}],"scroll-p":[{"scroll-p":d()}],"scroll-px":[{"scroll-px":d()}],"scroll-py":[{"scroll-py":d()}],"scroll-ps":[{"scroll-ps":d()}],"scroll-pe":[{"scroll-pe":d()}],"scroll-pbs":[{"scroll-pbs":d()}],"scroll-pbe":[{"scroll-pbe":d()}],"scroll-pt":[{"scroll-pt":d()}],"scroll-pr":[{"scroll-pr":d()}],"scroll-pb":[{"scroll-pb":d()}],"scroll-pl":[{"scroll-pl":d()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",c,l]}],fill:[{fill:["none",...u()]}],"stroke-w":[{stroke:[x,U,B,Oe]}],stroke:[{stroke:["none",...u()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["start","end","right","left"],"inset-y":["inset-bs","inset-be","top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["ps","pe","pr","pl"],py:["pbs","pbe","pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["ms","me","mr","ml"],my:["mbs","mbe","mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-s","border-w-e","border-w-r","border-w-l"],"border-w-y":["border-w-bs","border-w-be","border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-s","border-color-e","border-color-r","border-color-l"],"border-color-y":["border-color-bs","border-color-be","border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-ms","scroll-me","scroll-mr","scroll-ml"],"scroll-my":["scroll-mbs","scroll-mbe","scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-ps","scroll-pe","scroll-pr","scroll-pl"],"scroll-py":["scroll-pbs","scroll-pbe","scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}};var ot=Ft(so);function D(...e){return ot(Fe(e))}var ao={Claude:"M4.709 15.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97 2.97 0 01-.104-.729L6.283.134 6.696 0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312-.006.006z",ChatGPT:"M21.55 10.004a5.416 5.416 0 00-.478-4.501c-1.217-2.09-3.662-3.166-6.05-2.66A5.59 5.59 0 0010.831 1C8.39.995 6.224 2.546 5.473 4.838A5.553 5.553 0 001.76 7.496a5.487 5.487 0 00.691 6.5 5.416 5.416 0 00.477 4.502c1.217 2.09 3.662 3.165 6.05 2.66A5.586 5.586 0 0013.168 23c2.443.006 4.61-1.546 5.361-3.84a5.553 5.553 0 003.715-2.66 5.488 5.488 0 00-.693-6.497v.001zm-8.381 11.558a4.199 4.199 0 01-2.675-.954c.034-.018.093-.05.132-.074l4.44-2.53a.71.71 0 00.364-.623v-6.176l1.877 1.069c.02.01.033.029.036.05v5.115c-.003 2.274-1.87 4.118-4.174 4.123zM4.192 17.78a4.059 4.059 0 01-.498-2.763c.032.02.09.055.131.078l4.44 2.53c.225.13.504.13.73 0l5.42-3.088v2.138a.068.068 0 01-.027.057L9.9 19.288c-1.999 1.136-4.552.46-5.707-1.51h-.001zM3.023 8.216A4.15 4.15 0 015.198 6.41l-.002.151v5.06a.711.711 0 00.364.624l5.42 3.087-1.876 1.07a.067.067 0 01-.063.005l-4.489-2.559c-1.995-1.14-2.679-3.658-1.53-5.63h.001zm15.417 3.54l-5.42-3.088L14.896 7.6a.067.067 0 01.063-.006l4.489 2.557c1.998 1.14 2.683 3.662 1.529 5.633a4.163 4.163 0 01-2.174 1.807V12.38a.71.71 0 00-.363-.623zm1.867-2.773a6.04 6.04 0 00-.132-.078l-4.44-2.53a.731.731 0 00-.729 0l-5.42 3.088V7.325a.068.068 0 01.027-.057L14.1 4.713c2-1.137 4.555-.46 5.707 1.513.487.833.664 1.809.499 2.757h.001zm-11.741 3.81l-1.877-1.068a.065.065 0 01-.036-.051V6.559c.001-2.277 1.873-4.122 4.181-4.12.976 0 1.92.338 2.671.954-.034.018-.092.05-.131.073l-4.44 2.53a.71.71 0 00-.365.623l-.003 6.173v.002zm1.02-2.168L12 9.25l2.414 1.375v2.75L12 14.75l-2.415-1.375v-2.75z",Perplexity:"M19.785 0v7.272H22.5V17.62h-2.935V24l-7.037-6.194v6.145h-1.091v-6.152L4.392 24v-6.465H1.5V7.188h2.884V0l7.053 6.494V.19h1.09v6.49L19.786 0zm-7.257 9.044v7.319l5.946 5.234V14.44l-5.946-5.397zm-1.099-.08l-5.946 5.398v7.235l5.946-5.234V8.965zm8.136 7.58h1.844V8.349H13.46l6.105 5.54v2.655zm-8.982-8.28H2.59v8.195h1.8v-2.576l6.192-5.62zM5.475 2.476v4.71h5.115l-5.115-4.71zm13.219 0l-5.115 4.71h5.115v-4.71z",Grok:"M9.27 15.29l7.978-5.897c.391-.29.95-.177 1.137.272.98 2.369.542 5.215-1.41 7.169-1.951 1.954-4.667 2.382-7.149 1.406l-2.711 1.257c3.889 2.661 8.611 2.003 11.562-.953 2.341-2.344 3.066-5.539 2.388-8.42l.006.007c-.983-4.232.242-5.924 2.75-9.383.06-.082.12-.164.179-.248l-3.301 3.305v-.01L9.267 15.292M7.623 16.723c-2.792-2.67-2.31-6.801.071-9.184 1.761-1.763 4.647-2.483 7.166-1.425l2.705-1.25a7.808 7.808 0 00-1.829-1A8.975 8.975 0 005.984 5.83c-2.533 2.536-3.33 6.436-1.962 9.764 1.022 2.487-.653 4.246-2.34 6.022-.599.63-1.199 1.259-1.682 1.925l7.62-6.815"};function rt({name:e,className:t}){let r=ao[e];return r?a("svg",{"aria-hidden":!0,viewBox:"0 0 24 24",fill:"currentColor",fillRule:"evenodd",className:t},a("path",{d:r})):null}var be="https://sassmaker.com/projects.json",st="https://sassmaker.com/projects",no=[{name:"Claude",action:"https://claude.ai/new"},{name:"ChatGPT",action:"https://chatgpt.com/"},{name:"Perplexity",action:"https://www.perplexity.ai/search"},{name:"Grok",action:"https://grok.com/"}],io=[{value:"bug",label:"Something broke"},{value:"feature",label:"An idea"},{value:"feedback",label:"General feedback"}],lo={newsletter:"I agree to receive newsletter emails about this product. I can unsubscribe at any time.",waitlist:"I agree to receive early-access and availability emails about this product. I can unsubscribe at any time."},co="https://sassmaker.com/privacy";function at({url:e}){return a("a",{href:e,className:"underline underline-offset-2 hover:text-foreground"},"Privacy")}var X="w-full rounded-lg border border-input bg-background px-3 text-sm text-foreground outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/25",fe="inline-flex h-9 cursor-pointer items-center gap-1.5 rounded-full border border-border bg-background px-3.5 text-[0.8125rem] font-medium text-foreground transition-colors hover:border-foreground/30 hover:bg-accent",mo="inline-flex h-10 items-center gap-2 rounded-full border border-border bg-background px-4 text-sm font-medium text-foreground transition-colors hover:border-foreground/30 hover:bg-accent",nt=[{id:"codevetter",label:"CodeVetter",href:"https://codevetter.com"},{id:"pace",label:"HeyPace",href:"https://heypace.app"},{id:"posttrainllm",label:"PostTrainLLM",href:"https://posttrainllm.com"},{id:"live",label:"Live",href:"https://live.significanthobbies.com"},{id:"kith",label:"Kith",href:"https://kith.significanthobbies.com"}];function Y(e,{current:t,limit:r=3}={}){if(!Array.isArray(e))return[];let o=new Set,s=[];for(let n of e)if(!(!n||typeof n.id!="string"||typeof n.name!="string"||typeof n.url!="string")&&!(!/^https?:\/\//.test(n.url)||n.id===t||o.has(n.id))&&(o.add(n.id),s.push({id:n.id,label:n.name,href:n.url}),s.length>=r))break;return s}function ae(e,t){if(!t)return e;try{let r=new URL(e);return r.searchParams.set("ref",t),r.toString()}catch{return e}}function uo({product:e,kind:t,projectKey:r,catalogId:o,privacyUrl:s}){return a("form",{"data-subscribe":"","data-kind":t,"data-key":r??"","data-catalog":o??"",className:"grid gap-6 rounded-[1.75rem] bg-card p-6 shadow-xs ring-1 ring-border sm:p-9 lg:grid-cols-[1fr_1.15fr] lg:items-center lg:gap-12"},a("div",null,a("h2",{className:"font-display text-[clamp(1.75rem,1.3rem+1.6vw,2.5rem)] leading-[1.05] text-balance"},t==="waitlist"?`Get early access to ${e}`:`Get ${e} updates`),a("p",{className:"mt-3 max-w-[26em] font-text text-[1.0625rem] leading-relaxed text-muted-foreground"},t==="waitlist"?"One email when it's ready for you. No spam, and you can leave with one click.":"A short note when something new ships. No spam, and you can leave with one click.")),a("div",null,a("div",{className:"flex flex-col gap-2.5 sm:flex-row"},a("label",{htmlFor:"subscribe-email",className:"sr-only"},"Email"),a("input",{id:"subscribe-email",name:"email",type:"email",required:!0,maxLength:254,autoComplete:"email",placeholder:"you@example.com",className:X+" h-12 min-w-0 flex-1 rounded-full px-5 text-base placeholder:text-muted-foreground"}),a("button",{type:"submit",className:"ui-case inline-flex h-12 shrink-0 items-center justify-center rounded-full bg-primary px-6 text-[0.9375rem] font-semibold text-primary-foreground transition-opacity hover:opacity-90 disabled:opacity-60"},"Subscribe")),a("label",{className:"mt-3 flex items-start gap-2.5 text-xs leading-relaxed text-muted-foreground"},a("input",{type:"checkbox",name:"consent",required:!0,className:"mt-0.5 size-4 shrink-0 accent-[var(--brand)]"}),a("span",null,lo[t]," ",a(at,{url:s}))),a("p",{"data-subscribe-status":!0,role:"status","aria-live":"polite",className:"mt-2 text-sm text-foreground empty:hidden"})))}function po({product:e,url:t}){let r=`What does ${e} (${t}) do, and who is it best for? Keep it concise.`;return a("form",{method:"get",target:"_blank",className:"flex flex-col rounded-xl border border-border bg-card p-5 shadow-xs"},a("div",{className:"flex items-center gap-2.5"},a("span",{"aria-hidden":!0,className:"grid size-7 place-items-center rounded-lg bg-brand-soft text-brand-ink"},a(Re,{className:"size-3.5"})),a("label",{htmlFor:"ask-ai",className:"text-sm font-medium text-foreground"},"Ask AI about ",e)),a("textarea",{id:"ask-ai",name:"q",rows:2,defaultValue:r,className:X+" mt-3 min-h-[4.5rem] resize-y py-2 leading-relaxed"}),a("div",{className:"mt-3 flex flex-wrap items-center gap-2"},no.map(o=>a("button",{key:o.name,type:"submit",formAction:o.action,"aria-label":`Ask ${o.name}`,title:`Ask ${o.name}`,className:"grid size-10 place-items-center rounded-full border border-border bg-background text-foreground transition-colors hover:border-foreground/30 hover:bg-accent focus-visible:outline-none focus-visible:ring-3 focus-visible:ring-ring/25"},a(rt,{name:o.name,className:"size-[1.125rem]"}))),a("span",{className:"ml-auto text-[0.6875rem] text-muted-foreground"},"Opens in a new tab")))}function fo({product:e,feedbackKey:t,catalogId:r,privacyUrl:o}){return a(Ae,null,a("button",{type:"button","data-feedback-open":"",className:mo},a(je,{"aria-hidden":!0,className:"size-4"}),"Send feedback"),a("dialog",{"data-feedback-dialog":"","aria-labelledby":"fb-title",className:"m-auto w-[min(34rem,calc(100vw-2rem))] rounded-2xl border border-border bg-card p-0 text-foreground shadow-2xl backdrop:bg-black/40 backdrop:backdrop-blur-[2px]"},a("form",{id:"feedback","data-feedback":"","data-key":t??"","data-catalog":r??"","data-product":e,className:"p-6 sm:p-7"},a("div",{className:"flex items-start justify-between gap-4"},a("div",null,a("h2",{id:"fb-title",className:"font-display text-2xl"},"Send feedback"),a("p",{className:"mt-1.5 text-sm text-muted-foreground"},"Read by the person who builds ",e,".")),a("button",{type:"button","data-feedback-close":"","aria-label":"Close",className:"grid size-9 shrink-0 place-items-center rounded-full text-muted-foreground hover:bg-accent hover:text-foreground"},a(Ie,{className:"size-4"}))),a("fieldset",{className:"mt-5 flex flex-wrap gap-2"},a("legend",{className:"mb-2 text-xs font-medium text-muted-foreground"},"What is it about?"),io.map((s,n)=>a("label",{key:s.value,className:fe+" has-[:checked]:border-brand has-[:checked]:bg-brand-soft has-[:checked]:text-brand-ink has-[:focus-visible]:ring-3 has-[:focus-visible]:ring-ring/25"},a("input",{type:"radio",name:"type",value:s.value,defaultChecked:n===2,className:"sr-only"}),s.label))),a("label",{htmlFor:"fb-summary",className:"mt-5 block text-xs font-medium text-muted-foreground"},"Summary"),a("input",{id:"fb-summary",name:"title",required:!0,maxLength:120,placeholder:"One line",className:X+" mt-1.5 h-10 placeholder:text-muted-foreground"}),a("label",{htmlFor:"fb-message",className:"mt-4 block text-xs font-medium text-muted-foreground"},"Details"),a("textarea",{id:"fb-message",name:"message",required:!0,minLength:4,maxLength:4e3,rows:4,placeholder:"What happened, or what would make it better?",className:X+" mt-1.5 min-h-[6rem] resize-y py-2 leading-relaxed placeholder:text-muted-foreground"}),a("div",{className:"mt-4 flex flex-wrap items-center gap-2"},a("button",{type:"button","data-feedback-point":"",className:fe},a(Pe,{"aria-hidden":!0,className:"size-3.5"}),"Point at something"),a("label",{className:fe+" has-[:focus-visible]:ring-3 has-[:focus-visible]:ring-ring/25"},a(_e,{"aria-hidden":!0,className:"size-3.5"}),a("span",{"data-feedback-file-label":""},"Add a screenshot"),a("input",{type:"file",name:"screenshot",accept:"image/png,image/jpeg,image/webp",className:"sr-only"}))),a("p",{"data-feedback-anchor":"",className:"mt-2 hidden items-center gap-2 text-xs text-muted-foreground"},a("span",{className:"truncate"}),a("button",{type:"button","data-feedback-unpoint":"",className:"shrink-0 underline underline-offset-2 hover:text-foreground"},"clear")),a("label",{className:"mt-5 flex items-start gap-2.5 text-xs leading-relaxed text-muted-foreground"},a("input",{type:"checkbox",name:"consent",required:!0,className:"mt-0.5 size-4 shrink-0 accent-[var(--brand)]"}),a("span",null,"I agree to send this feedback and the page details to SaaS Maker. ",a(at,{url:o}))),a("label",{htmlFor:"fb-email",className:"mt-4 block text-xs font-medium text-muted-foreground"},"Email, if you want a reply"),a("div",{className:"mt-1.5 flex flex-col gap-2 sm:flex-row"},a("input",{id:"fb-email",name:"email",type:"email",autoComplete:"email",placeholder:"you@example.com",className:X+" h-10 min-w-0 flex-1 placeholder:text-muted-foreground"}),a("button",{type:"submit",className:"inline-flex h-10 shrink-0 items-center justify-center gap-1.5 rounded-lg bg-primary px-5 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:opacity-60"},"Send",a(Me,{"aria-hidden":!0,className:"size-3.5"}))),a("p",{"data-feedback-status":!0,role:"status","aria-live":"polite",className:"mt-3 text-sm text-foreground empty:hidden"}),a("p",{className:"mt-3 text-[0.6875rem] text-muted-foreground"},"Sends what you write, this page's address (without query or fragment), and anything you point at or attach."))))}function bo({product:e,studio:t,catalogId:r}){let o=t.filter(s=>s.label.toLowerCase()!==e.toLowerCase()&&!(r&&s.id===r));return a("nav",{"aria-label":"From the studio",className:"flex flex-wrap items-baseline gap-x-5 gap-y-2 text-sm"},a("span",{className:"text-muted-foreground"},"From the studio"),o.map(s=>a("a",{key:s.href,href:ae(s.href,r),className:"font-medium text-foreground transition-colors hover:text-brand-ink"},s.label)),a("a",{href:st,className:"inline-flex items-center gap-0.5 font-medium text-foreground transition-colors hover:text-brand-ink"},"All projects ",a(Le,{"aria-hidden":!0,className:"size-3"})))}function it({product:e,url:t,summary:r,groups:o,art:s,feedbackKey:n,subscribeKey:i,catalogId:b,capture:k="newsletter",studio:f,legal:m,privacyUrl:p=co,artMode:y="panel",wordmark:g="poster",variant:S="studio",mark:v,className:w}){let h=k&&a(uo,{product:e,kind:k,projectKey:i??n,catalogId:b,privacyUrl:p}),C=a(fo,{product:e,feedbackKey:n,catalogId:b,privacyUrl:p}),E=S==="gallery"?"mx-auto w-full max-w-[75rem] px-[clamp(1.25rem,4vw,3.5rem)]":"container-page",T="ui-case select-none overflow-hidden whitespace-nowrap text-center font-display text-[clamp(6rem,22vw,20rem)] font-bold leading-[0.8] tracking-[-0.06em]",F=e.length>8?{fontSize:`min(${(125/e.length).toFixed(2)}vw, 20rem)`}:void 0,O=s&&(S==="gallery"||y==="scene"?a("img",{src:s.src,alt:s.alt,loading:"lazy",decoding:"async",style:s.position?{objectPosition:s.position}:void 0,className:"mt-[clamp(1.5rem,4vw,3rem)] block h-[clamp(12rem,30vw,26rem)] w-full object-cover [mask-image:linear-gradient(to_bottom,transparent,black_35%)]"}):a("div",{className:"container-page mt-6"},a("img",{src:s.src,alt:s.alt,loading:"lazy",decoding:"async",className:"block aspect-[5/2] w-full object-cover [mask-image:radial-gradient(ellipse_75%_85%_at_50%_55%,black_55%,transparent_100%)] sm:aspect-[3/1]"})));return a("footer",{"data-fleet-footer":"studio","data-catalog-id":b,className:D("overflow-hidden bg-surface pt-[clamp(4rem,7vw,6rem)]",S==="studio"&&"border-t border-border",w)},a("div",{className:E},h,a("div",{className:D("grid gap-10 lg:grid-cols-[1fr_1fr] lg:gap-14",h&&"mt-[clamp(3rem,6vw,4.5rem)]")},a("div",{className:"flex flex-col items-start gap-6"},a("div",null,a("p",{className:"flex items-center gap-2.5 font-display text-lg font-bold tracking-[-0.03em]"},v,e),a("p",{className:"mt-3 max-w-[24em] font-text text-[1.0625rem] leading-relaxed text-muted-foreground"},r)),C),a(po,{product:e,url:t})),S==="studio"&&a("nav",{"aria-label":"Footer",className:"mt-12 grid grid-cols-2 gap-8 sm:grid-cols-3"},o.map(N=>a("div",{key:N.title},a("h2",{className:"eyebrow mb-4 text-foreground"},N.title),a("ul",{className:"flex flex-col gap-2.5"},N.links.map(d=>a("li",{key:d.href+d.label},a("a",{href:d.href,className:"text-sm text-muted-foreground transition-colors hover:text-foreground"},d.label))))))),!(s&&g==="poster")&&a("p",{"aria-hidden":!0,className:D(T,"mt-[clamp(3.5rem,7vw,4.5rem)]",s&&g==="fill"?"bg-cover bg-clip-text text-transparent":"text-foreground/90"),style:{...F,...s&&g==="fill"&&{backgroundImage:`url(${s.src})`,backgroundPosition:s.position??"center"}}},e)),s&&g==="stack"&&O,s&&g==="poster"&&a("div",{className:"relative isolate mt-[clamp(2rem,5vw,3.5rem)] overflow-hidden"},a("img",{src:s.src,alt:s.alt,loading:"lazy",decoding:"async",style:s.position?{objectPosition:s.position}:void 0,className:"block h-[clamp(16rem,38vw,34rem)] w-full object-cover [mask-image:linear-gradient(to_bottom,transparent,black_30%)]"}),a("div",{"aria-hidden":!0,className:"absolute inset-x-0 bottom-0 h-1/2 bg-gradient-to-t from-black/20 to-transparent"}),a("p",{"aria-hidden":!0,className:D(T,"absolute inset-x-0 bottom-[-0.02em] text-[#fbf5ec]"),style:F},e)),a("div",{className:D(E,"pb-10",s&&g!=="fill"?"pt-8":"mt-14")},a("div",{className:D("flex flex-col gap-4",!(s&&g!=="fill")&&"border-t border-border pt-7")},a("div",{className:"flex flex-wrap items-baseline justify-between gap-x-8 gap-y-3"},a(bo,{product:e,studio:f?.length?f:nt,catalogId:b}),m&&a("p",{className:"font-display text-[0.8125rem] text-muted-foreground"},m)),S==="gallery"&&a("nav",{"aria-label":"Footer",className:"flex flex-wrap gap-x-6 gap-y-2.5 font-display text-[0.8125rem] text-muted-foreground"},o.flatMap(N=>N.links).map(N=>a("a",{key:N.href+N.label,href:N.href,className:"transition-colors hover:text-foreground"},N.label))))))}function ge(e){let t={summary:"",groups:[],...e};for(let o of["summary","legal","mark"])if(t[o]!=null&&typeof t[o]=="object")throw new TypeError(o+" must be text");t.projects&&!t.studio?.length&&(t.studio=Y(t.projects,{current:t.catalogId,limit:t.studioLimit}));let r=ze(it(t));return t.ref&&(r=r.replace(/(